複選題
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 筆)
【解題思路】
要解這題,只需要記住:
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。」
【常見錯誤】
-
把 UPDATE 當 DDL
UPDATE 修改的是「資料」,不是「表的結構」。 -
把 TRUNCATE 誤以為是 DELETE 的加強版
功能接近,但分類不同:
-
DELETE 是 DML
-
TRUNCATE 是 DDL:因為會重置表結構的一些 metadata