龙空技术网

MySQL中有哪些约束?应该如何使用这些约束?

从程序员到架构师 98

前言:

眼前小伙伴们对“mysql约束条件男或女”大体比较重视,大家都想要了解一些“mysql约束条件男或女”的相关内容。那么小编在网络上汇集了一些对于“mysql约束条件男或女””的相关文章,希望咱们能喜欢,小伙伴们一起来了解一下吧!

约束的存在,是为了保证关系型数据库中的数据的完整性和数据一致性,其中数据的完整性主要是指数据库中的数据的准确性、可靠性和数据的一致性,而数据的约束就是用来对这些数据值进行的限制操作,这样可以保证了数据能够满足某些特定的数据条件或者是规则。

下面我们就来看看在MySQL数据库中都有哪些约束?

主键约束(Primary Key Constraint)

主键约束是用来表示数据库中每一行数据的唯一标识,而且主键必须唯一并且不能为空。每个表只能定义一个主键字段,在定义一个数据库主键之后,MySQL数据库会自动生成索引被称为是主键索引,通过主键索引可以提升查询的效率,当然也可以设置其他的索引,通常情况下,我们使用整数类型作为主键,当然也可以使用字符串类型来作为主键索引。如下所示,是为一个表添加主键约束的操作。

CREATE TABLE table_name (    column1 datatype PRIMARY KEY,    column2 datatype,    ...);
外键约束(Foreign Key Constraint)

外键约束是用于建立表与表之间的关联关系,确保了表与表之间的数据引用的完整性,建立的外键必须是另外一个表中的主键,可以为空。外键约束操作也可以用来保证父子表之间的数据完整性操作,通过外键的约束还可以防止父表中引用的数据被意外修改或者是被删除。下面展示了如何创建一个子表的外键。

CREATE TABLE child_table (    ...    FOREIGN KEY (column_name) REFERENCES parent_table(column_name));
唯一约束(Unique Constraint)

唯一性约束用于确保数据列中的每个值都是唯一的,但是与主键操作不同的是唯一性约束是允许列中存在数据为NULL的,当然我们也可以在一个表中定义多个唯一性的约束,来保证数据的唯一性操作。如下所示。

CREATE TABLE table_name (    column1 datatype UNIQUE,    column2 datatype,    ...);
检查约束(Check Constraint)

检查约束,主要是用来保证数据库中的数据值必须满足某个特定的条件,通过检查约束可以设置某列数据必须满足什么条件才可以进行保存,我们可以通过检查约束定义任意的复杂条件来限制数据库中的数据存储值。如下所示,就展示了如何设置一个检查条件。

CREATE TABLE table_name (    column1 datatype,    column2 datatype,    ...    CHECK (column1>0));

在MySQL8.0.16之后,MySQL支持CHECK约束,但是目前来看还是有一点限制的,例如不能支持对于表级别的CHECK约束,只能定义在列级别,当然这种操作只限于8.0.16版及以上的数据库中。

例如上面创建表过程会自建一个检查,当数据库中column1>0的时候才被执行插入操作,否则就会抛出异常。

需要注意在早期的MySQL总,可以通过触发器来实现类似的功能,所以在使用CHEK的时候,需要注意版本的兼容性。

非空约束(Not Null Constraint)

非空约束顾名思义,就是保证了某个数据值不能为空,也就是说在插入或者是修改的时候,必须为制定的值制定默认数据,否则修改是不能成功的。如下所示,是指定了一个数据库非空字段约束。

CREATE TABLE table_name (    column1 datatype NOT NULL,    column2 datatype,    ...);
总结

约束在数据库中扮演着非常重要的角色,它们确保数据库中的数据质量和一致性,使数据库更加可靠、安全和易于管理。通过定义和实施约束,可以有效地管理和维护数据库,提高数据的可用性和可靠性。

标签: #mysql约束条件男或女