1、在test_tb2數(shù)據(jù)庫中新建兩個數(shù)據(jù)表 offices 和 employees,如下:
創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設、營銷型網(wǎng)站制作、響應式網(wǎng)站建設、展示型網(wǎng)站設計、成都網(wǎng)站建設等服務,幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設與網(wǎng)站營銷推廣問題。
MySQL> DESC offices;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| officeCode | int(10) | NO | PRI | NULL | |
| city | varchar(50) | NO | | NULL | |
| address | varchar(50) | YES | | NULL | |
| country | varchar(50) | NO | | NULL | |
| postlCode | varchar(15) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
mysql> DESC employees;
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int(11) | NO | PRI | NULL | auto_increment |
| lastName | varchar(50) | NO | | NULL | |
| firstName | varchar(50) | NO | | NULL | |
| mobile | varchar(25) | YES | UNI | NULL | |
| officeCode | int(10) | NO | | NULL | |
| jobTitle | varchar(50) | NO | | NULL | |
| birth | datetime | NO | | NULL | |
| note | varchar(255) | YES | | NULL | |
| sex | varchar(5) | YES | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
2、修改字段的位置:
mysql> ALTER TABLE employees MODIFY mobile VARCHAR(25) after officeCode;
3、修改字段的名稱:
mysql> ALTER TABLEemployees CHANGE birth employee_birth DATETIME;
4、修改字段的數(shù)據(jù)類型及非空約束
mysql> ALTER TABLE employees MODIFY sex VARCHAR(2) NOT NULL;
5、刪除字段
mysql> ALTER TABLE employees DROP note;
6、增加字段名
mysql> ALTER TABLEemployees ADDfavoriate_activity VARCHAR(100);
7、刪除表
(1)mysql> DROP TABLE offices;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constrai
nt fails
直接刪除數(shù)據(jù)表,會出現(xiàn)錯誤,因為子表employees的外鍵約束關聯(lián)了父表offices的,要刪除父表必須先要解除和子表的關系。
(2)解除父表和子表之間的關系
mysql> ALTER TABLE employees DROP FOREIGN KEYfk_emp_off(外鍵名稱);
(3)再次刪除
mysql> DROP TABLE offices;
Query OK, 0 rows affected (0.01 sec)
(4)表刪除操作是把表的定義和表中的數(shù)據(jù)一起刪除,并且在執(zhí)行刪除操作時,不會有任何確認信息的提示,因此執(zhí)行刪除操作時,應當慎重再慎重。
8、總結:表的字段基本操作就是增(ADD) 刪(DROP) 改:修改(MODIFY )和 改變CHANGE)
CHANGE 改變的是字段的名稱 、數(shù)據(jù)類型、注釋
MODIFY 不可以改變字段的名稱
所以:(1)既更改列名也更改類型,用CHANGE
(2)只修改類型,用MODIFY