数据库中的DDL、DQL、DML、DCL 和 TCL 命令
- SQL
- DDL(Data Definition Language)数据库定义语言
- DML(Data Manipulation Language)数据操纵语言
- TCL(Transaction Control Language)事务控制语言
- DQL (Data Query Language) 数据查询语言
- DCL(Data Control Language)数据库控制语言
SQL
结构化查询语言(SQL)是一种数据库语言,我们可以使用它对现有数据库执行某些操作,也可以使用这种语言来创建数据库。SQL使用某些命令,如 CREATE、DROP、INSERT 等来执行所需的任务。
SQL 命令就像对表的指令。它用于通过某些操作与数据库进行交互。它还用于执行特定的任务、功能和数据查询。SQL 可以执行各种任务,如创建表、向表中添加数据、删除表、修改表、为用户设置权限。
这些SQL命令主要分为五类:
- DDL——数据定义语言
- DQL——数据查询语言
- DML——数据操作语言
- DCL——数据控制语言
- TCL——事务控制语言
DDL(Data Definition Language)数据库定义语言
DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema.
它只处理数据库模式的描述,用于创建和修改数据库中数据库对象的结构。DDL 是一组用于创建、修改和删除数据库结构而非数据的 SQL 命令。一般用户通常不会使用这些命令,他们应该通过应用程序访问数据库。
DDL不需要commit.
DDL 命令列表:
- CREATE:此命令用于创建数据库或其对象(如表、索引、函数、视图、存储过程和触发器)。
- DROP:此命令用于从数据库中删除对象。
- ALTER:这用于改变数据库的结构。
- TRUNCATE:这用于从表中删除所有记录,包括为删除的记录分配的所有空间。
- COMMENT:这用于向数据字典添加注释。
- RENAME:这用于重命名数据库中存在的对象。
DML(Data Manipulation Language)数据操纵语言
DML(Data Manipulation Language)数据操纵语言statements are used for managing data within schema objects.
处理数据库中存在的数据操作的 SQL 命令属于 DML 或数据操作语言,这包括大多数 SQL 语句。它是控制对数据和数据库的访问的 SQL 语句的组成部分。基本上,DCL 语句与 DML 语句组合在一起。
需要commit.
DML 命令列表:
- INSERT:它用于将数据插入表中。
- UPDATE:它用于更新表中的现有数据。
- DELETE:用于从数据库表中删除记录。
- LOCK:表控制并发。
- CALL:调用一个 PL/SQL 或 JAVA 子程序。
- EXPLAIN PLAN:描述数据的访问路径。
TCL(Transaction Control Language)事务控制语言
事务将一组任务分组到一个执行单元中。每个事务都以特定任务开始,并在组中的所有任务成功完成时结束。如果任何任务失败,则交易失败。因此,一个事务只有两个结果:成功或失败。
-
BEGIN:开始事务。
COMMIT;
-
ROLLBACK:在发生任何错误的情况下回滚事务。
ROLLBACK;
-
SAVEPOINT:在事务中设置一个保存点。
SAVEPOINT SAVEPOINT_NAME;
DQL (Data Query Language) 数据查询语言
DQL语句用于对模式对象中的数据执行查询。DQL 命令的目的是根据传递给它的查询获取一些模式关系。我们可以如下定义 DQL 它是 SQL 语句的一个组件,允许从数据库中获取数据并对其施加顺序。它包括 SELECT 语句。此命令允许从数据库中获取数据以对其执行操作。当针对一个或多个表触发 SELECT 时,结果将编译到另一个临时表中,该临时表显示或可能由程序(即前端)接收。
- SELECT:用于从数据库中检索数据。
DCL(Data Control Language)数据库控制语言
DCL包括GRANT、REVOKE等命令,主要处理数据库系统的权限、权限等控制。
- GRANT:此命令 授予用户访问数据库的权限。
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;
- REVOKE: 此命令撤消使用 GRANT 命令授予的用户访问权限。
REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2;