1. 程式人生 > >mysql資料庫——內連線和外連線

mysql資料庫——內連線和外連線

SQL語句的查詢順序:

select選項,欄位別名,資料來源(單表,多表和子查詢[別名]),where 子句(條件判斷:從磁碟上開始),group by子句(分組統計,統計函式,分組排序,多欄位分組),having子句(判斷結果,針對分組統計結果),order by子句(排序,多欄位排序),limit子句(限制記錄數,分頁操作)

連線查詢:將多張表(2張或者大於2張表)進行記錄的連線,最終的結果是,欄位(列)數一定會增加,記錄(行)數有可能變化。

連線的分類:內連線、外連線、自然連線、交叉連線,不等連線。

內連線:[inner] join,從左表中取出每一條記錄,去右表中與所有的記錄進行匹配,匹配必須是某個條件在左表中與右表中相同最終才會保留結果,否則不保留

基本語法: 左表[inner] join 右表 on 左表.欄位=右表.欄位;

內連線:




兩個表作為條件的記錄不一樣時:


外連線:左連線和右連線

左接連:



左右表作為相等條件記錄不同時:


不同的左表:(相當於左右表換位置)


右連線:




驗證上一幅圖的疑問


交叉連線    
交叉連線不帶WHERE 子句,它返回被連線的兩個表所有資料行的笛卡爾積,返回到 
結果集合中的資料行數等於第一個表中符合查詢條件的資料行數乘以第二個表中符合查 

詢條件的資料行數

自然連線:在連線條件中使用等於(=)運算子比較被連線列的列值,但它使用選 

擇列表指出查詢結果集合中所包括的列,並刪除連線表中的重複列。

不等連線: 在連線條件使用除等於運算子以外的其它比較運算子比較被連線的 


列的列值。這些運算子包括>、>=、<=、<、!>、!<和<>。