MySQL基础之约束

MySQL基础之约束

概述

  • 概念:约束是作用在字段的规则,限制表中数据

演示

mysql 复制代码
# 多个约束之间不需要加逗号
# auto_increment 自增
create table user(
    id int primary key auto_increment comment '主键',
		name varchar(10) not null unique comment '姓名',
		age int check( age > 0 && age <= 120 ) comment '年龄',
		status char(1) default '1' comment '状态',
		gender char(1) comment '性别'
) comment '用户表';

外键约束

  • 概念:让两张表的数据建立连接
mysql 复制代码
# 创建表时添加外键
create table 表名(
	字段名 数据类型,
    ...
    [constraint] [外键名称] foreign key(外键字段名) references 主表(主表列名)
)
# 创建表后添加外键
alter table 表名 add constraint 外键名称 foreign key(外键字段名) references 主表(主表列名);
# 删除外键
alter table 表名 drop foreign key 外键名称;
mysql 复制代码
# 示例
# 把dept表中主键id 与cmp表中dept_id连接 建立外键fk_cmp_id_dept
alter table cmp add CONSTRAINT fk_cmp_id_dept FOREIGN key (dept_id) REFERENCES dept(id);
# 把fk_cmp_id_dept外键删除
alter table cmp drop foreign key fk_cmp_id_dept;

删除/更新行为

  • 添加外键时在末尾加上即可
mysql 复制代码
# 在更新或删除主表中的数据时会级联副表中数据
alter table cmp add CONSTRAINT fk_cmp_id_dept FOREIGN key (dept_id) REFERENCES dept(id) on update cascade on delete cascade; 

# 在删除主表中的数据时会使副表中数据置null
alter table cmp add CONSTRAINT fk_cmp_id_dept FOREIGN key (dept_id) REFERENCES dept(id) on delete set null; 
相关推荐
小天努力学java20 分钟前
【软考-架构】14、软件可靠性基础
数据库·架构
yyyyyyykk21 分钟前
Spring知识点总结
数据库·mysql·spring
fatiaozhang952730 分钟前
咪咕MG101_晨星MSO9380芯片_安卓5.1.1_免拆卡刷固件包
android·电视盒子·av1·机顶盒rom·魔百盒刷机
小L爱科研37 分钟前
5.3/Q1,GBD数据库最新文章解读
数据库·数据分析·逻辑回归·线性回归·健康医疗
百万蹄蹄向前冲1 小时前
动图MangoDB 8.0.8从安装到使用
数据库·mongodb·豆包marscode
_小马快跑_1 小时前
玩转 ImageView.ScaleType:图片的缩放与裁剪技巧
android
Lei活在当下1 小时前
【现代 Android APP 架构】02. UI 层的职责与具体实现
android·架构·android jetpack
maomi_95261 小时前
头歌实训之存储过程、函数与触发器
数据库
_一条咸鱼_1 小时前
揭秘 Android 高级工程师面试秘籍:从源码到实战全方位剖析
android·面试·android jetpack
_一条咸鱼_1 小时前
深度揭秘!从源码级剖析 Android 基础知识体系
android·面试·android jetpack