sql多表查詢(單表查詢略過)


表library:                                                                                                                            

表borrow:

表reader:

1、等值連接:(常用)

  原理:將多張表組合成一個邏輯大表,即字段相加記錄相乘(笛卡爾積)。

  語法:select * from 表A,表B where 表A.主鍵=表B.外鍵 and 查詢條件。

  步驟:①明確來源於哪幾張表;②找到關聯字段;③添加條件;④合並語句。

  優點:簡單方便。

  缺點:查詢效率低,查詢記錄快速增長。

  適用范圍:不適用於海量數據的查詢。

  例子:

    找出李某所借圖書的所有圖書的書名及借書日期。          

    SELECT

      full_name,

      book_name,

      borrowdate

    FROM

      library,

      borrow,

      reader

    WHERE

      library.mastr_serial_number = borrow.mastr_serial_number

      AND borrow.library_card_number = reader.library_card_number

      AND full_name LIKE '李%'

2、嵌套查詢:(常用)

  原理:將多個單表查詢結果拼接在一起。

  步驟:①依據需求,拆分多個單表查詢;②針對每一個單表查詢編寫sql語句(每寫完一條執行,檢查是否正確);③合並sql語句(單表查詢結果單個:=、!=、>、<、>=、<=;多個查詢結果:in、not in)。

  優點:查詢效率高,記錄不會增加。

  缺點:復雜、邏輯性強,表結構要清晰

  例子:

    查詢1997年10月以后借書的讀者借書證號、姓名和單位。

    SELECT

      full_name,

      unit,

           library_card_number

      FROM

      reader

    WHERE

      library_card_number in (

      SELECT

        library_card_number

      FROM

        borrow

      WHERE

        borrowdate > '1997-10-31')

 3.內連接:(不常用)

  特點:先判斷再組合

  語法:inner join ... on

                兩張表:select * from 表A inner join 表B on 表A.主鍵=表B.外鍵 where 查詢條件

                三張表:select * from 表A inner join 表B on 表A.主鍵=表B.外鍵 inner join 表C on 表C.主鍵=表B.外鍵 where 查詢條件

4.外連接:(不常用)

  分為左外連接右外連接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM