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

SQL 語言分類詳解:DDL、DML、DCL 核心差異與命令大全

     編輯:關於SqlServer

為什麼要區分 DDL、DML、DCL?

SQL 語言功能繁多,依據操作對象與目的劃分為三大類,理解它們的差異對數據庫開發、權限管理、備份恢復策略至關重要。本文系統梳理三類語言的定義、核心命令與典型應用場景。

DDL(Data Definition Language)數據定義語言

核心特徵: 操作數據庫結構(表、視圖、索引、用戶等),隱式提交事務,執行後無法回滾,刪除的數據不可恢復。

命令功能典型場景
CREATE創建數據庫對象建表、建視圖、建索引、建用戶
ALTER修改對象結構增減欄位、修改數據類型、調整約束
DROP刪除對象刪表、刪視圖、刪用戶(連同數據一併刪除)
TRUNCATE清空表數據並釋放空間快速清理測試數據,比 DELETE 快且不記錄日志
COMMENT添加數據字典註釋文檔化表/欄位用途
GRANT授予權限給用戶分配 SELECT/INSERT/EXECUTE 權限
REVOKE撤銷權限收回不再需要的權限

DML(Data Manipulation Language)數據操縱語言

核心特徵: 操作表中的具體數據行,不隱式提交,可在事務中回滾。

命令功能關鍵差異
SELECT查詢數據唯一不修改數據的 DML,常單獨歸類為 DQL
INSERT插入新行可指定欄位或全列插入
UPDATE修改現有行務必加 WHERE 條件,否則全表更新
DELETE刪除行但保留空間可回滾,觸發器生效,可用 WHERE 過濾
CALL調用存儲過程Oracle/PostgreSQL 常用
EXPLAIN PLAN分析執行計劃性能調優必備
LOCK TABLE顯式鎖表控制併發特殊場景使用,通常靠隔離級別隱式管理

DCL(Data Control Language)數據控制語言

核心特徵: 管理事務提交與回滾,控制事務邊界與一致性。

命令功能應用場景
COMMIT提交事務,永久保存變更業務邏輯成功完成時
SAVEPOINT設置保存點長事務中分階段回滾
ROLLBACK回滾到上一 COMMIT 或 SAVEPOINT業務失敗、異常捕獲時
SET TRANSACTION設置事務屬性指定隔離級別、只讀/讀寫模式

速記對比表

維度DDLDMLDCL
操作對象結構/元數據數據行事務邊界
隱式提交是否視具體命令
可回滾否是ROLLBACK 本身即回滾
典型權限CREATE/DROP/ALTERSELECT/INSERT/UPDATE/DELETE通常由 DBA 管理

實戰建議

  • 生產環境執行 DDL 前務必備份,確認無誤再執行。
  • 大批量刪除數據優先考慮 TRUNCATE 或分批 DELETE,避免日志暴漲。
  • 事務邊界要清晰:業務邏輯單元用 BEGIN TRAN 包裹,異常時 ROLLBACK,成功時 COMMIT。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved