依功能劃分,SQL 標準定義五大類語句,掌握分類有助於權限控制(GRANT/REVOKE)、審計審核與程式碼規範。
| 類別 | 全名 | 核心關鍵字 | 典型操作 | 是否隱含提交 |
|---|---|---|---|---|
| DQL | Data Query Language | SELECT | 查詢、投影、連接、聚合、視窗函數 | 否 |
| DML | Data Manipulation Language | INSERT, UPDATE, DELETE, MERGE | 資料增刪改 | 否(需 COMMIT) |
| DDL | Data Definition Language | CREATE, ALTER, DROP, TRUNCATE, RENAME | 結構定義:表、索引、視圖、序列 | 是(隱含 COMMIT) |
| DCL | Data Control Language | GRANT, REVOKE | 權限授予/回收 | 是(隱含 COMMIT) |
| TCL | Transaction Control Language | COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION | 交易控制 | 視具體指令 |
BEGIN TRAN; CREATE TABLE...; ROLLBACK; 可回滾)。TRUNCATE TABLE 屬 DDL(非 DML):釋放頁面、重置身分識別種子、不觸發 Trigger、速度極快。MERGE(Upsert)屬 DML,SQL Server 2008+、Oracle 9i+、PostgreSQL 9.5+ 支援。SELECT ... INTO 在 SQL Server 屬 DDL(建新表),Oracle/PostgreSQL 需 CREATE TABLE AS SELECT。GRANT SELECT, INSERT ON schema.table TO role; → DCLREVOKE DELETE ON schema.table FROM user; → DCLdb_datareader (SELECT)、db_datawriter (INSERT/UPDATE/DELETE)、db_ddladmin (DDL)。背熟「查增刪改 = DQL/DML,建改刪截 = DDL,授收 = DCL,交易 = TCL」,即可在程式碼審查、權限矩陣設計、審計日誌分析中精準分類每一條 SQL。