MySQL 数据库(基础)- 约束

MySQL 数据库(基础)- 约束

  • 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
  • 目的:保证数据库中数据的正确,有效性和完成性。
  • 分类:

在这里插入图片描述

注意:约束是作用在表中字段上的,可以在创建表/修改表的时候添加约束。

案例演示:
在这里插入图片描述
对应的建表语句:

CREATE TABLE tb_user(
	id int AUTO_INCREMENT PRIMARY KEY COMMENT 'ID唯一标识',
	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 '性别'
);

外键约束

  • 外键:用来让两张表的数据之间简历连接,从而保证数据的一致性和完成性。
    在这里插入图片描述

左侧的 emp 表是员工表,里面存储员工的基本信息,包含员工的ID、姓名、年龄、职位、薪资、入职日期、上级主管ID、部门ID,在员工的信息中存储的是部门的ID dept_id,而这个部门的ID是关联的部门表 dep t的 主键id,那 emp 表的 dept_id 就是外键,关联的是另一张表的主键

注意:目前上述两张表,只是在逻辑上存在这样一层关系;在数据库层面,并未建立外键关联,所以是无法保证数据的一致性和完整性的。

语法

  1. 添加外键
CREATE TABLE 表名(
字段名 数据类型,
...
[CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名)
);

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名) ;

案例:
为 emp 表的 dept_id 字段添加外键约束,关联 dept 表的 主键id。

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

在这里插入图片描述

  1. 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称; 

案例:
删除emp表的外键fk_emp_dept_id。

alter table emp drop foreign key fk_emp_dept_id;

删除/更新行为

  • 添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行
    在这里插入图片描述
    具体语法:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 12:56:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 12:56:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 12:56:04       58 阅读
  4. Python语言-面向对象

    2024-07-14 12:56:04       69 阅读

热门阅读

  1. 数据结构——复杂度

    2024-07-14 12:56:04       27 阅读
  2. 【Rust】——不安全Rust

    2024-07-14 12:56:04       22 阅读
  3. Jupyter Notebook 安装教程

    2024-07-14 12:56:04       21 阅读
  4. 【LLMs】大语言模型分类

    2024-07-14 12:56:04       25 阅读
  5. 北京工业大学学报

    2024-07-14 12:56:04       25 阅读
  6. FFmpeg学习(五)-- libswresample使用说明及函数介绍

    2024-07-14 12:56:04       23 阅读
  7. 【大学生前端期末作业】顶级茶叶网页

    2024-07-14 12:56:04       16 阅读
  8. Spring @Scheduled学习

    2024-07-14 12:56:04       16 阅读
  9. Xcode自动化测试全景:释放你的应用质量潜能

    2024-07-14 12:56:04       21 阅读