目录
1.测试用例(来源是牛客网中的sql题)
drop table if exists user_info;
CREATE TABLE IF NOT EXISTS user_info (
id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
uid int UNIQUE NOT NULL COMMENT '用户ID',
`nick_name` varchar(64) COMMENT '昵称',
achievement int COMMENT '成就值',
level int COMMENT '用户等级',
job varchar(10) COMMENT '职业方向',
register_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
2.关键字 add
- 含义:当表建立后,需要添加字段的时候使用
- 请在用户信息表,字段level的后面增加一列最多可保存15个汉字的字段school;
- ADD COLUMN <列名> <类型> -- 增加列
ALTER TABLE user_info ADD school varchar(15) after level;
3.关键字 change
- 含义:更改列的名称及数据类型
- 并将表中job列名改为profession,同时varchar字段长度变为10
- CHANGE COLUMN <旧列名> <新列名> <新列类型> -- 修改列名或类型
ALTER TABLE user_info change job profession varchar(10);
4.关键字 modify
- 含义:更改列的数据类型
- achievement的默认值设置为0
- MODIFY COLUMN <列名> <类型> -- 修改列类型
ALTER TABLE user_info modify achievement int(11) DEFAULT 0;
5.alter中其他关键字
-
ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -- 修改/删除 列的默认值
-
DROP COLUMN <列名> -- 删除列
-
RENAME TO <新表名> -- 修改表名
-
CHARACTER SET <字符集名> -- 修改字符集
-
COLLATE <校对规则名> } -- 修改校对规则(比较和排序时用到)