MySQL表的操作
- 1. 創建表
- 2. 查看表結構
- 3. 修改表(修改表的屬性而非表的數據)
- 4. 刪除表
1. 創建表
語法:
CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype
) character set 字符集 collate 校驗規則 engine 存儲引擎;注意:
character set 字符集 collate 校驗規則 engine 存儲引擎; 這塊有很多種寫法。varchar類型:變長字符串
comment:類似于注釋
說明:
field 表示列名
datatype 表示列的類型
character set 字符集,如果沒有指定字符集,則以所在數據庫的字符集為準
collate 校驗規則,如果沒有指定校驗規則,則以所在數據庫的校驗規則為準
create table users (id int,name varchar(20) comment '用戶名',password char(32) comment '密碼是32位的md5值',birthday date comment '生日'
) character set utf8 engine MyISAM;
說明:
不同的存儲引擎,創建表的文件不一樣。
此處例子中,users 表存儲引擎是MyISAM ,在數據目中有三個不同的文件,分別是:
users.frm:表結構
users.MYD:表數據
users.MYI:表索引
使用MyISAM存儲引擎的時候,可以發現在mysql目錄下,會有三個文件。
MyISam:默認在指定的database中形成的數據庫文件是3個。
2. 查看表結構
mysql > desc 表名;
顯示表結構的最核心內容
mysql > show create table 表名;
顯示表結構的整體和整體結構以及創建表的過程
允許為空的含義是:birthday這個可以插入的時候為空
Default:不插入該值的時候默認設置一個值
3. 修改表(修改表的屬性而非表的數據)
修改表的屬性而非表的數據:比如表中屬性增加一個,增加一個name或birthday等。表結構輕易不要修改——不然很可能會出問題(表的一整列刪除掉,原本的這些信息全都沒有了或是添加一整列 然后再添加該項數據很麻煩)。
在項目實際開發中,經常修改某個表的結構,比如字段名字,字段大小,字段類型,表的字符集類型,表的存儲引擎等等。我們還有需求,添加字段,刪除字段等等。這時我們就需要修改表。
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);ALTER TABLE tablename DROP (column);
修改表結構后為:
修改name,將其長度改成60:
mysql> alter table users modify name varchar(60);
刪除password列:
注意:刪除字段一定要小心,刪除字段及其對應的列數據都沒了
mysql > alter table users drop password;
mysql > desc users;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
修改表名為employee
mysql > alter table users rename to employee;mysql > select * from employee;
+------+------+------------+-------+
| id | name | birthday | assets |
+------+------+------------+-------+
| 1 | a | 1982-01-04 | NULL |
| 2 | b | 1984-01-04 | NULL |
+------+------+------------+-------+
注意: to可以省掉。
將name列修改為xingming
mysql> alter table employee change name xingming varchar(60);
--新字段需要完整定義mysql> desc employee;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| xingming | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
修改表的DDL:
alter table 表名 add/modify/drop 列+列屬性
alter table 表名 rename 新的名字
alter table 表明 change 舊列的名字 新列的名字 新列+新列的屬性
4. 刪除表
語法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
示例:
drop table test;
盡量不要刪表,刪表之前要做備份。