3.4完整性约束

--一、主键约束,两种方式
--第一种
mysql> drop table employee_tbl;
Query OK, 0 rows affected

mysql> show tables;
+--------------------+
| Tables_in_learnsql |
+--------------------+
| products_tbl       |
| test_increment     |
+--------------------+
2 rows in set

mysql> CREATE TABLE EMPLOYEE_TBL
(EMP_ID		CHAR(9)		NOT NULL PRIMARY KEY,

EMP_NAME	VARCHAR(40)	NOT NULL,
EMP_ST_ADDR VARCHAR(20) NOT NULL,
EMP_CITY	VARCHAR(15) NOT NULL,
EMP_ST		CHAR(2)		NOT NULL,
EMP_ZIP		INTEGER(5)	NOT NULL,
EMP_PHONE	INTEGER(10)	NULL,
EMP_PAGER	INTEGER(10)	NULL);
Query OK, 0 rows affected

mysql> SHOW TABLES;
+--------------------+
| Tables_in_learnsql |
+--------------------+
| employee_tbl       |
| products_tbl       |
| test_increment     |
+--------------------+
3 rows in set

--第二种
mysql> DROP TABLE EMPLOYEE_TBL;
Query OK, 0 rows affected

mysql> CREATE TABLE EMPLOYEE_TBL
(EMP_ID		CHAR(9)		NOT NULL,
EMP_NAME	VARCHAR(40)	NOT NULL,
EMP_ST_ADDR VARCHAR(20) NOT NULL,
EMP_CITY	VARCHAR(15) NOT NULL,
EMP_ST		CHAR(2)		NOT NULL,
EMP_ZIP		INTEGER(5)	NOT NULL,
EMP_PHONE	INTEGER(10)	NULL,
EMP_PAGER	INTEGER(10)	NULL,
PRIMARY KEY(EMP_ID));
Query OK, 0 rows affected

mysql> SHOW TABLES;
+--------------------+
| Tables_in_learnsql |
+--------------------+
| employee_tbl       |
| products_tbl       |
| test_increment     |
+--------------------+
3 rows in set

--二、唯一性约束
mysql> CREATE TABLE EMPLOYEE_TBL
(EMP_ID		CHAR(9)		NOT NULL PRIMARY KEY,
EMP_NAME	VARCHAR(40)	NOT NULL,
EMP_ST_ADDR VARCHAR(20) NOT NULL,
EMP_CITY	VARCHAR(15) NOT NULL,
EMP_ST		CHAR(2)		NOT NULL,
EMP_ZIP		INTEGER(5)	NOT NULL,
EMP_PHONE	INTEGER(10)	NULL		UNIQUE,
EMP_PAGER	INTEGER(10)	NULL);
Query OK, 0 rows affected

mysql> show tables;
+--------------------+
| Tables_in_learnsql |
+--------------------+
| employee_tbl       |
| products_tbl       |
| test_increment     |
+--------------------+
3 rows in set

--三、外键约束:创建一个名为EMP_ID_FK的外键约束,将EMP_ID与EMPLOYEE_TBL中的EMP_ID关联
mysql> CREATE TABLE EMPLOYEE_PAY_TST
(EMP_ID				CHAR(9)			NOT NULL,
 POSITION			VARCHAR(15)		NOT NULL,
 DATE_HIRE			DATE			NULL,
 PAY_RATE			DECIMAL(4,2)	NOT NULL,
 DATE_LAST_RAISE	DATE			NULL,
 CONSTRAINT EMP_ID_FK	FOREIGN	KEY(EMP_ID) REFERENCES	EMPLOYEE_TBL
 (EMP_ID));
Query OK, 0 rows affected


--利用ALTER TABLE添加外键
mysql> CREATE TABLE EMPLOYEE_PAY_TBL
(EMP_ID				CHAR(9)			NOT NULL,
 POSITION			VARCHAR(15)		NOT NULL,
 DATE_HIRE			DATE			NULL,
 PAY_RATE			DECIMAL(4,2)	NOT NULL,
 DATE_LAST_RAISE	DATE			NULL);
Query OK, 0 rows affected

mysql> ALTER TABLE EMPLOYEE_PAY_TBL
ADD CONSTRAINT ID_FK FOREIGN KEY (EMP_ID)
REFERENCES EMPLOYEE_TBL(EMP_ID);
Query OK, 0 rows affected
Records: 0  Duplicates: 0  Warnings: 0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值