約束是一種限制,它通過(guò)對(duì)表的行或列的數(shù)據(jù)做出限制,來(lái)確保表的數(shù)據(jù)的完整性、唯一性。
約束分類(lèi)
|約束類(lèi)型 |主鍵 |默認(rèn)值 |唯一 |外鍵 |非空
|-
|關(guān)鍵字 |PRIMARY KEY |DEFAULT |UNIQUE |FOREIGN KEY |NOT NULL
- 創(chuàng)建實(shí)驗(yàn)用數(shù)據(jù)表(SQL3)
CREATE TABLE department
(
dpt_name CHAR(20) NOT NULL,
people_num INT(10) DEFAULT '10',
CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)
);
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),
CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES 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)
);
- 加載實(shí)驗(yàn)數(shù)據(jù)
mysql> source ~/mysql/SQL3/MySQL-03-01.sql
mysql> show tables;
+------------------------+
| Tables_in_mysql_shiyan |
+------------------------+
| department |
| employee |
| project |
+------------------------+
3 rows in set (0.00 sec)