ToB企服应用市场:ToB评测及商务社交产业平台

标题: MYSQL中的约束操作(如果想知道MYSQL中有关约束操作的知识,那么只看这一篇 [打印本页]

作者: 怀念夏天    时间: 2024-12-11 19:20
标题: MYSQL中的约束操作(如果想知道MYSQL中有关约束操作的知识,那么只看这一篇
        前言:数据库约束是保障数据完备性和一致性的关键工具,通过界说规则,约束能有效避免数据错误,提拔系统可靠性,本篇文章主要讲解常见数据库约束及其应用。

   

  ✨✨✨这里是秋刀鱼不做梦的BLOG
  ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客
  在正式开始讲解之前,先让我们看一下本文大致的讲解内容:

目次
1.什么是数据库约束
2.数据库约束的范例
3.NOT NULL 非空约束
4.DEFAULT 默认值约束
5.UNIQUE 唯一约束
6.PRIMARY KEY 主键约束
7.FOREIGN KEY 外键约束
8.CHECK 条件约束



1.什么是数据库约束

        在学习有哪些数据库约束之前,先让我们学习一下什么是数据库约束,数据库约束是指数据库表中用来限定数据存储规则的一组规定。它们主要用于以下几个目标:
   
          总的来说,约束为数据库构建了一种数据规则,既减少了不必要的查抄,又在根本上杜绝了许多数据问题。
        至此我们就大致的了解了什么时数据库约束了!

2.数据库约束的范例

        在了解完了什么时数据库约束之后,让哦我们看一下在MySQL中有哪些约束的范例,在关系型数据库中,主要的约束范例包罗:
   
          了解了有哪些数据库约束范例之后,那么接下来,让我们逐一讲解一下每种约束的功能及实现方法。

3.NOT NULL 非空约束

        起首先让我们学习一下NOT NULL 非空约束,非空约束用于保证某一列不能存储NULL值,通常用于形貌必须提供的核心数据,例如用户表中的用户名或密码字段。
其应用场景:
        假如在一个学生管理系统中,学生的姓名不能为空,如果答应空值,则系统可能会天生一些没闻名字的学生记载,这显然是不公道的。
例子:
  1. CREATE TABLE student (
  2.   id BIGINT,
  3.   name VARCHAR(20) NOT NULL
  4. );
复制代码
        在这个界说中,name字段被设置为NOT NULL,确保每条记载必须提供学生姓名,如果尝试插入NULL值,则会报错:(如下操作)
  1. INSERT INTO student (id, name) VALUES (1, NULL);
  2. -- 错误:Column 'name' cannot be null
复制代码
——如许我们就大致的了解了NOT NULL 非空约束的利用了!根据上述所讲,我们来总结一下:
   
          至此我们就大致的了解了NOT NULL 非空约束了!

4.DEFAULT 默认值约束

        了解完了NOT NULL 非空约束之后,在让我们看一下DEFAULT 默认值约束,默认值约束的作用是为字段设置一个默认值,当插入记载时,如果未指定该字段的值,则自动添补默认值。
其应用场景:
        在许多环境下,字段纵然答应为空,也必要一个默认值以体现未提供数据的环境,例如,学生表中的年龄字段可能默认值为18,体现大部分学生是成年学生。
例子:
  1. CREATE TABLE student (
  2.   id BIGINT,
  3.   name VARCHAR(20) NOT NULL,
  4.   age INT DEFAULT 18
  5. );
复制代码
此时我们插入记载时未提供age字段的值,系统就会自动利用默认值18:
  1. INSERT INTO student (id, name) VALUES (1, '张三');
  2. SELECT * FROM student;
  3. -- 输出:
  4. -- +----+------+-----+
  5. -- | id | name | age |
  6. -- +----+------+-----+
  7. -- |  1 | 张三  |  18 |
  8. -- +----+------+-----+
复制代码
——如许我们就大致的了解了DEFAULT 默认值约束的利用了!根据上述所讲,我们来总结一下:
   
          至此我们就大致的了解了DEFAULT 默认值约束了!

5.UNIQUE 唯一约束

        了解完了DEFAULT 默认值约束之后,在让我们学习一下UNIQUE 唯一约束,唯一约束确保某一列或列组合中的值在表中是唯一的,它通常用于标识诸如身份证号、学号或电子邮件地址等独一无二的属性。
其应用场景:
        假想在学校管理系统中,学号是每位学生的唯一标识,两个学生的学号不能重复。
例子:
  1. CREATE TABLE student (
  2.   id BIGINT,
  3.   sno VARCHAR(10) UNIQUE
  4. );
复制代码
当我们尝试插入重复的学号会报错:
  1. INSERT INTO student (id, sno) VALUES (1, '100001');
  2. INSERT INTO student (id, sno) VALUES (2, '100001');
  3. -- 错误:Duplicate entry '100001' for key 'sno'
复制代码
——如许我们就大致的了解了UNIQUE 唯一约束的利用了!根据上述所讲,我们来总结一下:
   
          至此我们就大致的了解了UNIQUE 唯一约束了!

6.PRIMARY KEY 主键约束

        接下来让我们学习一下PRIMARY KEY 主键约束,主键约束是唯一约束和非空约束的联合,它保证了每条记载的唯一性,而且每张表只能界说一个主键。
其应用场景:
        主键通常用于唯一标识一条记载,例如用户表中的用户ID。
例子:
  1. CREATE TABLE student (
  2.   id BIGINT PRIMARY KEY AUTO_INCREMENT,
  3.   name VARCHAR(20) NOT NULL
  4. );
复制代码
当我们插入数据时,数据库就会自动天生主键值:
  1. INSERT INTO student (name) VALUES ('张三');
  2. -- 自动生成主键值1
复制代码
——如许我们就大致的了解了PRIMARY KEY 主键约束的利用了!根据上述所讲,我们来总结一下:
   
          至此我们就大致的了解了PRIMARY KEY 主键约束了!

7.FOREIGN KEY 外键约束

        接着让我们学习一下FOREIGN KEY 外键约束,外键约束用于界说表与表之间的关联关系,例如,学生表的班级字段必须引用班级表的主键。
例子:
        如今我们界说班级表和学生表,学生表中的class_id引用班级表的id字段:
  1. CREATE TABLE class (
  2.   id BIGINT PRIMARY KEY AUTO_INCREMENT,
  3.   name VARCHAR(20) NOT NULL
  4. );
  5. CREATE TABLE student (
  6.   id BIGINT PRIMARY KEY AUTO_INCREMENT,
  7.   name VARCHAR(20) NOT NULL,
  8.   class_id BIGINT,
  9.   FOREIGN KEY (class_id) REFERENCES class(id)
  10. );
复制代码
这里我们对上述的代码进行解释一下:
           起首, class 表用于存储班级信息,包含 id 和 name 字段,此中 id 是自增的主键,用于唯一标识每个班级,name 字段为班级名称,不答应为空。
          其次,student 表存储学生信息,包含 id(自增主键)、name(学生姓名,不为空)和 class_id(外键)。
          最后,class_id 字段通过外键关联到 class 表的 id 字段,确保学生所属的班级在 class 表中存在,实现两表之间的一对多关系。
          至此我们就大致的了解了FOREIGN KEY 外键约束了!

8.CHECK 条件约束

        最后让我们看一下CHECK 条件约束,CHECK用于限定字段值满意肯定条件,例如,年龄字段必须大于便是16岁。
例子:
以下代码为学生表的age字段添加了范围限定:
  1. CREATE TABLE student (
  2.   id BIGINT PRIMARY KEY AUTO_INCREMENT,
  3.   name VARCHAR(20) NOT NULL,
  4.   age INT CHECK (age >= 16)
  5. );
复制代码
当我们插入不符合条件的数据会报错:
  1. INSERT INTO student (name, age) VALUES ('张三', 15);
  2. -- 错误:Check constraint is violated
复制代码
        至此我们就大致的了解了CHECK 条件约束了!



以上就是本篇文章全部内容~~


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4