MySQL的操作命令離不開四字真言:增刪改查
簡單的記錄一下MySQL常用的增刪改查命令
改
主要使用關鍵字 ALTER
,RETURN TO
,ADD
,CHANGE
,MODIFY
,DROP
-
使用
ALTER
和RETURN TO
更改表名稱ALTER TABLE old_table_name RETURN TO new_table_name;
表示將舊表 old_table_name 修改成 new_table_name
其中:
old_table_name
和 new_table_name
分別表示 “原表名” 和 “新表名”
使用
ALTER
和ADD COLUMN
為表添加新列疯搅,并指定其位置
ALTER TABLE table_name
ADD COLUMN column_name data_type(limit) [NOT NULL] [DEFAULT VALUE] [position];
也可以或使用ALTER
和AFTER
或ALTER
和BEFORE
來指定位置
ALTER TABLE table_name
ADD COLUMN column_name data_type(limit) [NOT NULL] [DEFAULT VALUE]
AFTER/BEFORE other_column_name;
其中:
[ ]
為可選項
data_type(limit)
數(shù)據(jù)類型及限制,如VARCHAR(10)
,DEC(4,2)
等
DEFAULT
使用默認值埋泵,VALUE
是默認值
position
列表位置幔欧,可填FIRST
,SECOND
,LAST
等,不填則默認在最后一列
other_column_name
其他列名-
**使用
ALTER
和CHANGE
修改表列名稱丽声,并將其設置成KEY
**ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name data_type NOT NULL [AUTO_INCREMENT], ADD PRIMARY KEY (new_column_name);
其中:
[ ]
為可選
table_name
表示表的名稱
old_column_name
表示修改前的列名稱
new_column_name
表示修改后列的名稱
data_type
數(shù)據(jù)類型礁蔗,如INT
,VARCHAR
等
NOT NULL
不允許NULL值出現(xiàn)(可理解成必填,對于有主鍵的表雁社,主鍵是必填的)
AUTO_INCREMENT
數(shù)值以公差為1自動遞增浴井,每個表只有一列加上,該列只能是整形類并且不能包含NULL
霉撵。 -
使用
ALTER
和CHANGE
修改一個或多個列的名稱和數(shù)據(jù)類型
假設有如下類型的數(shù)據(jù)表 drinks
![MySQ數(shù)據(jù)表drinks][img]
[img]:http://ww2.sinaimg.cn/large/6da989degw1f13bxxzc09j20ft05udgx.jpg現(xiàn)想修改 main列 和 second列 的名稱和數(shù)據(jù)類型磺浙,可使用下列命令達成:
ALTER TABLE drinks CHANGE COLUMN main new_main VARCHAR(10), CHANGE COLUMN second new_second VARCHAR(8);
修改后如下:
![CHANGE修改操作][img2]
[img2]:http://ww4.sinaimg.cn/large/6da989degw1f13caeskejj20fu0603zn.jpg
main列 和 second列 已經(jīng)修改成 new_main列 和 new_second列 洪囤,VARCHAR
的字符限制也做了修改,值得注意的是撕氧,修改數(shù)據(jù)類型可能會導致數(shù)據(jù)丟失瘤缩,比如將 new_main列的數(shù)據(jù)類型 VARCHAR(50)
修改成 VARCHAR(10)
, new_main列 中大于 10 字符的數(shù)據(jù)將會發(fā)生截斷,若將 VARCHAR(50)
修改成 INT
等數(shù)值型類型伦泥,原列的數(shù)據(jù)將完全丟失剥啤。
-
使用
ALTER
和MODIFY
修改數(shù)據(jù)類型
使用MODIFY
可以在不修改列名的情況下修改數(shù)據(jù)類型,以數(shù)據(jù)表drinks為例不脯,將 main列 修改成INT(1)
, 命令如下:ALTER TABLE drinks MODIFY COLUMN main INT(1);
修改后如下:
![MODIFY修改操作][img3]
[img3]:http://ww3.sinaimg.cn/large/6da989degw1f13ivw81bpj20fs05edgm.jpg
-
使用
ALTER
和DROP
刪除列和主鍵
以數(shù)據(jù)表drinks為例府怯,刪除 directions列 ,命令如下:ALTER TABLE drinks DROP COLUMN directions跨新,DROP PRIMARY KEY富腊;
修改后如下,directions列 和 主鍵 已經(jīng)被刪除域帐。
![DROP刪除列操作][img4]
[img4]:http://ww3.sinaimg.cn/large/6da989degw1f13kkye7blj20dr04zq3n.jpg
值得注意的是赘被,在刪除主鍵時,需要先用 ALTER
和 MODIFY
刪除 AUTO_TNCREMENT
, 否則會出現(xiàn)錯誤肖揣。
![KEY刪除錯誤][warn]
[warn]:http://ww3.sinaimg.cn/large/6da989degw1f13kobl2thj20hx01fwel.jpg
UPDATE table_name SET column_name = 'newvalue';
UPDATE my_contacts SET state = RIGHT(location,2);
#state列右邊數(shù)起民假,前兩個字符
SUBSTRING(your_string,start_position,length);
SUBSTRING(列名,分隔符,第幾個分隔符);