資料庫基礎

員工表格(員工編號, 姓名, 部門編號)有5筆資料列,部門編號依序為10、20、10、NULL、NULL。部門表格(部門編號, 部門名稱)有部門編號為10、20、30的3筆資料列。SELECT 部門.部門名稱, 員工.姓名 FROM 部門 LEFT OUTER JOIN 員工 ON 部門.部門編號 = 員工.部門編號 的結果有幾筆資料列?

  1. A3筆
  2. B4筆
  3. C5筆
查看答案與解析

正確答案:B. 4筆

LEFT OUTER JOIN(左外部連結)會保留左側表格(此處為部門表格)的所有資料列,若右側表格沒有相符的資料列,就以NULL填入右側欄位,成為一筆資料列。部門10有2位員工而成為2筆,部門20為1筆,沒有員工的部門30成為姓名為NULL的1筆,合計4筆。部門編號為NULL的2位員工不與任何部門相符,而且是不會全部保留的右側表格的資料列,因此不會出現在結果中。若是內部連結,部門30的資料列也會消失而成為3筆。若左右對調成 員工 LEFT OUTER JOIN 部門,5位員工會全部保留而成為5筆。使用外部連結時,確認要保留哪個表格的所有資料列很重要。

  • A. 這是內部連結時的筆數。左外部連結也會把沒有員工的部門30保留為1筆。
  • B. 正確。部門10的2筆、部門20的1筆、部門30(姓名為NULL)的1筆,共4筆。
  • C. 這是把員工表格放在左側、保留所有員工時的筆數。
練習這個領域 前往領域頁面

相關計算工具

資料庫基礎的其他題目

  1. 表格R的欄位x有值為 1、1、2、3 的4筆資料列,表格S的欄位x有值為 1、1、2、4 的4筆資料列。SELECT * FROM R INNER JOIN S ON R.x = S.x 的結果有幾筆資料列?
  2. 客戶表格(客戶編號, 姓名)中有(C1, 青木)、(C2, 井上)、(C3, 上田)、(C4, 江藤)共4筆資料列。訂單表格(訂單編號, 客戶編號, 金額)中有(O1, C1, 3000)、(O2, C2, 8000)、(O3, C1, 6000)、(O4, C3, 2000)、(O5, C2, 9000)共5筆資料列。SELECT 姓名 FROM 客戶 WHERE 客戶編號 IN (SELECT 客戶編號 FROM 訂單 WHERE 金額 > 5000) 的結果有幾筆資料列?
  3. 想從客戶表格(客戶編號, 姓名)與訂單表格(訂單編號, 客戶編號, 金額)中,求出從未下過訂單之客戶的姓名。正確的SQL敘述是下列何者?
  4. 關於關聯式資料庫的檢視表,下列敘述何者正確?
  5. 將關聯式資料庫的表格正規化,主要目的是下列何者?