iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
自我挑戰組

Oracle資料庫系列 第 5

[Day5]DML語句中的命令:SELECT語句

https://ithelp.ithome.com.tw/upload/images/20210920/20140915DBAsF6rOb9.png
SELECT是SQL的DQL語句中的命令,功能分別有

  • 檢索資料
  • 表格合併
  • 函數等,基本格式如下:
    https://ithelp.ithome.com.tw/upload/images/20210920/20140915LJR8TnNyO1.png

而使用SELECT語句檢索資料的方法有三種:

  • 投射(Projection)
    https://ithelp.ithome.com.tw/upload/images/20210920/201409159Xz9cjgYvD.png
  • 選擇(Selection)
    https://ithelp.ithome.com.tw/upload/images/20210920/20140915mSroOgO2Y3.png
  • 合併(Join),合併又分成三種,分別是自然合併、自我合併和外部合併。
    https://ithelp.ithome.com.tw/upload/images/20210920/20140915jxk5he2Uqf.png
    合併的基本觀念:
  1. 當兩個以上的資料表具有相同名稱欄位時,需要在SELECT子句的欄位前加上資料表名稱。
  2. 大部分合併查詢會包含一個重複合併條件,可放在FROM或WHERE子句。
  3. 合併時,會依條件將相同屬性的資料倆倆結合。
  4. 比較條件內的欄位不一定要出現在SELECT子句中。
  5. 包含比較條件的WHERE子句可同時包含用來縮小查詢範圍的其他限制條件,限制資料列的數量。

自然合併(NATURE JOIN)
https://ithelp.ithome.com.tw/upload/images/20210920/20140915svkj3ELHRL.png

  1. 欄位內容相同的資料會合併成一筆資料,所以兩表中相同的名稱,資料類型也要相同。
  2. 只能合併兩張表。
  3. 如輸入條件式,WHERE子句一定要在最後輸入。

JOIN…USING…子句合併資料表,使用時機:合併的兩個資料表有多個欄位名稱相同,資料類型卻不同時。
https://ithelp.ithome.com.tw/upload/images/20210920/20140915Qt0sQ1PMSP.png

  1. 一個USING子句僅能比對一個欄位。
  2. 不能再輸入其他條件。
  3. USING子句和NATURAL JOIN子句不可同時出現。
  4. 如要合併多張表時,JOIN子句要分開輸入。

JOIN…ON…子句合併資料表,使用時機:指定合併比較欄位時。
https://ithelp.ithome.com.tw/upload/images/20210920/20140915DbDW9tnm9F.png

  1. 可不含有同名或是同類別的欄位。
  2. 使用ON子句可將多個資料表依指定欄位及合併條件合併,不同的合併條件需個別獨立。

外部合併:OUTER JOIN
https://ithelp.ithome.com.tw/upload/images/20210920/201409156MHAEDdrmt.png

  1. 把未符合比較條件的資料欄合併到目標資料列。
  2. 左外部合併:將不符合的左側資料欄併入目標資料列。
  3. 右外部合併則反之。
  4. 全外部合併:將資料表1、2所有符合的資料結合,且保留未匹配的左右兩側欄位,並在不符合的那一側填入空值。

下一篇則會實際運用使用SELECT語句檢索資料並列出結果!


上一篇
[Day4] 預設範例帳戶:OE
下一篇
[Day6]Select語句實作
系列文
Oracle資料庫30

尚未有邦友留言

立即登入留言