表的约束
主键约束
主键(primary key):数据库中一个独立无二的字段,该字段不允许数据重复,是一条记录的唯一标识符。
主键约束:强制规范这个字段,特点:不能重复、而且不能为空。
非空约束
非空约束(not null):不允许为空,对应就是允许为空(is null)。比如说在填写一些身份信息表格的时候,名字不可空
默认值约束
default 值,表示如果在插入数据库,没有这个字段对应的值,会插入对应的默认值。
唯一约束
unique:该字段,不能存在相同的值。就比如说身份证号码在数据库中不可重复
检查约束
检查约束:SQL标准中检查很早就出现了,但是MySQL在8.0之前没有检查约束(写上也不报错,但是也不生效),在8.0之后,MySQL真正实现了检查约束。
例子
create table user(
-- 定义主键
id int primary key auto_increment,
-- 定义不能为空
name varchar(255) not null unique,
-- 定义默认值为18
age int default 18,
-- 检查这个属性必须是男或者女
gender varchar(10) check(gender in ("男", "女")),
address varchar(255)
)
修改表结构
增加列
alter table 表名称 add 字段名称 类型 [约束条件];
删除列
ALTER TABLE 表名称 drop 字段名称;
修改列类型或者条件
ALTER TABLE 表名称 modify 字段 新类型 [新的约束];
修改列名称
ALTER TABLE 表名称 change 旧字段名称 新的字段名称 新类型 [新的约束];
修改表名称
ALTER TABLE 表名称 rename 新名称;
RENAME TABLE 表名 TO 新表名;
复制表
复制表的结构
create table 新表名 like 源表
# 注意:会完整的复制表结构,并且连约束也会复制
# 表的数据不会复制
复制表的结构和数据
记录拷贝到新表中。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中。
create table 新表名 select {*|字段 [, 字段...]} from 源表
# 注意:约束中的主键和唯一约束复制不了
快速插入数据
-- 如果已经存在一张机构一致的表,复制数据
insert into 表 select {*|字段 [, 字段...]} from 原表;
不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧