數據 一對多 多對一 多對多的問題 在關係型資料庫中,通過外鍵將表跟表之間聯繫在了一起。 一對多關係 一個班級有很多學生,外鍵維護在學生的一方,也就是多的一方。(在做頁面設計的時候,需要把兩個表連接到一塊查詢信息) 建立一個student和clazz表 clazz id name 1 一班 2 二班 ...
數據 一對多 多對一 多對多的問題
在關係型資料庫中,通過外鍵將表跟表之間聯繫在了一起。
一對多關係
一個班級有很多學生,外鍵維護在學生的一方,也就是多的一方。(在做頁面設計的時候,需要把兩個表連接到一塊查詢信息)
建立一個student和clazz表
clazz
id name
1 一班
2 二班
3 三班
student
id name clazz_id
1 小明 2
2 小紅 3
3 小張 1
select s.name,c.name from student as s,clazz as cwhere c.id=s.clazz_id;
一對一關係。一對一是一對多的特例,外鍵唯一。在上面的student和clazz表中,假設一個班級只能有一名學生,clazz_id(外鍵)不能重覆。
多對多關係。
外鍵維護在橋表中,不在兩個多的任意一方。下麵舉一個例子更好地說明。
student
id name
1 小明
2 小紅
3 小張
課程表 course
id name
101 java
102 php
103 c
學生選課表 sc
id course_id student_id grade
1 101 1 60
2 102 1 80
3 103 2 80
查詢id=1的學生的選的課程,名字,分數。
select s.*,c.name,sc.grade from student as s,clazz as c,sc
where sc.course_id=c.id
and sc.student_id=s.id
and s.id=1;