昨天聽了落落的課,講到了表與表之間的關係。
以下是我的測試案例:
select *
from departments d
where d.department_id in (select e.department_id from employees e);
查詢表departments(department_id)與表employees(department_id)之間的關係
select
count(*),department_id from departments group
by department_id;
count(*)
department_id110
120130
140150
160170
180190
1100
1110
1120
1130
1140
1150
1160
1170
1180
1190
1200
1210
1220
1230
1240
1250
1260
1270
select
count(*),department_id from employees group
by department_id;
count(*)
department_id
6100630
13902
201702
11045
5034801
405601
10
所以可以得知表departments(department_id)與表employees(department_id)之間關係為1 : n所以以上sql可以等價改寫成以下形式:
select d.*
from departments d,(select department_id from employees e group
by department_id) c
where d.department_id=c.department_id
select *
from employees e
where e.department_id in (select d.department_id from departments d);
由案例1可以得知:所以以上sql可以等價改寫成以下形式:表employees(department_id)與表departments(department_id)之間的關係為n:1
select e.*
from employees e, departments d
where e.department_id = d.department_id
建立以下表,並插入資料:
create
table emp_test as
select * from employees ;
insert
into emp_test select * from emp_test;
...重複插入至3000多條資料後
commit;
create
table dept_test as
select * from departments;
insert
into dept_test select * from dept_test;
...重複插入至1700多條資料後
commit;
現在對以下sql改寫:
select count(*)
from emp_test e
where e.department_id in (select d.department_id from dept_test d);
count(*)
-------
3392
由以上建表時語句可以得知,
表emp_test (department_id)與表dept_test (department_id)之間的關係為n:n錯誤改寫:
select count(*)
from emp_test e, dept_test d
where e.department_id = d.department_id;
count(*)
-------
434176
正確改寫:
select count(*)
from emp_test e,
(select department_id from dept_test d group by d.department_id) c
where e.department_id = c.department_id;
count(*)
-------
3392
表與表之間的關係
最近領導一直在提 表之間關聯 資料的身份證 之類的我聽不懂的名詞 今天就總結一下,表之間的關係 什麼是主鍵 外來鍵 關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組 注意是組 能唯一標識一條記錄,該屬性組就可以成為乙個主鍵 比如 學生表 學號,姓名,性別,班級 其中每個學生的學號是唯一的,...
表與表之間的關係筆記
表與表之間的關係 一 一對多和多對多 1.一對多建表原則 1 在從表 多方 建立乙個字段,字段作為外來鍵指向一的一方的主鍵 2 例項 分類和商品,乙個分類對應多個商品,乙個商品只能屬於某乙個分類,部門和員工,乙個部門可以有多個員工,乙個員工只能屬於某乙個部門 3 alter table 從表 pro...
表與表之間的關係,修改表,複製表
外來鍵就是從來幫助我們建立表與表之間關係的 foreign key表與表只有四種關係 一對多關係 多對多關係 一對一關係 多對一關係sql語句建立表關係 1.一對多表關係 外來鍵字段建在多的一方 2.在建立表的時候 一定要先建被關聯表 3.在錄入資料的時候 也必須先錄入被關聯表 create tab...