mysql数据库的约束限制详解是什么

MySQL数据库的约束限制详解

在MySQL数据库中,约束是一种用于限制表中数据的规则,它们可以帮助我们确保数据的完整性和一致性,MySQL支持以下几种约束:

mysql数据库的约束限制详解是什么

1、主键约束(PRIMARY KEY)

主键约束是一种特殊的唯一索引,它要求一个表中的所有记录都有一个唯一的标识符,主键的值不允许重复,也不允许为NULL,一个表只能有一个主键。

创建主键约束的语法:

CREATE TABLE 表名 (
    列名1 数据类型,
    列名2 数据类型,
    ...,
    PRIMARY KEY (列名)
);

创建一个名为students的表,其中id列为主键:

CREATE TABLE students (
    id INT AUTO_INCREMENT,
    name VARCHAR(50),
    age INT,
    PRIMARY KEY (id)
);

2、唯一约束(UNIQUE)

唯一约束要求表中的某个列的值是唯一的,但允许为NULL,一个表可以有多个唯一约束。

创建唯一约束的语法:

mysql数据库的约束限制详解是什么

CREATE TABLE 表名 (
    列名1 数据类型,
    列名2 数据类型,
    ...,
    UNIQUE (列名)
);

创建一个名为students的表,其中email列的值是唯一的:

CREATE TABLE students (
    id INT AUTO_INCREMENT,
    name VARCHAR(50),
    email VARCHAR(50),
    UNIQUE (email)
);

3、非空约束(NOT NULL)

非空约束要求表中的某个列的值不能为NULL,一个表可以有多个非空约束。

创建非空约束的语法:

CREATE TABLE 表名 (
    列名1 数据类型 NOT NULL,
    列名2 数据类型,
    ...,
    PRIMARY KEY (列名)
);

创建一个名为students的表,其中name列的值不能为NULL:

CREATE TABLE students (
    id INT AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT,
    PRIMARY KEY (id)
);

4、外键约束(FOREIGN KEY)

外键约束是一种关联两个表的约束,它要求在一个表中引用另一个表的主键值,外键的值不允许为NULL,也不允许引用不存在的主键值,一个表可以有多个外键约束。

mysql数据库的约束限制详解是什么

创建外键约束的语法:

CREATE TABLE 表名 (
    列名1 数据类型,
    列名2 数据类型,
    ...,
    FOREIGN KEY (本表列名) REFERENCES 另一表名 (另一表列名) ON DELETE CASCADE ON UPDATE CASCADE
);

创建一个名为courses的表,其中teacher_id列引用teachers表的id列:

CREATE TABLE courses (
    id INT AUTO_INCREMENT,
    name VARCHAR(50),
    teacher_id INT,
    FOREIGN KEY (teacher_id) REFERENCES teachers (id) ON DELETE CASCADE ON UPDATE CASCADE
);

5、检查约束(CHECK)

检查约束要求表中的某个列的值满足指定的条件,一个表可以有多个检查约束,检查约束的条件可以是逻辑表达式、函数或者算术表达式,如果条件不满足,插入或更新操作将被拒绝,创建检查约束的语法:

CREATE TABLE 表名 (
    列名1 数据类型,
    列名2 数据类型,
    ...,
    CHECK (条件)
);

创建一个名为students的表,其中age列的值必须在18到25之间:

CREATE TABLE students (
    id INT AUTO_INCREMENT,
    name VARCHAR(50),
    age INT,
    CHECK (age >= 18 AND age <= 25)
);

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/347410.html

(0)
K-seoK-seoSEO优化员
上一篇 2024年3月4日 17:12
下一篇 2024年3月4日 17:16

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入