日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL里各种联合查询总结

發布時間:2025/3/21 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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里各种联合查询总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。