資料庫基礎
在SQL中不加WHERE子句執行 DELETE FROM 員工,結果何者正確?
- A員工表格的所有資料列被刪除,留下空的表格
- B表格本身被刪除,表格的定義也消失
- C因為沒有WHERE子句,會產生錯誤而不刪除任何資料
查看答案與解析
正確答案:A. 員工表格的所有資料列被刪除,留下空的表格
DELETE是從表格中刪除資料列的DML敘述。以WHERE子句加上條件時,只刪除符合條件的資料列;省略WHERE子句時,所有資料列都會被刪除。即使DELETE刪除了所有資料列,表格的定義(欄位名稱、型別與限制)仍然保留,之後仍可用INSERT新增資料列。連同定義刪除表格本身的是DDL的 DROP TABLE 員工。UPDATE也一樣,忘了加WHERE子句就會改寫所有資料列,因此執行前確認條件很重要。若在交易之中,可在COMMIT之前以ROLLBACK取消。
- A. 正確。所有資料列都被刪除,但表格的定義會保留。
- B. 連同定義刪除表格的是DROP TABLE。DELETE只刪除資料列。
- C. WHERE子句可以省略,省略時所有資料列都是對象。