当前位置: 代码迷 >> 综合 >> MySQL -> DDL:数据库表的创建(create),修改(alter add/drop/modify/change/rename column),复制表(like,select子查询方式)
  详细解决方案

MySQL -> DDL:数据库表的创建(create),修改(alter add/drop/modify/change/rename column),复制表(like,select子查询方式)

热度:91   发布时间:2023-12-16 09:51:49.0

创建表:create table 表 (字段 字段类型(长度 约束))

# 可以加 if not exists 表用来判断存不存在表,不存在就创建
# if exists,存在就创建,但是没用,存在再创建就会报错,删除的时候可以用,存在就删除
create table(  id int(10),name varchar(100),age int(10)
)

修改表:add/drop/modify/change/rename

"添加表字段":add column
alter tableadd column 新字段 字段类型; # 后面跟first加到第一列的位置,after 列名,加到列后面
alter tableadd constraint 自定义名字 primary key(id);
alter tableadd primary key(id);# 给id添加主键
alter tableadd unique(座位);# 添加唯一建
alter tableadd foreign key(id) references 外表(id);# 添加外键"删除字段":drop column
alter tabledrop column 字段;
alter tabledrop primary key;# 删除表中主键
alter tabledrop foreign key;# 删除表中外键"修改字段类型,约束等":modify column
alter tablemodify column 字段 修改类型;
alter tablemodify column id int not null;# 修改成非空约束
alter tablemodify column age int default 18;# 默认18岁
alter tablemodify column id int primary key;# id修改为主键
alter tablemodify column id int primary key auto_increment;# 主键标识列"修改字段名";change
alter table 表 change column 字段 新字段名 新的类型;"修改表名":rename
alter tablerename to 新表名;# to可以省略

删除表:drop

# 可以加 if exists 表;存在就删除
drop table;
drop table if exists

复制表:copy表,创建一个复制的表(存在的表),使用like关键字复制

"复制表的结构,无数据": like
create table2 like1;"复制表部分结构":
create table2
select id,name
from1
where 1=2;# 直接让它的条件成立不了,这样就只有字段没有数据了"复制表中所有数据":copy表1所有数据
create table2
select * 
from1;"复制表中部分数据":
create table2
select id,name
from1
where 条件;
  相关解决方案