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,一个表可以有多个唯一约束。
创建唯一约束的语法:
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,也不允许引用不存在的主键值,一个表可以有多个外键约束。
创建外键约束的语法:
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