天天看點

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

練習:

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

1、外連接配接

說明:

查詢結果為主表中所有的記錄;如果從表中有比對項,則顯示比對項,如果從表中沒有比對項,則顯示null;

應用場景:

一般多用于查詢主表中有但從表中沒有的記錄。

特點:

1、外連接配接分主從表,兩個表的順序不能随意調換

2、左連接配接,左邊為主表

     右連接配接,右邊為主表

文法

select 查詢清單

from 表1 别名(主表)

left / right / full   outer join 表2 别名    (outer 可不寫)                    //左外 右外 全連接配接

on 連接配接條件(表一的某個列等于表二的某個列)

where 篩選條件

group by 分組

having 分組後篩選條件

order by 排序

  其實 from後面緊跟的表 就是主表 left outer join 後邊跟的表就是從表

兩個表的位置不可以互換,互換位置之後 就變成了 右連接配接了。

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

常見連接配接(重要)

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

全連接配接(mysql不支援)

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

2、子查詢

說明:

當一個查詢語句裡又嵌套了另一個完整的select語句,則被嵌套的的select語句稱為子查詢或内查詢。

外面的select語句稱為外查詢,或者主查詢語句

分類:(按子查詢出現的位置分)

1、select後面,

                要求:子查詢結果為單行單列(标量子查詢)

2、from 後面 

                要求:子查詢結果可以為多行多列

3、where或者having後面(重要)

               要求:子查詢結果必須為單列   (分為單行子查詢 、多行子查詢)

4、exists 後面:

                要求:子查詢結果必須為單列(相關子查詢)

特點:

1、子查詢放在條件中,一般放在條件的右側

2、子查詢一般放在小括号中

3、子查詢的執行優先于主查詢

4、單行子查詢對應了單行操作符<    >    <=    >=      <>

      多行子查詢對應了多行操作符  any in some

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

非法使用标量子查詢的情況:

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

它裡面隻能是一個數字,不可是一列數字

标量子查詢的結果 隻能是一行一列。

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

多行子查詢

IN: x  in(30,40,50),,判斷某個字段是否在其中一個清單内

any /some :判斷某字段的值是否滿足其中任意一個

x>any(10,30,50)  等價于  x>min()

x=any(10,30,50)  等價于  x in (10,30,50)

all:判斷某字段的值是否滿足所有的

x>all(10,30,50)  等價于 x >max()

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

放在其他位置的子查詢

1、放在select後面

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

2、放在from

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

3、放在 exists後面

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

分頁查詢

應用場景:當頁面上的資料,一頁顯示不全的時候,則需要分頁顯示

分頁查詢的sql指令請求資料庫伺服器-》 伺服器相應查詢到多條資料-》前台分頁

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

limit 關鍵字 放在所有執行子句之後

起始條目索引從0開始如果不寫,就是預設從零開始顯示。

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢
[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

聯合查詢

當查詢結果來自多張表,但是多張表之間沒有聯系,這個時候往往使用聯合查詢,也稱為UNION查詢

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢

多表查詢列數一緻

[學習打卡]04 MySql複合查詢(外連接配接 子查詢 聯合查詢。。)1、外連接配接2、子查詢