Day10_MySQL核心知识——约束

一.储备知识

约束名作用
NOT NULL非空约束,规定某个字段不能为空
UNIQUE唯一约束,规定某个字段在整个表中是唯一的
PRIMARY KEY主键,非空且唯一
FOREIGN KEY外键
CHECK检查约束
DEFAULT默认值

外键约束

  • 外键是构建于一个表的两个字段或两个表的两个字段之间的参照关系
  • 从表的外键值必须在主表中能找到或者为空。
  • 当主表的记录被从表参照时,主表的记录将不允许删除

级联

  • ON DELETE CASCADE(级联删除):当父表中的列被删除时,字表中相对应的列也被删除
  • ON DELETE SET NULL(级联置空):子表中相应的列置空

二.语法

例子

create table emp(
 id int(10) primary key auto increment,
 username varchar(20) not null#在数据类型后面添加约束
 password varchar(20) not nullconstraint uk_username_emp UNIQUE KEY (username)#表级约束语法
);

例子

create table emp(
 id int(10) primary key auto increment,
 username varchar(20) not null#在数据类型后面添加约束
 password varchar(20) not nullconstraint fk_username_emp FOREIGN KEY (username) references emp01(username)#表级约束语法
);

例子

create table emp(
 id int(10) primary key auto increment,
 username varchar(20) not null#在数据类型后面添加约束
 password varchar(20) not nullFOREIGN KEY (username, password)
 references emp01(name, pwd, ON DELETE CASCADE)#表级约束语法
);

注意点:

  1. 唯一约束允许出现多个空值:null
  2. 同一个表可以有多个唯一约束,多个列组合的约束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值