题目描述
现有一张用户信息表user_info,其中包含多年来在平台注册过的用户信息。
用户信息表user_info:
Filed | Type | Null | Key | Default | Extra | Comment |
id | int(11) | NO | PRI | (NULL) | auto_increment | 自增ID |
uid | int(11) | NO | UNI | (NULL) | 用户ID | |
nick_name | varchar(64) | YES | (NULL) | 昵称 | ||
achievement | int(11) | YES | 0 | 成就值 | ||
level | int(11) | YES | (NULL) | 用户等级 | ||
job | varchar(32) | YES | (NULL) | 职业方向 | ||
register_time | datetime | YES | CURRENT_TIMESTAMP | 注册时间 |
请在用户信息表,字段level的后面增加一列最多可保存15个汉字的字段school;并将表中job列名改为profession,同时varchar字段长度变为10;achievement的默认值设置为0。
输出结果示例:
Filed | Type | Null | Key | Default | Extra | Comment |
id | int(11) | NO | PRI | auto_increment | 自增ID | |
uid | int(11) | NO | UNI | 用户ID | ||
nick_name | varchar(64) | YES | 昵称 | |||
achievement | int(11) | YES | 0 | |||
level | int(11) | YES | 用户等级 | |||
school | varchar(15) | |||||
profession | varchar(10) | YES | ||||
register_time | datetime | YES | CURRENT_TIMESTAMP | 注册时间 |
备注:建表时限制的字符集为utf8,MySQL版本为8.*
后台会通过SHOW FULL FIELDS FROM user_info 来对比输出结果。
思路
1.添加列
alter table 表名 add column 列名 类型 【first|after 字段名】;
2.修改列的类型或约束
alter table 表名 modify column 列名 新类型 【新约束】;
3.修改列名
alter table 表名 change column 旧列名 新列名 类型;
4 .删除列
alter table 表名 drop column 列名;
5.修改表名
alter table 表名 rename 【to】 新表名;
6.将某一列放到第一列
alter table 表名 modify column 列名 类型 first;
代码
alter table user_info
add column school varchar(15) after level;
alter table user_info
change column job profession varchar(10);
alter table user_info
modify achievement int(11) default 0;
结果