对于创建好的表,虽然字段的数据类型决定了所能存储的数据类型,但是表中所存储的数据是否合法并没有进行检查。在具体使用MySQL软件时,如果想针对表中的数据做一些完整性检查操作,可以通过表的约束来完成。
1、MySQL支持的完整性约束
所谓完整性约束是数据的准确性和一致性,而完整性检查就是指检查数据的准确性和一致性。MySQL数据库管理系统提供了一致机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束。
MySQL数据库管理系统不支持check约束,即可以使用check约束但是却没有任何效果。根据约束数据列限制,约束可分为:单列约束,即每个约束只约束一列数据;多列约束,即每个约束可以约束多列数据。
2、设置非空约束(NOT NULL,NK)
设置表中某字段的NK约束:create table table_name(
属性名 数据类型 NOT NULL,
...................
);
3、设置字段的默认值(DEFAULT)
设置数据库表中某字段的默认值:create table table_name(
属性名 数据类型 DEFAULT 默认值,
...................
);
4、设置唯一约束(UNIQUE,UK)
设置表中某字段UK约束:create table table_name(
属性名 数据类型 UNIQUE L,
...................
);
5、设置主键约束(PRIMARY KEY,PK)
(1)单字段主键
设置表中某字段的PK约束:create table table_name(
属性名 数据类型 PRIMARY KEY,
...................
);
如果想给字段deptno上的PK约束设置一个名字,可以执行SQL语句CONSTRAINT,创建表。
(2)多字段主键
当主键由多个字段组合而成时,可以执行SQL语句CONSTRAINT:
create table table_name(
属性名 数据类型 ,
...................
【CONSTRAINT 约束名】PRIMARY KEY(属性名,属性名,......)
);
6、设置字段值自动增加(AUTO_INCREMENT)
AUTO_INCREMENT是MySQL中唯一扩展的完整性约束,当为数据库中插入新记录时,字段上的值会自动生成唯一的ID。
语法:create table table_name(
属性名 数据类型 AUTO_INCREMENT,
...................
);
7、设置外键约束(FOREIGN KEY,FK)
语法:create table table_name(
属性名 数据类型 ,
属性名 数据类型 ,
...................
CONSTRAINT 外键约束名 FOREIGN KEY(属性名1) REFERENCES 表名(属性2)
);