複選題

3.下列哪些屬於 SQL 的 DDL(Data Definition Language) 語法?
(A) CREATE
(B) DROP
(C) UPDATE
(D) ALTER
(E) TRUNCATE

答案:登入後查看
統計: A(16), B(18), C(9), D(15), E(8) #3678259

詳解 (共 1 筆)

#7222703

【解題思路】

要解這題,只需要記住:

DDL = 用來「改動資料庫結構」的語法。
(建立、修改、刪除「表格 or 資料庫」本身)

DDL 的經典五大語法是:

  • CREATE(建立表或資料庫)

  • DROP(刪除表或資料庫)

  • ALTER(修改表結構)

  • TRUNCATE(清除資料,但保留表結構)

  • RENAME(改名)

因此本題的正確選項為:
A、B、D、E

UPDATE 是 DML(Data Manipulation Language,資料操作語言),不是 DDL。

【逐步講解概念】

SQL 依用途大致分成三大類:

1. DDL(資料定義語言)→ 控制「結構」

例:

  • CREATE TABLE Students (...)

  • ALTER TABLE Users ADD COLUMN age INT;

  • DROP TABLE Orders;

  • TRUNCATE TABLE Logs;

作用:
建立表、刪除表、修改欄位、清除內容但保留表。

2. DML(資料操作語言)→ 控制「資料本身」

例:

  • INSERT

  • UPDATE

  • DELETE

  • SELECT(部分教材視為查詢語法)

3. DCL(資料控制語言)→ 權限相關

例:

  • GRANT

  • REVOKE

【選項逐一破題】

(A) CREATE
用來建立表或資料庫 → DDL。
正確!

(B) DROP
刪除表或資料庫 → DDL。
正確!

(C) UPDATE
修改表中資料 → DML(資料操作語言),非 DDL。
錯誤!

(D) ALTER
修改表結構(新增欄位、刪除欄位)→ DDL。
正確!

(E) TRUNCATE
清空表內容但保留表結構 → DDL。
正確!

【延伸知識】

TRUNCATE 與 DELETE 的差異(很常考):

指令 類別 刪除方式 是否可復原
TRUNCATE DDL 直接清空整個表 通常不可回復、速度快
DELETE DML 逐筆刪除,可加條件 可回復、速度較慢

口訣:
「TRUNCATE 拿掉全部,DELETE 挑著刪。」

【記憶技巧】

一句話背起來:

「DDL:建(CREATE)、改(ALTER)、刪(DROP)、清(TRUNCATE)。」

更短版:

「建改刪清 → 全是 DDL。」

【常見錯誤】

  1. 把 UPDATE 當 DDL
    UPDATE 修改的是「資料」,不是「表的結構」。

  2. 把 TRUNCATE 誤以為是 DELETE 的加強版
    功能接近,但分類不同:

  • DELETE 是 DML

  • TRUNCATE 是 DDL:因為會重置表結構的一些 metadata

0
0