SQL 约束: 5种键值
- 2019 年 10 月 10 日
- 筆記
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40313634/article/details/99582436
在MySQL 中通常有 5 中约束
键名 |
关键字 |
说明 |
---|---|---|
主键 |
PRIMARY KEY |
表中一行数据的唯一标识符,类似索引、name; 值不能重复 |
默认值 |
DEFAULT |
插入新数据时生效。如果不设置,值自动设置为默认值 |
非空 |
NOT NULL |
值为空时会报错,不能为空 |
唯一 |
UNIQUE |
值不能重复 |
外键 |
FROREIGN KEY |
两个(或多个)表中的数据关联时,会用到外键 |
CREATE DATABASE mysql_shiyan; use mysql_shiyan; CREATE TABLE department ( dpt_name CHAR(20) NOT NULL, -- dpt_name 非空 people_num INT(10) DEFAULT '10', -- people_num 默认值是 10 CONSTRAINT dpt_pk PRIMARY KEY (dpt_name) -- 设置主键为dpt_name, 并起了个小名dpt_pk ); CREATE TABLE employee ( id INT(10) PRIMARY KEY, -- 设置主键 name CHAR(20), age INT(10), salary INT(10) NOT NULL, -- 非空 phone INT(12) NOT NULL, in_dpt CHAR(20) NOT NULL, UNIQUE (phone), -- 唯一, phone 不能重复 CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name) -- 设置外键, 把employee 中的in_dpt 和 department 中的dpt_name关联起来 ); CREATE TABLE project ( proj_num INT(10) NOT NULL, proj_name CHAR(20) NOT NULL, start_date DATE NOT NULL, end_date DATE DEFAULT '2015-04-01', of_dpt CHAR(20) REFERENCES department(dpt_name), CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name) # 设置主键(复合主键) );