列的完整性约束
完整性约束条件是对字段进行限制,要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不再执行用户的操作。MySQL中基本的完整性约束条件如表3-11所示。下表是完整性约束条件:
设置表字段的主键约束(PRIMARY KEY,PK)
主键是表的一个特殊字段,能唯一标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证用来表明人的身份,每个人都具有唯一的身份证号。设置表的主键是指在创建表时设置表的某个字段为该表的主键。
主键的主要目的是帮助数据库管理系统以最快的速度查找到表的某一条信息。主键必须满足的条件就是主键必须是唯一的,表中任意两条记录的主键字段的值不能相同,并且是非空值。主键可以是单一的字段,也可以是多个字段的组合。
1. 单字段主键
单字段主键的语法规则如下:
CREATE TABLE tablename(
propName propType PRIMARY KEY, ......
);
或
CREATE TABLE tablename(
propName propType , ......
PRIMARY KEY(propType)
);
Mysql 支持给主键设置名字:
CREATE TABLE tablename(
propName propType , ......
CONSTRAINT pk_name PRIMARY KEY(propType)
);
给id字段的PK约束设置一个名字,可以执行SQL语句CONSTRAINT。创建表:
列如:
create table class(id int , name varchar(128), teacher varchar(64), CONSTRAINT id_pk PRIMARY KEY (id));
2.多字段主键
主键是由多个属性组合而成时,在属性定义完之后统一设置主键。语法规则如下:
CREATE TABLE tablename(
propName1 propType ,
propName2 propType ,
......
[CONSTRAINT pk_name]PRIMARY KEY(propName1, propName2)
);
列如:
create table class3(id int, name varchar(128), teacher varchar(64), CONSTRAINT id_pk PRIMARY KEY(id,name));
设置表字段的外键约束(FOREIGN KEY,FK)
外键是表的一个特殊字段,外键约束是为了保证多个表(通常为两个表)之间的参照完整性,即构建两个表的字段之间的参照关系。
设置外键约束的两个表之间具有父子关系,即子表中某个字段的取值范围由父表决定。例如,表示一个班级和学生关系,即每个班级有多个学生。首先应该有两个表:班级表和学生表,然后学生表有一个表示班级编号的字段no,其依赖于班级表的主键,这样字段no就是学生表的外键,通过该字段班级表和学生表建立了关系。
- 一个班级表:
ID |
名称 |
班主任 |
101 |
六年级一班 |