約束是一種限制,它通過對表的行或列的數(shù)據(jù)做出限制,來確保表的數(shù)據(jù)的完整性、唯一性。
約束分類
|約束類型 |主鍵 |默認值 |唯一 |外鍵 |非空
|-
|關鍵字 |PRIMARY KEY |DEFAULT |UNIQUE |FOREIGN KEY |NOT NULL
- 創(chuàng)建實驗用數(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ù)據(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)