alter在mysql_MySQL中ALTER用法小结
MySQL中ALTER命令小結。
1.表操作
#修改表名
語法: ALTER TABLE table_name RENAME [TO]new_table_name;
舉例:ALTER TABLE student RENAME TO students; --將student表的名稱更改為students
2.列(字段)操作
#修改字段類型
語法: ALTER TABLEtable_name MODIFY coloumn_name new_data_type;
舉例:ALTER TABLE students MODIFY s_name VARCHAR(30); --將students表的s_name字段的類型更改為VARCHAR(30)
#修改字段位置
語法: ALTER TABLE table_name MODIFY coloumn_name data_type AFTER|FIRST [coloumn_name];
舉例:ALTER TABLE students MODIFY s_name VARCHAR(30) AFTER s_id; --將s_name的位置更改到s_id列的后面
ALTER TABLE students MODIFY s_name VARCHAR(30) FIRST; --將s_name的位置更改到首列
#增加字段
語法: ALTER TABLE table_name ADD new_column_name data_type AFTER|FIRST [coloumn_name]舉例:ALTER TABLE students ADD s_age INT AFTER s_name; --在students表中的s_name列后面增加一列,列名為s_age,類型為INT。
#刪除字段
語法: ALTER TABLE table_name DROPcoloumn_name data_type;
舉例:ALTER TABLE students DROP s_name; --刪除students表中的s_name字段
注:MySQL不能直接通過 ALTER 語句修改列名稱
3.約束操作
#添加主鍵約束
語法: ALTER TABLE table_name ADD PRIMARY KEY(coloumn_name);
舉例:ALTER TABLE students ADD PRIMARY KEY() --為students表添加主鍵s_id
#刪除主鍵約束
語法: ALTER TABLE table_name DROP PRIMARY KEY;
舉例:ALTER TABLE students DROP PRIMARY KEY;--刪除students表中的主鍵
#添加外鍵約束
語法: ALTER TABLE table_name ADD [CONSTRAINT fk_name] FOREIGN KEY(coloumn_name)REFERENCEStable2_name(coloumn2_name)[ON DELETE {CASCADE|SET NULL|NO ACTION|RESTRICT}]
[ON UPDATE {CASCADE|SET NULL|NO ACTION|RESTRICT}]舉例:ALTER TABLE score ADD CONSTRAINT fk_score_s_id FOREIGN KEY(s_id)REFERENCES students(s_id) ON DELETE RESTRICT ON UPDATE CASCADE;--為score表的s_id列增加外鍵約束,關聯students表的s_id,級聯更新,不級聯刪除
注: 添加外鍵約束時,添加外鍵的列的所有數據必須能夠在父表中找到,否則添加會失敗。
#刪除外鍵約束
語法: ALTER TABLE table_name DROP FOREIGN KEYfk_name;
舉例:ALTER TABLE score DROP FOREIGN KEY fk_score_s_id; --刪除score表中名為fk_score_s_id的外鍵約束。
注:外鍵約束名可以通過命令SHOW CREATE TABLE table_name進行查看。
#添加非空約束
語法: ALTER TABLE table_name MODIFY coloumn_name data_type NOT NULL;
舉例:ALTER TABLE students MODIFY s_name VARCHAR(30) NOT NULL;
#取消非空約束
語法: ALTER TABLE table_name MODIFY coloumn_name data_type NULL;
舉例:ALTER TABLE student MODIFY s_name VARCHAR(30) NULL;
#添加默認值約束
語法: ALTER TABLE table_name ALTER coloumn_name SET DEFAULTdefault_value;
舉例:ALTER TABLE students ALTER s_grade SET DEFAULT '2013';
#刪除默認值約束
語法: ALTER TABLE table_name ALTER coloumn_name DROP DEFAULT;
舉例:ALTER TABLE students ALTER s_grade DROP DEFAULT;
#添加唯一性約束
語法: ALTER TABLE table_name MODIFY coloumn_name UNIQUE;
舉例:ALTER TABLE students MODIFY email data_type UNIQUE;
#刪除唯一性約束
語法: ALTER TABLE table_name DROP INDEXuk_constraint_name;
舉例:ALTER TABLE students DROP INDEX email;--刪除名稱為email的約束
注:某書上說可以通過類似于 ALTER TABLE students MODIFY email VARCHAR(30); 可以刪除唯一性約束,本人在MySQL5.6.30親測無效。
#添加自增約束
語法: ALTER TABLEtable_name MODIFY coloumn_name data_type AUTO_INCREAMENT;
舉例:ALTER TABLE students MODIFY s_id INT AUTO_INCREAMENT;--為students表的s_id列添加自增約束
注: 添加自增約束時必須為自增字段設置唯一約束或主鍵約束或外鍵約束,且自增約束只針對于整數。
#刪除自增約束
語法: ALTER TABLEtable_name MODIFY coloumn_name data_type;
舉例:ALTER TABLE students MODIFY id int;--刪除students表中id的自增約束。
#刪除約束的一般方法
#語法: ALTER TABLE table_name DROP INDEXconstraint_name;
#舉例:ALTER TABLE students DROP INDEX fk_s_id;--刪除名稱為fk_s_id的約束
注: 這種刪除的方法只適用于有約束名稱的約束,如FOREIGN KEY , UNIQUE KEY,而對于像NOT NULL , AUTO_INCREAMENT則只能用上面的方法。
總結
以上是生活随笔為你收集整理的alter在mysql_MySQL中ALTER用法小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华硕 ROG 7 游戏手机新品发布会定档
- 下一篇: could not find curse