MySQL数据库 表结构的操作

#创建(create)、添加字段 修改字段名(add)、类型、位置(change/modify) 销毁字段(drop)

#创建表
CREATE TABLE `表名`;
CREATE TABLE `user`(
        UID INT(20) NOT NULL PRIMARY KEY,
        UName VARCHAR(20),
        ......
);

#添加新字段(对表结构的操作都是以ALTER开始的)
ALTER TABLE `表名` ADD `新字段名` varchar(20) NOT NULL;
ALTER TABLE `user` ADD `nickname` varchar(20) NOT NULL;
#添加到首位
ALTER TABLE `表名` ADD `新字段名` varchar(20) FIRST;
ALTER TABLE `user` ADD `age` varchar(20) FIRST;
#添加到某字段后
ALTER TABLE `表名` ADD `新字段名` varchar(20) AFTER `要添加到哪个字段后面`;
ALTER TABLE `user` ADD `qq` varchar(20) AFTER `nickame`;
#修改字段名、属性、约束
#change可以修改字段名、属性、约束

ALTER TABLE `表名` CHANGE `旧字段名` `新字段名` varchar(20);
ALTER TABLE `user` CHANGE `qq` `QQ` varchar(20);
#需要注意的是这里的modify一般不用于修改字段名,更多的是用在修改属性和约束,看到网上很多都是说不能修改字段名,但
#是这里我试了下,但是它确实也是可以用于修改字段名(但仅限修改字段的大小写)

ALTER TABLE `表名` MODIFY `字段名` varchar(20);
ALTER TABLE `user` MODIFY `qq` varchar(30);
#修改字段位置
ALTER TABLE `表名` MODIFY `要移动的字段名` varchar(20) AFTER `要移动到那个字段后面`;
ALTER TABLE `user` MODIFY QQ varchar(20) AFTER `nickname`;

#修改表名
RENAME TABLE `表名` TO `userinfo`;
RENAME TABLE `user` TO `userinfo`;

#删除字段
ALTER TABLE `表名` DROP `要删除的字段名`;
ALTER TABLE `userinfo` DROP `QQ`;

#删除表
DROP TABLE `表名`;
DROP TABLE `userinfo`;

#change和modify的比较

ALTER TABLE `user` CHANGE `qq` `QQ` varchar(12) NOT NULL;
ALTER TABLE `user`
MODIFY `QQ` varchar(30) NOT NULL;

MySQL数据库 表结构的操作_第1张图片 两种修改的比较1

 

change可以修改字段名,可以修改属性和约束。
modify可以修改属性和约束,但是图中可以看到,modify修改字段名也是成功了的,所以我就又试了一下,发现modify只能修改字段的大小写,不能完全修改字段名。下面把UID修改成uid。

MySQL数据库 表结构的操作_第2张图片

但是如果修改一个不存在的字段 wechat 就会报错。

MySQL数据库 表结构的操作_第3张图片
所以从大体上看modify确实不能修改字段名0_0!。

你可能感兴趣的:(MySQL数据库 表结构的操作)