一剧腻、基本語句
ALTER TABLE table_name
ADD COLUMN column_name VARCHAR(30)?
AFTER column_name1;
① 對(duì)于新增加行的順序粤咪,可以用FIRST、SECOND饰恕、TIRED、LAST和AFTER某列井仰、BEFORE某列等語句來確定埋嵌;
二、用ALTER語句修改表
CHANGE 可以改變列的名稱和數(shù)據(jù)類型
MODIFY 改變列的數(shù)據(jù)類型和位置(位置)
ADD 新增列俱恶,可自選類型
DROP 刪除某列?
1雹嗦、 用 'RENAME TO' 更改表名
ALTER TABLE table_name
RENAME TO ?Xintable_name
2、 用 'CHANGE COLUMN' 改變?cè)械拿Q和和數(shù)據(jù)類型
ALTER TABLE Xintable_name
CHANGE COLUMN column_name Xincolumn_name INT NOT NULL ANTO_INCREMENT
CHANGE COLUMN column_name1 Xincolumn_name1 CHAR(10)合是,
CHANGE COLUMN column_name2 Xincolumn_name2 VARCHAR(100)了罪,
ADD PRIMARY KEY (Xincolumn_name);
① 可以用一條ALTER語句更改多個(gè)列的名稱和數(shù)據(jù)類型;
② 更改的數(shù)據(jù)類型和原數(shù)據(jù)類型不兼容聪全,命令不會(huì)執(zhí)行泊藕,如果兼容,則可能發(fā)生更慘的事难礼,例如數(shù)據(jù)被截?cái)啵簭腣ARCHAR(10)改為CHAR(1)娃圆,數(shù)據(jù)' banana ' 將被改成' b ',同理,數(shù)字也可能出現(xiàn)此情景鹤竭;因此更改數(shù)據(jù)類型前需用DESC TABLE 觀察每列數(shù)據(jù)類型踊餐。
3、用 'MODIFY' 修改數(shù)據(jù)類型
ALTER TABLE Xintable_name
MODIFY COLUMN Xincolumn_name1 CHAR(20);
把上一節(jié)定義的Xincolumn_name1 CHAR(10)改為Xincolumn_name1 CHAR(20)
注意:在列中已有數(shù)據(jù)的情況下臀稚,最好不要更改列的位置
原因:位置更改的原理是 ?復(fù)制列的內(nèi)容到臨時(shí)表中——刪除原列——用ALTER創(chuàng)建和原列同名的空列并放在指定位置——最后把臨時(shí)表中的內(nèi)容復(fù)制到空列里
這背后的操作比較復(fù)雜吝岭,容易出現(xiàn)問題。
4吧寺、'ADD' 增加列
ALTER TABLE Xintable_name
ADD COLUMN Xincolumn_name3 CHAR(4)窜管,
ADD COLUMN Xincolumn_name4 INT(18),
ADD COLUMN Xincolumn_name5 DEC(6,2);
5稚机、' DROP '=刪除列
ALTER TABLE Xintable_name
DROP COLUMN Xincolumn_name3;
使用DROP COLUMN后幕帆,原本存在該列中的所有數(shù)據(jù)都會(huì)被刪除
① 移除主鍵
ALTER TABLE Xintable_name
DROP PRIMARY KEY;
② 刪除 'ANTO_INCREMENT'
ALTER TABLE Xintable_name
CHANGE? MY_ID MY_ID INT NOT NULL;
③ 更換 'ANTO_INCREMENT' 的列
ALTER TABLE Xintable_name
CHANGE? MY_ID MY_ID1 INT NOT NULL ANTO_INCREMENT;
注意:每個(gè)表中只有一列能有ANTO_INCREMENT,該列數(shù)據(jù)類型必須為整數(shù)型而且不能有NULL
三赖条、在SQL語句中使用字符串(string)函數(shù)
1失乾、 LFET函數(shù)和RIGHT函數(shù)
SELECT LEFT(column_name,4) FROM table_name
SELECT RIGHT(column_name1,4) FROM table_name
函數(shù)里的數(shù)據(jù)位置使用的是列名
2、 SUBSTRING_INDEX
這個(gè)函數(shù)會(huì)找出指定字符或字符串前的所有內(nèi)容
SUBSTRING_INDEX(column_name,',',1)
第一參數(shù)是列名
第二參數(shù)是要查到的字符或字符串
第三參數(shù)是指查找第幾個(gè)第二參數(shù)纬乍,‘1’表示找第一個(gè)逗號(hào)碱茁,‘2’表示找第二個(gè)
其他一些字符串函數(shù)
SUBSTRING(my_string,start_position,length)
第一參數(shù) 文本是什么
第二參數(shù) 起始位置
第三參數(shù) 抓取的文本長度
SELECT SUBSTRING('liuyu',4,2)
UPEER(my_string)和LOWER(my_string) 把字符串改大小寫
UPEER('liuyu')
REVESER(my_string)反轉(zhuǎn)字符串里的字符排序
LTDIM(my_string)和RTDIM(my_string) 清楚左側(cè)多余的空格和右側(cè)多余的空格
SELECT LTDIM(' ? ?liuyu'); ??返回的數(shù)據(jù)會(huì)把空格去掉
重要:字符串函數(shù)不會(huì)改變存儲(chǔ)在表中的內(nèi)容,他只是把字符串修改后的模樣當(dāng)做查詢結(jié)果返回
3仿贬、SUBSTR
UPDATE table_name?
SET column_name=SUBSTR(column_name1,length)
此函數(shù)返回原始字符串(第一參數(shù))的一部分:
第一參數(shù)即原始字符串纽竣;
第二參數(shù)是一個(gè)數(shù)值,表示從左起切除多少個(gè)字符;
即根據(jù)第二參數(shù)的數(shù)字蜓氨,從左起切除X個(gè)字符聋袋,并返回剩余的字符串。
4穴吹、用字符串函數(shù)UPDATE數(shù)據(jù)
UPDATE table_name
SET column_name2=RIGHT(column_name1,2)
會(huì)更改列名是column_name1里的所有數(shù)據(jù)并賦值到column_name2里
字符串函數(shù)可以和SELECT DELETE UPDATE使用