题解 119 | #修改表#
【场景】:修改表 【分类】:直接修改、删除后修改
分析思路
难点:
1.如果该表已经被其他分析师创建过了,正常返回即可,所以要先判断表是否存在,如果存在返回,不存在再执行创建的动作。 新学到:
[使用]:
show full fields from table_name
可以查看表中的字段
方法一、删除表之后重建表
先使用drop再使用create
- [使用]:
drop table if exists table_name; create table if not exists table_name
方法二、直接修改表
在 某一列 之后增加 一列
- [使用]:
add column 新增列 after 某一列
修改 某一列 为 新内容
- [使用]:
change column 某一列 新内容
- [注意]:change可以用于修改列名和属性。所以这里使用change而不是modify
更正 某一列 为 修改内容
- [使用]:
modify column 某一列 修改内容
- [注意]:modify 用于修改较小的内容,例如列名不可修改。这里使用change也可以
建议:修改列属性时使用modify;修改列名使用change。
扩展
前往查看:MySQL 表的创建、复制、修改与删除
求解代码
方法一:
删除表之后重建表
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 default 0,
level int comment '用户等级',
school varchar(15),
profession varchar(10),
register_time datetime default current_timestamp comment '注册时间'
)character set utf8 collate utf8_general_ci;
方法二:
直接修改表 + change + modify
alter table user_info
add column school varchar(15) after level,
change column job profession varchar(10),
modify column achievement int(11) default 0
方法三:
直接修改表 + change
alter table user_info
add column school varchar(15) after level,
change column job profession varchar(10),
change column achievement achievement int(11) default 0