一. 建表
创建表的过程,其实就是规定数据列属性的过程,同时也是实施数据完整性约束(实体完整性,引用完整性,域完整性)的过程.
create table if not exists table_name (
field_name field_type(field_length),
......
)
二. 使用主键约束(实体完整性)
1. 定义列时,同时定义主键
create table if not exists table_name (
field_name field_type(field_length) primary key,
......
)
2. 定义所有列后指定主键 (联合主键时必须使用这种方式)
create table if not exists table_name (
field_name field_type(field_length),
......
primary key(field_name)
)
三. 使用外键约束(引用完整性)-不能跨引擎使用
外键用来在两个数据表之间建立联系,子表的外键必须时主表的主键,且关联字段的数据类型必须匹配
- 主表(父表):相关联字段中,主键所在的那个表
- 从表(子表):相关联字段中,外键所在的那个表
constraint fk_name foreign key(field_name) references master_table_name(field_name);
四. 非空约束 (域完整性)
非空约束指的是字段的值不能为空
field_name field_type(field_length) not null;
五. 唯一性约束
唯一性约束要求该列唯一,允许唯一,但只能出现一个空值
1. 定义列时,同时指定唯一性
field name field_type(field_length) unique;
2. 定义所有列后指定唯一性
create table if not exists table_name (
field_name field_type(field_length),
......
constraint name unique(field_name)
)
六. 默认约束
默认约束指定某列的默认值
field_name field_type(field_length) default "默认值";
七. 属性自动增加
field_name field_type(field_length) auto_increment;
一个表只能有一个字段auto_increment,且这个字段必须是主键的一部分.auto_increment可以时任何整性类型
数据完整性
- 实体完整性(行完整性)<--主键约束
- 引用完整性(参照完整性)<--外键约束
- 域完整性(列完整性)-数据必须与数据类型,格式,长度相匹配
- 用户定义完整性<--非空约束,唯一约束,默认约束
完整性约束
- 实体完整性约束
- 参照完整性约束
- 函数完整性约束
- 统计约束
实现完整性约束的方法
- 静态约束
- 动态约束