SQL语言中的连接表
連接表,包括:內連接、左連接、右連接、全外連接、交叉連接
1.內連接
內連接是SQL Server中最常用的連接之一。內部聯接子句用于查詢來自兩個或多個相關表的數據。
語法:
①在from子句中指定主表(t1);
②在 inner join 子句和連接謂詞中指定第二個表(t2);
③只有連接謂詞計算為 true 的行才包 含在結果集中;
④inner join子句將表 t1 的每一行與表t2的行進行比較,以查找滿足連接謂詞的所有行對;
⑤如果連接謂詞結果為 true ,則匹配 的 t1和 t2 行的列值將合并為一個新行并包含在結果集中
???? T1表和 T2表的內連接結果圖:
??????
?? 內連接的例子:
???????
2.左連接
?? 語法:
?????????
①left join 子句用于查詢來自多個表的數據。它返回左表中的所有行和右表中的匹配行;
②如果在右表中找不到匹配的行,則使用 null 代替顯示;
③left join句子返回左表( t1)中的所有行以及右表( t2 )中匹配的行或 null 值
T1表和T2表的左連接結果圖:
?????
左連接的例子:
????????
3.右連接
?? 語法:
????????
①right join句子組合來自兩個或多個表的數據;
②right join 開始從右表中選擇數據并與左表中的行匹配;
③right join返回一個結果集,該結果集包含右表中的所有行,無論是否具有左表中的匹配行;
④如果右表中的行沒有來自右表的任何匹配行,則結果集中右表的列將使用 null值
注意:right join 和right outer join是相同的。outer是關鍵字
??T1表和T2表的右連接結果圖:
??????
?右連接的例子:
?????
4.全外連接
full outer join 當左表或右表中存在匹配項時,該命令將返回所有行。
全外連接的例子:
注意:full outer join關鍵字返回左表(customer)所有行,以及所有來自右表(orders)的行。
如果customer表中的某些行在orders表中沒有匹配項,
或在orders表中的某些行在customer表中沒有匹配項,
則這些行也將被列出。
5.交叉連接
①cross join連接兩個或多個不相關的表;
②cross join將第一個表(t1)中的每一行與第二個表(t2)中的每一行連接起來;
③交叉連接返回兩個表中行的笛卡爾積;
④若t1表中有n行,t2表中有m行,交叉連接則產生n×m行
交叉連接的例子:
6.自連接
①自連接用于同一個表,對于查詢分層數據或比較同一個表中的行很有用;
②自連接使用內連接或左連接子句;
③由于使用自連接的查詢引用同一個表,因此表別名可分配不同的名稱
注意:如果在不使用表別名的情況下,在查詢中多次引用同一個表,則會出現錯誤。
?? 自連接的例子:
?
總結
以上是生活随笔為你收集整理的SQL语言中的连接表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GitHub 优秀的 Android 开
- 下一篇: python aiml_Python:用