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)可能提供的特定查询语言。