Skip to main content

關聯式資料庫的核心:一次搞懂 SQL 四大指令類別(DDL、DML、TCL、DCL)

在學習與操作關聯式資料庫(RDBMS)時,我們常聽到的 SELECTCREATECOMMIT 等指令,其實在 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;