https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_ddl
SQL
The Structured Query Language that is standard for performing database operations. Often divided into the categories DDL, DML, and queries. MySQL includes some additional statement categories such as replication. See Chapter 10, Language Structure for the building blocks of SQL syntax,Chapter 12, Data Types for the data types to use for MySQL table columns, Chapter 14, SQL Statement Syntax for details about SQL statements and their associated categories, and Chapter 13, Functions and Operators for standard and MySQL-specific functions to use in queries.
See Also DDL, DML, query, replication.
DCL
Data control language, a set of SQL statements for managing privileges. In MySQL, consists of the GRANT
and REVOKE
statements. Contrast with DDL andDML.
DML
Data manipulation language, a set of SQL statements for performing INSERT
, UPDATE
, and DELETE
operations. The SELECT
statement is sometimes considered as a DML statement, because the SELECT ... FOR UPDATE
form is subject to the same considerations for locking as INSERT
, UPDATE
, and DELETE
.
DML statements for an InnoDB
table operate in the context of a transaction, so their effects can be committed or rolled back as a single unit.
Contrast with DDL and DCL.
See Also commit, DCL, DDL, locking, rollback, SQL, transaction.
DDL
Data definition language, a set of SQL statements for manipulating the database itself rather than individual table rows. Includes all forms of theCREATE
, ALTER
, and DROP
statements. Also includes the TRUNCATE
statement, because it works differently than a DELETE FROM
statement, even though the ultimate effect is similar.table_name
DDL statements automatically commit the current transaction; they cannot be rolled back.
The InnoDB
online DDL feature enhances performance for CREATE INDEX
, DROP INDEX
, and many types of ALTER TABLE
operations. See Section 15.13, “InnoDB and Online DDL” for more information. Also, the InnoDB
file-per-table setting can affect the behavior of DROP TABLE
and TRUNCATE TABLE
operations.
Contrast with DML and DCL.
See Also commit, DCL, DML, file-per-table, rollback, SQL, transaction.
DQL、DML、DDL、DCL的概念与区别 - 范兵 - 博客园 https://www.cnblogs.com/fan-yuan/p/7879353.html
DQL、DML、DDL、DCL的概念与区别
SQL(Structure Query Language)语言是数据库的核心语言。
SQL的发展是从1974年开始的,其发展过程如下:
1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R
时改为SQL。
1979年-----ORACLE公司发表第一个基于SQL的商业化RDBMS产品。
1982年-----IBM公司出版第一个RDBMS语言SQL/DS。
1985年-----IBM公司出版第一个RDBMS语言DB2。
1986年-----美国国家标准化组织ANSI宣布SQL作为数据库工业标准。
SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。
它功能强,效率高,简单易学易维护(迄今为止,我还没见过比它还好
学的语言)。然而SQL语言由于以上优点,同时也出现了这样一个问题:
它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而
绝大部分应用都是一个完整的过程,显然用SQL完全实现这些功能是很困
难的。所以大多数数据库公司为了解决此问题,作了如下两方面的工作:
(1)扩充SQL,在SQL中引入过程性结构;(2)把SQL嵌入到高级语言中,
以便一起完成一个完整的应用。
二. SQL语言的分类
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
1. 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>
2 .数据操纵语言DML
数据操纵语言DML主要有三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE
3. 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 视图 索引 同义词 簇
DDL操作是隐性提交的!不能rollback
4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
1) GRANT:授权。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
回滚---ROLLBACK
回滚命令使数据库状态回到上次最后提交的状态。其格式为:
SQL>ROLLBACK;
3) COMMIT [WORK]:提交。
在数据库的插入、删除和修改操作时,只有当事务在提交到数据
库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看
到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交及自动提交。下面分
别说明这三种类型。
(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;
SQL | DDL, DQL, DML, DCL and TCL Commands
https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/