约束名称 | 关键字 | 描述 |
---|---|---|
主键约束 | PRIMARY KEY | 字段值唯一,且不能为 NULL |
非空约束 | NOT NULL | 字段值不能为 NULL |
唯一约束 | UNIQUE | 字段值唯一,且可以为 NULL |
外键约束 | FOREIGN KEY | 保持关联数据的逻辑性 |
NULL
值CREATE TABLE t_teacher(
id INT PRIMARY KEY AUTO_INCREMENT,
... ...
);
NULL
值NULL
值为没有值,而不是 ""
空字符串CREATE TABLE t_teacher(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(200) NOT NULL,
married BOOLEAN NOT NULL DEFAULT FALSE
);
BOOLEAN
实际为TINYINT
数据类型NULL
,那么在全表必须唯一CREATE TABLE t_teacher(
......
tel CHAR(11) NOT NULL UNIQUE
);
CREATE TABLE t_teacher(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
tel CHAR(11) NOT NULL UNIQUE,
married BOOLEAN NOT NULL DEFAULT FALSE
);
创建父表
CREATE TABLE t_dept(
deptno INT UNSIGNED PRIMARY KEY,
dname VARCHAR(20) NOT NULL UNIQUE,
tel CHAR(4) UNIQUE
);
创建子表
CREATE TABLE t_emp(
empno INT UNSIGNED PRIMARY KEY,
ename VARCHAR(20) NOT NULL,
sex ENUM("男", "女") NOT NULL, # 枚举的数据类型,挑选一个
deptno INT UNSIGNED,
biredate DATA NOT NULL,
FOREIGN KEY (deptno) REFERENCES t_dept(deptno)
);
可执行代码
CREATE TABLE t_dept(
deptno INT UNSIGNED PRIMARY KEY,
dname VARCHAR(20) NOT NULL UNIQUE,
tel CHAR(4) UNIQUE
);
CREATE TABLE t_emp(
empno INT UNSIGNED PRIMARY KEY,
ename VARCHAR(20) NOT NULL,
sex ENUM("男", "女") NOT NULL,
deptno INT UNSIGNED NOT NULL,
hiredate DATE NOT NULL,
FOREIGN KEY (deptno) REFERENCES t_dept(deptno)
)