DQL、DML、DDL、DCL详解

1. SQL语言共分为四大类:

--数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL
  • 1
  1. 数据定义语言DDL

    数据定义语言DDL用来创建数据库中的各种对象—–表、视图、 
    —————————索引、同义词、聚簇等如: 
    CREATE TABLE/VIEW/INDEX/SYN/CLUSTER 
    ————–表 —-视图- 索引- 同义词— 簇

DDL操作是隐性提交的!不能rollback

2.数据操纵语言DML主要有三种形式:

–1) 插入:INSERT 
–2) 更新:UPDATE 
–3) 删除:DELETE数据查

3.询语言DQL(data query language)基本结构 
–1)选择:SELECT子句 
4. 数据控制语言DCL 
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制 
数据库操纵事务发生的时间及效果,对数据库实行监视等。如: 
1) GRANT:授权。 
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。 
—-回滚—ROLLBACK 
—-回滚命令使数据库状态回到上次最后提交的状态。其格式为: 
——SQL>ROLLBACK; 
3) COMMIT [WORK]:提交。

2、事务提交:

在数据库的插入、删除和修改操作时,只有当事务在提交到数据 
库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看 
到所做的事情,别人只有在最后提交完成后才可以看到。 
提交数据有三种类型:显式提交、隐式提交及自动提交。下面分 
别说明这三种类型。

(1) 显式提交 
用COMMIT命令直接完成的提交为显式提交。其格式为: 
SQL>COMMIT;

(2) 隐式提交 
用SQL命令间接完成的提交为隐式提交。这些命令是: 
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP, 
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自动提交 
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后, 
系统将自动进行提交,这就是自动提交。其格式为: 
SQL>SET AUTOCOMMIT ON;

转载自:https://blog.youkuaiyun.com/sinat_27450377/article/details/78218340

<think>好的,我现在需要详细回答用户关于数据库中的DDLDMLDQLDCL的问题。首先,我要回顾一下用户提供的引用内容,确保准确理解每个术语的定义和区别。 用户提供的引用里提到: - DML是数据操纵语言,包括INSERT、UPDATE、DELETE,而SELECT属于DQL[^1][^3][^4]。 - DDL是数据定义语言,用于创建、删除、修改数据库对象,如表和索引[^1][^2][^4]。 - DCL是数据控制语言,涉及权限管理,如GRANT和REVOKE[^4]。 - DQL是数据查询语言,主要是SELECT语句[^3]。 我需要将这些信息整理成一个清晰的解释,分点说明每个术语的含义、常用命令以及它们之间的区别。同时,用户可能希望了解它们在实际使用中的例子,所以最好加入示例代码,比如SQL语句,来展示每个类别的具体应用。 接下来,我需要确保结构清晰,可能分为四个部分分别解释DDLDMLDQLDCL,然后再对比它们的区别。另外,用户提到要使用中文回答,并且数学表达式用$...$格式,但这个问题可能不涉及数学公式,所以可能不需要使用。但如果有涉及,比如在解释某些理论时,可能需要用到,但目前看来不需要。 还需要生成相关问题,根据示例,问题应围绕每个术语的应用场景、区别、具体命令等。例如,可能的问题包括它们之间的主要区别,DMLDQL的关系,DCL的实际应用等。 需要检查引用的正确性,确保每个引用标识对应正确的内容。例如,引用[^1]、[^2]、[^3]、[^4]分别对应不同的解释,需要正确标注在相关段落的末尾。 最后,确保回答符合用户的要求,结构清晰,分步骤解释,使用代码示例,并自然添加引用标识。同时,生成的相关问题要针对性强,能够帮助用户进一步理解这些概念。</think>### 数据库 DDLDMLDQLDCL 详解及区别 #### 1. **DDL(数据定义语言)** - **定义**:用于定义或修改数据库结构,包括表、索引、视图等对象的创建、修改和删除。 - **常用命令**: ```sql CREATE TABLE students (id INT, name VARCHAR(50)); -- 创建表 ALTER TABLE students ADD age INT; -- 修改表结构 DROP TABLE students; -- 删除表 ``` - **特点**: 操作对象是数据库内部结构,执行后通常不可回滚(不同数据库实现可能不同)[^2]。 --- #### 2. **DML(数据操纵语言)** - **定义**:用于操作表中的数据,如增删改记录。 - **常用命令**: ```sql INSERT INTO students VALUES (1, 'Alice', 20); -- 插入数据 UPDATE students SET age = 21 WHERE id = 1; -- 更新数据 DELETE FROM students WHERE id = 1; -- 删除数据 ``` - **特点**: 仅操作数据,不涉及表结构;事务中可以回滚[^1][^3][^4]。 --- #### 3. **DQL(数据查询语言)** - **定义**:专门用于数据查询,核心是 `SELECT` 语句。 - **示例**: ```sql SELECT name, age FROM students WHERE age > 18; -- 查询条件数据 ``` - **特点**: 属于 DML 的子集,但因其重要性被单独分类[^3]。 --- #### 4. **DCL(数据控制语言)** - **定义**:管理数据库访问权限和安全控制。 - **常用命令**: ```sql GRANT SELECT ON students TO user1; -- 授权查询权限 REVOKE INSERT ON students FROM user1; -- 撤销插入权限 ``` - **特点**: 控制用户对数据的操作权限[^4]。 --- ### 主要区别总结 | 分类 | 作用范围 | 典型命令 | 是否可回滚 | |------|----------------|-----------------------------|------------| | DDL | 数据库结构 | `CREATE`, `ALTER`, `DROP` | 通常不可 | | DML | 表内数据 | `INSERT`, `UPDATE`, `DELETE`| 可回滚 | | DQL | 数据查询 | `SELECT` | 不涉及 | | DCL | 权限与安全控制 | `GRANT`, `REVOKE` | 依实现而定 | [^1][^2][^3] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值