一、基本语句
ALTER TABLE table_name
ADD COLUMN column_name VARCHAR(30)
AFTER column_name1;
① 对于新增加行的顺序,可以用FIRST、SECOND、TIRED、LAST和AFTER某列、BEFORE某列等语句来确定;
二、用ALTER语句修改表
CHANGE 可以改变列的名称和数据类型
MODIFY 改变列的数据类型和位置(位置)
ADD 新增列,可自选类型
DROP 删除某列
1、 用 'RENAME TO' 更改表名
ALTER TABLE table_name
RENAME TO Xintable_name
2、 用 'CHANGE COLUMN' 改变原列的名称和和数据类型
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语句更改多个列的名称和数据类型;
② 更改的数据类型和原数据类型不兼容,命令不会执行,如果兼容,则可能发生更惨的事,例如数据被截断:从VARCHAR(10)改为CHAR(1),数据' banana ' 将被改成' b ',同理,数字也可能出现此情景;因此更改数据类型前需用DESC TABLE 观察每列数据类型。
3、用 'MODIFY' 修改数据类型
ALTER TABLE Xintable_name
MODIFY COLUMN Xincolumn_name1 CHAR(20);
把上一节定义的Xincolumn_name1 CHAR(10)改为Xincolumn_name1 CHAR(20)
注意:在列中已有数据的情况下,最好不要更改列的位置
原因:位置更改的原理是 复制列的内容到临时表中——删除原列——用ALTER创建和原列同名的空列并放在指定位置——最后把临时表中的内容复制到空列里
这背后的操作比较复杂,容易出现问题。
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后,原本存在该列中的所有数据都会被删除
① 移除主键
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;
注意:每个表中只有一列能有ANTO_INCREMENT,该列数据类型必须为整数型而且不能有NULL
三、在SQL语句中使用字符串(string)函数
1、 LFET函数和RIGHT函数
SELECT LEFT(column_name,4) FROM table_name
SELECT RIGHT(column_name1,4) FROM table_name
函数里的数据位置使用的是列名
2、 SUBSTRING_INDEX
这个函数会找出指定字符或字符串前的所有内容
SUBSTRING_INDEX(column_name,',',1)
第一参数是列名
第二参数是要查到的字符或字符串
第三参数是指查找第几个第二参数,‘1’表示找第一个逗号,‘2’表示找第二个
其他一些字符串函数
SUBSTRING(my_string,start_position,length)
第一参数 文本是什么
第二参数 起始位置
第三参数 抓取的文本长度
SELECT SUBSTRING('liuyu',4,2)
UPEER(my_string)和LOWER(my_string) 把字符串改大小写
UPEER('liuyu')
REVESER(my_string)反转字符串里的字符排序
LTDIM(my_string)和RTDIM(my_string) 清楚左侧多余的空格和右侧多余的空格
SELECT LTDIM(' liuyu'); 返回的数据会把空格去掉
重要:字符串函数不会改变存储在表中的内容,他只是把字符串修改后的模样当做查询结果返回
3、SUBSTR
UPDATE table_name
SET column_name=SUBSTR(column_name1,length)
此函数返回原始字符串(第一参数)的一部分:
第一参数即原始字符串;
第二参数是一个数值,表示从左起切除多少个字符;
即根据第二参数的数字,从左起切除X个字符,并返回剩余的字符串。
4、用字符串函数UPDATE数据
UPDATE table_name
SET column_name2=RIGHT(column_name1,2)
会更改列名是column_name1里的所有数据并赋值到column_name2里
字符串函数可以和SELECT DELETE UPDATE使用