1.DDL (Data Definition Language)是用来定义数据库结构的语言,如创建表、修改表结构等。
所有的 DDL 语句都会导致事务隐式提交,换句话说,当你在执行 DDL 语句前,事务就已经提交了。这就意味着带有 DDL 语句的事务将来没有办法 rollback。
2.DML (Data Manipulation Language)是用来操作数据库中的数据的语言,如插入、更新、删除数据等,在DML中支持事务的提交和回滚操作。
3.DCL (Data Control Language)是用来控制数据库访问权限的语言,如赋予、收回用户权限等。
我们日常授权或者回收数据库上的权限所使用的 GRANT、REVOKE 等,就算是 DCL 操作。在这里的事务也是会隐式提交,不能进行回滚操作.
除了 GRANT 和 REVOKE 之外,其他的创建、更新或者删除用户的操作也会导致事务隐式提交。主要有:
- CREATE USER...
- DROP USER...
- ALTER USER...
- SET PASSWORD..
4.DQL (Data Query Language)是用来查询数据库中的数据的语言,如 SELECT 语句。
这些就是dml ,dql ,dcl,ddl之间的区别