首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

標準 SQL 語句分類:DQL、DML、DDL、DCL、TCL 完整對照

     編輯:關於SqlServer

SQL 標準五大語句類別速記表

依功能劃分,SQL 標準定義五大類語句,掌握分類有助於權限控制(GRANT/REVOKE)、審計審核與程式碼規範。

類別全名核心關鍵字典型操作是否隱含提交
DQLData Query LanguageSELECT查詢、投影、連接、聚合、視窗函數否
DMLData Manipulation LanguageINSERT, UPDATE, DELETE, MERGE資料增刪改否(需 COMMIT)
DDLData Definition LanguageCREATE, ALTER, DROP, TRUNCATE, RENAME結構定義:表、索引、視圖、序列是(隱含 COMMIT)
DCLData Control LanguageGRANT, REVOKE權限授予/回收是(隱含 COMMIT)
TCLTransaction Control LanguageCOMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION交易控制視具體指令

關鍵補充

  • DDL/DCL 隱含提交:Oracle、MySQL、PostgreSQL 執行 DDL/DCL 會自動提交前一筆交易,**無法回滾**;SQL Server 預設自動提交模式下同理,但可在顯式交易中包裹 DDL(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; → DCL
  • REVOKE DELETE ON schema.table FROM user; → DCL
  • 資料庫角色設計:db_datareader (SELECT)、db_datawriter (INSERT/UPDATE/DELETE)、db_ddladmin (DDL)。

總結

背熟「查增刪改 = DQL/DML,建改刪截 = DDL,授收 = DCL,交易 = TCL」,即可在程式碼審查、權限矩陣設計、審計日誌分析中精準分類每一條 SQL。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved