MySQL约束
约束类型:
1.主键约束
主键,又称主码,是表中一列或多列的组合
主键约束要求列的数据唯一,并且不允许为空
语法规则
字段名 数据类型 PRIMARY KEY [默认值]
单字段主键如:
CREATE TABLE mydb1
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT
);
或者多字段主键如:
CREATE TABLE mydb1
(
id INT(11),
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
PRIMARY KEY(id,name....)
);
2.非空约束
非空约束指定的字段值不能为空
语法规则
字段名 数据类型 not null
如:
CREATE TABLE mydb1
(
id INT(11) PRIMARY KEY,
name VARCHAR(25) not null,//使用非空约束
deptId INT(11),
salary FLOAT
);
3.唯一性约束
唯一性约束要求该列唯一
语法规则
字段名 数据类型 UNIQUE
如:
CREATE TABLE mydb1
(
id INT(11) PRIMARY KEY,
name VARCHAR(25) UNIQUE,//使用唯一性约束
deptId INT(11),
salary FLOAT
);
4.默认约束
指定某列的默认值
语法规则
字段名 数据类型 DEFAULT 默认值
如:
CREATE TABLE mydb1
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11) DEFAULT 10,//使用默认约束
salary FLOAT
);
5.外键约束
外键约束用来在两个表之间进行数据连接
主表:对于两个具有关联关系的表而言,相关字段中主键所在的那个表即使主表
从表:对于两个具有关联关系的表而言,相关字段中外键所在的那个表即是从表
语法规则
[CONSTRAINT<外键名/外键约束>] FOREIGN KEY 字段名 REFERENCES<主表名> 主键列
如:
创建一个部门表tb_dept1
CREATE TABLE tb_dept1
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
);
定义数据表tb_emp5,让它的键dept1作为外键关联到tb_dept1的主键id
CREATE TABLE tb_emp5
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCE tb_dept1(id)
);