DML,DDL,DCL的区别
DML、DDL、DCL是SQL语言按功能划分的三大类,核心区别在于操作对象、功能范围和事务特性:
一、定义与功能对比
1.DDL数据定义语言
DDL(Data Definition Language,数据定义语言)
操作对象:数据库结构(如表、索引、视图等)
主要语句::ml-search[CREATE](创建)、:ml-search[ALTER](修改)、:ml-search[DROP](删除)
特点:
1.直接修改数据库的物理结构,执行后**立即生效且不可回滚**(如删除表无法撤销)
2.常用于初始化或调整数据库架构(如新增字段、建立索引)
2.DML数据操作语言
DML(Data Manipulation Language,数据操作语言)
操作对象:表中的实际数据
主要语句::ml-search[SELECT](查询)、:ml-search[INSERT](插入)、:ml-search[UPDATE](更新)、:ml-search[DELETE](删除)
特点:
1.数据变更需通*事务提交(COMMIT)才会持久化*,否则可通过回滚(ROLLBACK)撤销。
2.日常使用频率最高,直接影响数据内容而非结构。
3.DCL数据控制语言
DCL(Data Control Language,数据控制语言)
操作对象:数据库用户权限
主要语句::ml-search[GRANT](授权)、:ml-search[REVOKE](撤销权限)
特点:
权限变立即生效,无需事务提交
属于数据库安全管理范畴(如限制用户访问表或执行DML操作)
二、典型场景示例
DDL:创建员工表 CREATE TABLE employee (id INT, name VARCHAR(20))
DML:更新工资 UPDATE employee SET salary=8000 WHERE id=101(需提交事务生效)2
DCL:授权用户查询权限 GRANT SELECT ON employee TO user1
总结:三者分别对应数据库的结构定义、数据操作和权限控制,实际开发中常结合使用(如先通过DDL建表,再用DML插入数据,最后通过DCL分配权限)
三、补充说明DQL
DQL(Data Query Language,数据查询语言)不是一个广泛使用的术语。在数据库领域,通常我们谈论的是用于查询数据库中数据的几种语言。这些语言包括SQL(Structured Query Language,结构化查询语言)以及其他特定数据库管理系统(DBMS)可能提供的特定查询语言。