SQL里各种联合查询总结
生活随笔
收集整理的這篇文章主要介紹了
SQL里各种联合查询总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL里各種聯合查詢總結
create database mytest go ?www.2cto.com ? use mytest go create table t_dept ( d_id int primary key identity(1,1), d_name varchar(20), d_remark varchar(20) ) go create table t_emp ( e_id int primary key identity(1,1), d_id int references t_dept(d_id), e_name varchar(20), e_sex varchar(4) ) go ?www.2cto.com ? insert into t_dept values('一部','1111'); insert into t_dept values('二部','2222'); insert into t_dept values('三部','3333'); insert into t_dept values('四部','4444'); go insert into t_emp values(1,'一部A君','男'); insert into t_emp values(1,'一部B君','男'); insert into t_emp values(2,'二部C君','女'); insert into t_emp values(null,'三部D君','男'); go select * from t_dept; select * from t_emp; go --注:聯接查詢,哪個表在前,就以哪個表為主表 --內聯接(兩表標識號相同的所有行) select * from t_dept a inner join t_emp b on a.d_id=b.d_id ; 1 一部 1111 1 1 一部A君 男 1 一部 1111 2 1 一部B君 男 2 二部 2222 3 2 二部C君 女 --外連接(外聯接可以是左向外聯接、右向外聯接或完整外部聯接) --(1) select * from t_dept a left outer join t_emp b on a.d_id=b.d_id ;--"左外連接 ?等同于 ?左連接" select * from t_dept a left join t_emp b on a.d_id=b.d_id ;--左連接(所有的部門顯示,員工表里部門id為null的顯示不出來) 1 一部 1111 1 1 一部A君 男 1 一部 1111 2 1 一部B君 男 2 二部 2222 3 2 二部C君 女 3 三部 3333 NULL NULL NULL NULL 4 四部 4444 NULL NULL NULL NULL www.2cto.com ? --(2) select * from t_dept a right outer join t_emp b on a.d_id=b.d_id ;--"右外連接 ?等同于 ?右連接" select * from t_dept a right join t_emp b on a.d_id=b.d_id ;--右連接,員工表所有員工顯示,"三部"和"四部"沒有員工的部門則該部門不顯示 1 一部 1111 1 1 一部A君 男 1 一部 1111 2 1 一部B君 男 2 二部 2222 3 2 二部C君 女 NULL NULL NULL 4 NULL 三部D君 男 --(3) --完整外部聯接,返回左表和右表中的所有行 --當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。 ?? select * from t_dept a full outer join t_emp b on a.d_id=b.d_id ; select * from t_dept a full join t_emp b on a.d_id=b.d_id ; 1 一部 1111 1 1 一部A君 男 1 一部 1111 2 1 一部B君 男 2 二部 2222 3 2 二部C君 女 3 三部 3333 NULL NULL NULL NULL 4 四部 4444 NULL NULL NULL NULL NULL NULL NULL 4 NULL 三部D君 男 --笛卡爾積 select * from t_emp,t_dept select * from t_dept,t_emp --返回16條數據,左表有4條,右表有4條,返回行數為4*4=16(條),產生笛卡爾積 www.2cto.com ? 1 一部 1111 1 1 一部A君 男 2 二部 2222 1 1 一部A君 男 3 三部 3333 1 1 一部A君 男 4 四部 4444 1 1 一部A君 男 1 一部 1111 2 1 一部B君 男 2 二部 2222 2 1 一部B君 男 3 三部 3333 2 1 一部B君 男 4 四部 4444 2 1 一部B君 男 1 一部 1111 3 2 二部C君 女 2 二部 2222 3 2 二部C君 女 3 三部 3333 3 2 二部C君 女 4 四部 4444 3 2 二部C君 女 1 一部 1111 4 NULL 三部D君 男 2 二部 2222 4 NULL 三部D君 男 3 三部 3333 4 NULL 三部D君 男 4 四部 4444 4 NULL 三部D君 男總結
以上是生活随笔為你收集整理的SQL里各种联合查询总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寄娱于学第2天——PHP骰子游戏篇--优
- 下一篇: MySQL 5.6.11 GA 发布