当前位置: 首页 > article >正文

【MySQL】提高篇—数据完整性与约束:主键、外键、唯一约束和检查约束的概念

在关系数据库中,数据的组织和管理是通过表(Tables)来实现的。为了确保数据的完整性和一致性,数据库提供了一系列约束(Constraints)来限制表中数据的特性。主要的约束包括:

  1. 主键(Primary Key):用于唯一标识表中的每一行数据。

  2. 外键(Foreign Key):用于在不同表之间建立关联,确保数据的参照完整性。

  3. 唯一约束(Unique Constraint):确保某一列或列组合中的所有值都是唯一的。

  4. 检查约束(Check Constraint):用于限制列中的值,确保它们符合特定条件。

这些约束在实际应用中非常重要,主要体现在以下几个方面:

  • 数据完整性:通过约束,可以确保数据的准确性和一致性,防止无效或错误的数据被插入到数据库中。

  • 业务逻辑实现:约束可以反映业务规则,确保数据库中的数据符合这些规则。

  • 数据关系管理:通过外键约束,可以有效管理表之间的关系,避免孤立数据。

1. 主键(Primary Key)

概念:主键是表中的一列或多列,具有唯一性和非空性,确保每一行数据都可以被唯一标识。

示例

假设我们有一个 students 表,用于存储学生的信息。

CREATE TABLE students (
    student_id INT PRIMARY KEY, -- 主键,唯一标识每个学生
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    birth_date DATE
);

解释

  • student_id INT PRIMARY KEY:定义 student_id 列为主键,确保每个学生都有一个唯一的 ID。主键列不能包含空值。

2. 外键(Foreign Key)

概念:外键是一个表中的一列或多列,它引用另一个表的主键,用于建立表之间的关系。

示例

假设我们还有一个 enrollments 表,用于记录学生的课程注册情况。

CREATE TABLE enrollments (
    enrollment_id INT PRIMARY KEY,
    student_id INT,
    course_name VARCHAR(100),
    FOREIGN KEY (student_id) REFERENCES students(student_id) -- 外键,引用students表的主键
);

解释

  • FOREIGN KEY (student_id) REFERENCES students(student_id):定义 student_id 列为外键,引用 students 表的 student_id 列。这样可以确保每个注册的学生在 students 表中存在,维护数据的参照完整性。

3. 唯一约束(Unique Constraint)

概念:唯一约束确保某一列或列组合中的所有值都是唯一的,但可以包含空值。

示例

students 表中,我们希望确保每个学生的电子邮件地址是唯一的。

CREATE TABLE students (
    student_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    birth_date DATE,
    email VARCHAR(100) UNIQUE -- 唯一约束,确保电子邮件地址唯一
);

解释

  • email VARCHAR(100) UNIQUE:定义 email 列为唯一约束,确保每个学生的电子邮件地址都是唯一的。如果尝试插入相同的电子邮件地址,将会导致错误。

4. 检查约束(Check Constraint)

概念:检查约束用于限制列中的值,确保它们符合特定条件。

示例

students 表中,我们希望确保学生的年龄在 0 到 150 岁之间。

CREATE TABLE students (
    student_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    birth_date DATE,
    age INT CHECK (age >= 0 AND age <= 150) -- 检查约束,确保年龄在 0 到 150 之间
);

解释

  • CHECK (age >= 0 AND age <= 150):定义 age 列的检查约束,确保插入的年龄值在 0 到 150 之间。如果插入的年龄不符合条件,将会导致错误。

总结

通过本节的示例,您应该能够理解主键、外键、唯一约束和检查约束的基本概念及其在数据库中的应用:

  1. 主键:用于唯一标识表中的每一行数据,确保数据的唯一性和非空性。

  2. 外键:用于在不同表之间建立关联,确保数据的参照完整性。

  3. 唯一约束:确保某一列或列组合中的所有值都是唯一的,可以包含空值。

  4. 检查约束:用于限制列中的值,确保它们符合特定条件。


http://www.kler.cn/a/369023.html

相关文章:

  • 关闭windows更新方法
  • 什么是Kubernetes?K8s基础与工作原理
  • css知识点梳理2
  • 【vue+leaflet】自定义控件(五)
  • Ansible 批量部署
  • Python4
  • Linux 命令行查看当前目录的总大小/总磁盘空间/磁盘清理
  • Oracle 19c RAC删除多余的PDB的方式
  • Vue 3 对接保利威云点播播放器实践
  • 使用pandas进行数据分析
  • 【Linux】————进程间通信(匿名管道)
  • 数据结构(JAVA)JDK17语法新增特性
  • java spark解决文件读取乱码问题
  • rtp协议:rtcp包格式和传输间隔
  • 【Python】Python面向对象编程进阶:继承、多态与封装
  • 01,http 协议
  • 【开源鸿蒙】OpenHarmony 5.0轻量系统最小开发环境搭建
  • DC-9靶场渗透
  • 等保测评与风险管理:识别、评估和缓解潜在的安全威胁
  • GSM850分几个Channel,为什么这样分?
  • Spring源码解析(35)之Spring全体系源码流程图
  • Kaggle竞赛——灾难推文分类(Disaster Tweets)
  • 信息安全入门——网络安全威胁
  • MySQLDBA修炼之道-开发篇(二)
  • 线性可分支持向量机的原理推导 9-29对偶可行性条件 公式解析
  • 8.Linux按键驱动-中断下半部