数据库约束

文章目录

    • [1. 简介](#1. 简介)
    • [2. 代码演示](#2. 代码演示)
    • [3. 外键约束](#3. 外键约束)
    • [4. 外键删除和更新行为](#4. 外键删除和更新行为)

1. 简介

  • 概念:约束时作用于表中子段上的规则,用于限制存储在表中的shuju
  • 目的:保证数据库中数据的正确、有效性和完整性
  • 分类:
约束 描述 关键字
非空约束 限制该字段不能为null NOT NULL
唯一约束 保证该字段的所有数据都是唯一、不重复的 UNIQUE
主键约束 主键时一行数据的唯一标识,要求非空且唯一 Primary key
默认约束 保存数据时,如果未指定该字段的值,则采用默认值 Default
检查约束 保证字段值满足某一个条件 check
外键约束 用来让两张表的数据之间建立连接,保证数据的一致性和完整性 foreign key

2. 代码演示

sql 复制代码
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 '状态'
)

3. 外键约束

用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性

sql 复制代码
alter table user add constraint f_id foreign key(dept_id) references dept(id)
#user表的dept_id字段外键引用dept表的id字段

4. 外键删除和更新行为

  • 删除/更新行为
行为 说明
no action 当在父表中删除/更新对应记录时,首先检查该记录是否有对应的外键,如果有则不允许删除/更新
restrict 当在父表中删除/更新对应记录时,首先检查该记录是否有对应的外键,如果有则不允许删除/更新
cascade 当在父表中删除/更新记录时,首先检查记录是否存在外键,如果有,则也删除/更新外键所在子表中的记录
set null 当在父表中删除对应记录时,首先检查记录是否存在对应外键,如果有则设置子表中该外键值为null(这就要求该外键允许取null)
set default 父表中有变更时,子表将外键列设置成一个默认的值(innodb不支持)
sql 复制代码
alter table 表名 add constraint 外键名称 foreign key references 主表名(主表名字段) on update cascade on delete cascade
相关推荐
计算机毕设VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Mr__Miss3 小时前
保持redis和数据库一致性(双写一致性)
数据库·redis·spring
Knight_AL5 小时前
Spring 事务传播行为 + 事务失效原因 + 传播行为为什么不用其他模式
数据库·sql·spring
倔强的石头_5 小时前
时序数据时代的“存储与分析困局”解析及金仓解决方案
数据库
计算机毕设VX:Fegn08955 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
倔强的石头_6 小时前
场景化落地指南——金仓时序数据库在关键行业的应用实践
数据库
SelectDB6 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache
zbguolei6 小时前
MySQL根据身份证号码计算出生日期和年龄
数据库·mysql
马克学长7 小时前
SSM校园图书借阅服务系统jd2z8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·图书管理系统·ssm 框架·ssm 校园图书借阅系统
软件派7 小时前
高斯数据库使用心得——从性能优化到行业实践的深度解析
数据库·oracle