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

第56題

撰寫結構化查詢語言( S Q L ) 的D E L E T E 陳述式,對關聯式資料庫( R e l a t i o n a l D a t a b a s e…

題目

撰寫結構化查詢語言( S Q L ) 的D E L E T E 陳述式,對關聯式資料庫( R e l a t i o n a l D a t a b a s e ) 進行資料刪除作業時,如果沒有加上適當的W H E R E 子句將會造成何種結果?

  1. (1) 目標資料表( T a b l e ) 只有前五筆資料被刪除
  2. (2) 目標資料表( T a b l e ) 的所有資料均被刪除
  3. (3) 目標資料表( T a b l e ) 只有最後一筆資料被刪除
  4. (4) 目標資料表( T a b l e ) 只有第一筆資料被刪除

官方答案

(2) 目標資料表( T a b l e ) 的所有資料均被刪除

解析

「DELETE FROM 資料表」若省略 WHERE 條件,DBMS 會視為條件對每一列都成立,因此把資料表中所有資料列刪除;但資料表結構、欄位定義與索引仍會保留,之後仍可 INSERT 新資料。若要清空並重設,實務上會用 TRUNCATE TABLE,效率較高,同樣保留結構。選項1、3、4 都把刪除範圍限定在特定筆數,與 SQL 對全表逐列刪除的語意不符;DELETE 並沒有「只刪前五筆」或「只刪第一筆、最後一筆」的預設行為。未加 WHERE 的結果就是全表資料被清空,操作前務必先以 SELECT 確認範圍並備份。

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

官方資料