MySQL使用(二)

數據庫多表設計


一、多表設計之外鍵約束
⒈ 約束
⑴ 約束的作用
約束是用來保證數據的完整性。
⑵ 單表約束
主鍵約束、唯一約束、非空約束。
⑶ 多表約束
外鍵約束:用來保證數據完整性(多表之間)。
⒉ 演示外鍵約束作用
⑴ 創建一個部門表

create table dept(
	did int primary key auto_increment,
	dname varchar(20)
);
insert into dept values (null,'市場部');
insert into dept values (null,'人事部');
insert into dept values (null,'教研部');

⑵ 創建一個員工表

create table employee(
	eid int primary key auto_increment,
	ename varchar(20),
	salary double,
	birthday date,
	sex varchar(10),
	dno int
);

insert into employee values (null,'張三',8000,'1988-09-01','男',3);
insert into employee values (null,'李四',9000,'1988-09-01','男',1);
insert into employee values (null,'王五',6000,'1988-09-01','男',2);
insert into employee values (null,'趙六',10000,'1988-09-01','男',3);
insert into employee values (null,'孫七',10000,'1988-09-01','男',1);

⑶ 刪除其中的某個部門(是否可以)
查看數據



向剛纔做的這兩個操作(插入一個沒有部門的員工,刪除一個帶有員工的部門)。這種情況都是不應該發生。這個時候需要在多表之間添加外鍵約束。
⒊ 添加外鍵約束
⑴ 在員工表上添加外鍵


⑵ 設置外鍵爲非空


二、 多表設計之表關係的介紹
⒈  一對多的關係
一對多的例子:一個部門下可以有多個員工,一個員工只能屬於某一個部門。
⒉  多對多的關係
多對多的例子:一個學生可以選擇多門課程,一門課程可以被多個學生選擇。
⒊ 一對一的關係
一對一的例子:一個公司可以有一個註冊地址,一個註冊地址只能對一個公司。


三、多表設計之一對多關係
 一對多關係的建表原則

在多的一方創建外鍵指向一的一方的主鍵


四、多表設計之多對多
⒈ 多對多的關係介紹
一個學生選擇多門課程,一門課程被多個學生所選擇
⒉ 多對多的建表的原則

需要創建中間表,中間表中至少兩個字段,分別作爲外鍵指向多對多雙方的主鍵


五、多表設計之一對一關係
⒈  一對一關係的介紹
一個公司可以對應一個註冊地址,一個註冊地址只能對應一個公司
⒉  一對一關係建表原則


 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章