SQL语句分类简述

1 概述

SQL是一种用于数据库访问的非过程化语言,用户通过 SQL 描述其目标,之后 SQL 语言编译器自动地生成执行过程,控制数据库执行用户所期望的操作。本文大致介绍oracle中涉及到的一些语句。

2 分类

2.1 数据操作语言语句

数据操作语言[Data manipulation language,DML]语句的作用是查询或操作已有方案对象内的数据。具体可以参考下表。

关键词 作用
SELECT 从一个或多个表或视图中查询数据;
fetch 获取操作,是可滚动的[scrollable](见“可滚动游标”)
INSERT 向表或视图中加入新数据行
UPDATE 修改表或视图中已有数据行的列值
MERGE 根据判断条件为表及视图插入或更新数据行
DELETE 从表或视图中删除数据行
EXPLAIN PLAN 查询 SQL 语句的执行计划[execution plan]
LOCK TABLE 对表或视图加锁[lock],临时地限制其他用户访问此对象

DML 语句是使用频率最高的 SQL 语句。

2.2 数据定义语言语句

数据定义语言[Data definition language,DDL]语句的作用是定义或修改方案对象[schema object]的结构,以及移除方案对象。具体可以参考下表。

关键词 作用
CREATE,ALTER,DROP 创建,修改,移除方案对象及其他数据库结构,包括数据库自身及数据库用户
RENAME 修改方案对象名称
TRUNCATE 删除方案对象的所有数据,但不移除对象结构
GRANT,REVOKE 授予或收回权限及角色
AUDIT,NOAUDIT 打开或关闭审计选项
COMMENT 向数据字典中添加注释

DDL 语句将隐式地提交之前的操作并开始一个新事务。

2.3 事务控制语句

事务控制语句[transaction control statement]的作用是管理 DML 语句对数据的修改,以及将逻辑上相关的 DML 语句组织为事务。具体如下表。

关键词 作用
COMMIT 将事务对数据的修改永久地保存到数据库
ROLLBACK 还原事务对数据的修改,可还原到事务开始处或任意保存点[savepoint]
SAVEPOINT 设置保存点以标识回滚位置
SET TRANSACTION 设置事务的属性

2.4 会话控制语句

会话控制语句[session control statement]用于管理用户会话的属性。具体如下表。

关键词 作用
ALTER SESSION 执行特定操作,修改当前会话,例如启用或禁用 SQL 跟踪功能[SQL trace facility]
SET ROLE 为当前会话启用或禁用角色[role](即一组权限的集合)

2.5 系统控制语句

系统控制语句[system control statement]用于修改 Oracle 数据库实例的属性。

ALTER SYSTEM |用户可以使用此语句修改实例设置(例如共享服务进程的最小数量),终止进程[kill session],或执行其他操作。

2.6 嵌入 SQL 语句

用户可以使用嵌入 SQL 语句[embedded SQL statement]将 DDL,DML,及事务控制语句加入到以过程化语言编写的程序中。Oracle 预编译器[precompiler]能够处理这样的代码。具体可以参考下表。

关键词 作用
DECLARE CURSOR,OPEN,CLOSE 定义,分配,及释放游标[cursor]
DECLARE DATABASE,CONNECT 选择一个 Oracle 数据库并进行连接
DECLARE STATEMENT 分配变量名
DESCRIBE 初始化描述符[descriptor]
WHENEVER 设定如何处理错误及警告
PREPARE,EXECUTE,EXECUTE IMMEDIATE 解析并执行 SQL 语句
FETCH 从数据库中取回数据

3 总结

以上的内容参考了官方文档,熟悉这些语句关键词对于理解sql非常重要。

posted @ 2019-05-28 13:19  echao  阅读(1792)  评论(0编辑  收藏  举报