对于创建好的表,虽然字段的数据类型决定了所能存储的数据类型,但是表中所存储的数据是否合法并没有进行检查。在具体使用MySQL软件时,如果想针对表中的数据做一些完整性检查操作,可以通过表的约束来完成。


1、MySQL支持的完整性约束

所谓完整性约束是数据的准确性和一致性,而完整性检查就是指检查数据的准确性和一致性。MySQL数据库管理系统提供了一致机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束。


mysql中的check约束 mysql check约束_数据


MySQL数据库管理系统不支持check约束,即可以使用check约束但是却没有任何效果。根据约束数据列限制,约束可分为:单列约束,即每个约束只约束一列数据;多列约束,即每个约束可以约束多列数据。

2、设置非空约束(NOT  NULL,NK)

设置表中某字段的NK约束:create  table  table_name(
										属性名  数据类型  NOT  NULL,
												...................
										);

mysql中的check约束 mysql check约束_mysql中的check约束_02

3、设置字段的默认值(DEFAULT)


设置数据库表中某字段的默认值:create  table  table_name(
											属性名  数据类型  DEFAULT  默认值,
												...................
												);


mysql中的check约束 mysql check约束_字段_03


4、设置唯一约束(UNIQUE,UK)


设置表中某字段UK约束:create  table  table_name(
										属性名  数据类型  UNIQUE  L,
											...................
											);


mysql中的check约束 mysql check约束_字段_04


5、设置主键约束(PRIMARY  KEY,PK)

(1)单字段主键

设置表中某字段的PK约束:create  table  table_name(
										属性名  数据类型  PRIMARY  KEY,
											...................
											);


mysql中的check约束 mysql check约束_mysql中的check约束_05

如果想给字段deptno上的PK约束设置一个名字,可以执行SQL语句CONSTRAINT,创建表。

mysql中的check约束 mysql check约束_字段_06

(2)多字段主键

当主键由多个字段组合而成时,可以执行SQL语句CONSTRAINT:

create  table  table_name(
		属性名  数据类型 ,
		...................
		【CONSTRAINT  约束名】PRIMARY  KEY(属性名,属性名,......)
		);



mysql中的check约束 mysql check约束_mysql中的check约束_07


6、设置字段值自动增加(AUTO_INCREMENT)

AUTO_INCREMENT是MySQL中唯一扩展的完整性约束,当为数据库中插入新记录时,字段上的值会自动生成唯一的ID。

语法:create  table  table_name(
					属性名  数据类型  AUTO_INCREMENT,
					...................
					);


mysql中的check约束 mysql check约束_数据_08

7、设置外键约束(FOREIGN  KEY,FK)

语法:create  table  table_name(
						属性名  数据类型  ,
						属性名  数据类型  ,
							...................
						CONSTRAINT  外键约束名  FOREIGN  KEY(属性名1)  REFERENCES 表名(属性2)
						);

mysql中的check约束 mysql check约束_数据_09