如果说我们想给某一个数据表添加字段,这个SQL语句应该是这样子的。
一、添加字段
alter table,然后写上表的名称,然后用动词add添加新的字段。字段的名称,数据类型儿,约束,还有注解,如果说是添加多个字段,结尾加上这个逗号,下面继续通过add添加新的字段,如果说是最后一个字段,结尾是不加这个逗号的,是要加上分号
我想往学生表里面添加两个字段,一个字段是家庭住址,另外一个字段是家庭电话,那咱们就把这个地址先给添加上来add address,这是字段的名字,然后再有是varchar类型的。这个长度要求是200个字符以内的,然后这个是not null的,不能为空。这个是家庭的这个紧急联系人的电话,那么hotel这块,比如说是char,然后长度是11,然后是not null,不能为空
ALTER TABLE student
ADD address VARCHAR(200) NOT NULL, #增加地址列
ADD home_tel CHAR(11) NOT NULL; # 增加电话号码列
二、修改已有字段
对已有字段的修改,比如说我有的字段它的类型我想改一下,或者说把约束改一下,甚至想把注释改一下,这个都可以。那么这个SQL语句的关键字也叫做alter table,然后写上表的名称,用的这个动词,这个关键字叫做modify,然后写上原来的这个列的名字,后面你想改成什么样的类型,约束,注释,你就接着往下写就行了,当然说你要想修改多个字段,后面儿再写其他的这个modify就可以了。
咱们把刚才添加的hotel这个字段修改一下数据类型,原先的这个类型是char(11)的,如果说有的人留的是手机电话,这是没有问题,长度是11个字符,如果说留的是家庭电话,这个就坏了对吧?它的长度还不一样。我把这个字段改一下,就是alter table,然后是student写上咱们的那个动词,关键字叫做modify,然后修改的字段是home_tel字段
ALTER TABLE student
MODIFY home_tel VARCHAR(20) NOT NULL # 改变数据类型
,
三、修改已有字段名称
如果说我想把已有的字段修改一个名字,可不可以?当然可以用的这个SQL语句还是alter table。表的名称写上去,然后跟上一个关键字叫做change,原来这个列的名字写上。那么这个列的新的名字在后面也写上这个列的数据类型,约束,注释,如果说没有变的话,那你就照着原样把它写下来就行了。这是修改了一个列的名字,当然的话下面可以写change,去修改其他的列的名字,这个都是可以的。
比如说,我想把address这个字段改成home_address,这样的新名称可不可以?当然是可以的。alter table语句写一下,然后表的名字还是student,然后关键字叫做change,原来的这个字段的名字叫address,然后新的字段的名字叫做home_address,这个数据类型还是varchar。然后这个长度没有变200约束,还是的好了,这个语句我写完了,那咱们就是把这个语句选择,然后运行一下
ALTER TABLE student
CHANGE address home_address VARCHAR(200) NOT NULL; # 修改已有列名address
四、删除字段
如果数据表里边的字段你不想要了,可以把这个字段给删除掉,用到的这个语句还是alter table,写上表名称,这个关键字叫做drop,后面写上列名,不用再去声明它的数据类型了,直接就把这个列给删掉了。想删除这个多个列,那你后面再写drop,其他的这个列就可以了。所以这个alter table执行完以后,咱们的这个数据表的某些列就被删除掉了
现在我想把home_tell字段,还有是home_address字段给删掉,执行的语句,我写一下是alter table,然后是student,然后我们好不容易写好的两个字段,我现在把它给删掉。
ALTER TABLE student
DROP home_tel, #删除电话字段
DROP home_address; # 删除地址字段