關聯式資料庫的核心:一次搞懂 SQL 四大指令類別(DDL、DML、TCL、DCL)
在學習與操作關聯式資料庫(RDBMS)時,我們常聽到的 SELECT、CREATE、COMMIT 等指令,其實在 SQL 標準中被細分為四大結構語言。
理解這四大分類,不僅能幫我們建立更清晰的資料庫架構觀念,在開發與維運時也能更精準地掌握指令的影響範圍。
1. DDL (Data Definition Language) - 資料定義語言
DDL 主要用於定義或修改資料庫的「結構」(Schema)。它的操作對象是資料庫、資料表、索引、序列等物件本身,而不是表裡面的具體資料。
常見指令
CREATE:建立新的資料庫物件(如 Table、Index、View 等)。ALTER:修改現有資料庫物件的結構。DROP:刪除現有的資料庫物件(結構與資料會一起消失)。TRUNCATE:快速清空資料表內的所有資料。💡 TRUNCATE vs DELETE: >
TRUNCATE屬於 DDL,它會直接釋放資料頁,速度極快且通常無法透過一般的封鎖機制單筆復原;有些資料庫(如 PostgreSQL)加上RESTART IDENTITY還能順便重置自增欄位(Sequence)的計數。
範例程式碼
-- 建立一個 users 資料表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT
);
-- 修改資料表:新增 email 欄位
ALTER TABLE users ADD COLUMN email VARCHAR(100);
-- 刪除 users 資料表
DROP TABLE users;