民國110年 第3梯次 電腦軟體應用乙級 學科

第17題

針對結構化查詢語言(SQL)陳述式「SELECT * FROM A LEFT OUTER JOIN B ON A.pk=B.pk」 的查詢結果,下列敘述何者正確…

題目

針對結構化查詢語言(SQL)陳述式「SELECT * FROM A LEFT OUTER JOIN B ON A.pk=B.pk」 的查詢結果,下列敘述何者正確?

  1. (1) 查詢結果的資料筆數等於A 資料表(Table)的資料筆數與B 資料表的資料筆數兩者之積
  2. (2) 查詢結果的資料筆數等於A 資料表(Table)的資料筆數與B 資料表 的資料筆數兩者之和
  3. (3) A 資料表(Table)的每一筆資料在查詢結果中,最少會出現一次
  4. (4) 查詢結果的欄位數目與A 資料表(Table)相同

官方答案

(3) A 資料表(Table)的每一筆資料在查詢結果中,最少會出現一次

解析

LEFT OUTER JOIN 以左邊的資料表 A 為主,會保留 A 的每一筆資料;若 B 中有符合 ON 條件(A.pk = B.pk)的資料,就合併顯示 B 的欄位,若找不到符合者,B 的欄位以 NULL 補齊。因此 A 的每一列在查詢結果中至少會出現一次,答案為 3。若 B 中同一個 pk 有多筆資料,A 的一列可能重複出現多次,筆數不必然等於兩表筆數的乘積或和,故 1、2 錯誤。SELECT * 會取出 A 與 B 的所有欄位,結果欄位數多於 A,故 4 錯誤。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料