SQL语句 Db2 for z/OS

本部分包含语法图、语义描述、规则以及SQL语句的使用示例。

通过使用SQL语句,您可以完成以下几类活动:

  • 使用各种形式的CREATE、ALTER和DROP语句定义、修改或删除数据对象,如表。 这些语句正式归类为 SQL模式语句 ,有时也非正式地称为数据定义语言(DDL) 语句。
  • 使用SELECT、INSERT、UPDATE和MERGE语句在表格中检索、插入、更新或删除数据。 这些语句正式归类为 SQL数据语句 ,有时也非正式地称为数据操作语言(DML) 语句。
  • 更改开始使用各种形式的授权、撤销和转让所有权语句,授权用户访问特定资源,如表格或视图。 这些语句正式归类为SQL模式语句,但有时也非正式归类为数据控制语言(DCL) 语句。更改结束

有关使用SQL过程语言(SQL PL)语句的类似信息,请参阅 SQL过程语言(SQL PL )。

更多关于SQL语句的信息,请访问 Db2 for z/OS

SQL语句列表

表 1. 支持的 SQL 语句
SQL 语句 函数
ALLOCATE CURSOR 定义光标并将其与结果集定位变量相关联
CREATE DATABASE 更改数据库描述
ALTER FUNCTION (external scalar) 更改用户定义的外部标量或外部表函数的描述
ALTER FUNCTION (compiled SQL scalar) 更改已编译的SQL标量函数的描述
ALTER FUNCTION (inlined SQL scalar) 更改内联 SQL 标量函数的描述
ALTER FUNCTION (SQL表 更改SQL表函数的描述
ALTER INDEX 更改索引描述
ALTER MASK 更改列掩码的描述
ALTER PERMISSION 更改行权限描述
ALTER PROCEDURE (external) 更改外部程序的描述
ALTER PROCEDURE statement (SQL - external procedure) (deprecated) 更改外部SQL过程的描述
ALTER PROCEDURE statement (SQL - native procedure) 更改本地 SQL 过程的描述或定义附加版本
ALTER SEQUENCE 更改序列描述
ALTER STOGROUP 更改存储组的描述
ALTER TABLE 更改表格描述
ALTER TABLESPACE 更改表空间的描述
Start of changeALTER TRIGGER (advanced trigger)End of change 更改开始更改高级触发器的描述更改结束
ALTER TRIGGER (基本触发器 更改基本触发器的描述
ALTER TRUSTED CONTEXT 更改可信上下文的描述
ALTER VIEW statement 重新生成视图
ASSOCIATE LOCATORS 获取存储过程返回的每个结果集的集合定位器值
BEGIN DECLARE SECTION 标志着一个主变量声明部分的开始
CALL 调用存储过程
CLOSE 关闭光标
COMMENT 在物品描述中添加或替换评论
COMMIT 结束一个恢复单元,并提交该恢复单元所做的数据库更改
CONNECT 将流程连接到服务器
CREATE ALIAS 定义别名
CREATE AUXILIARY TABLE 定义用于存储LOB数据的辅助表
CREATE DATABASE 定义数据库
CREATE FUNCTION (compiled SQL scalar) 定义一个已编译的SQL标量函数
CREATE FUNCTION (external scalar) 定义用户自定义的外部标量函数
CREATE FUNCTION (external table) 定义用户自定义的外部表函数
CREATE FUNCTION (inlined SQL scalar) 定义内联SQL标量函数
CREATE FUNCTION (sourced) 定义一个基于现有标量或聚合函数的自定义函数
CREATE FUNCTION (SQL表 定义用户自定义的SQL表函数
CREATE GLOBAL TEMPORARY TABLE 定义已创建的临时表
CREATE INDEX 定义表中的索引
CREATE LOB TABLESPACE 定义一个LOB表空间
CREATE MASK 定义列掩码
CREATE PERMISSION 定义行权限
CREATE PROCEDURE (external) 定义外部存储过程
CREATE PROCEDURE (SQL - external) (deprecated) 定义外部SQL过程
CREATE PROCEDURE (SQL - native) 定义一个本机SQL过程
CREATE ROLE 定义角色
CREATE SEQUNCE 定义序列
CREATE STOGROUP 定义存储组
CREATE SYNONYM (deprecated) 为表或视图定义一个替代名称
CREATE TABLE statement 定义表格
CREATE TABLESPACE 定义表空间,包括分配和格式化表空间
更改开始创建触发器 (高级触发器更改结束 更改开始定义高级触发器更改结束
CREATE TRIGGER (basic trigger) 定义基本触发器
CREATE TRUSTED CONTEXT 定义可信环境
CREATE TYPE (array type) 定义数组类型
CREATE TYPE (distinct type) 定义一种独特的类型
CREATE VARIABLE 定义一个全局变量
CREATE VIEW 定义一个或多个表或视图的视图
DECLARE CURSOR 定义 SQL 游标
DECLARE GLOBAL TEMPORARY TABLE 定义已声明的临时表
DECLARE STATEMENT 声明用于标识已准备好的SQL语句的名称
DECLARE 为程序员和预编译器提供表或视图的描述
DECLARE VARIABLE 为主变量定义CCSID
DELETE 从表中删除一行或多行
DESCRIBE CURSOR 将光标关联的结果集信息放入描述符中
DESCRIBE INPUT 将已准备语句的输入参数标记信息放入描述符中
DESCRIBE OUTPUT 描述已准备语句的结果列
DESCRIBE PROCEDURE 将存储过程返回的结果集信息放入描述符中
DESCRIBE TABLE 描述表格或视图的列
DROP 从当前服务器移除对象。 除了存储组,任何直接或间接依赖于该对象的任何对象也将被删除。
END DECLARE SECTION 标志着一个宿主变量声明部分的结束
EXCHANGE 在指定的基本表和关联的克隆表之间交换数据
EXECUTE 执行已准备好的SQL语句
EXECUTE IMMEDIATE 准备并执行SQL语句
EXPLAIN 获取有关SQL语句执行方式的信息
FETCH 定位光标、返回数据或同时定位光标和返回数据
FREE LOCATOR 删除LOB定位变量与其值之间的关联
GET DIAGNOSTICS 提供关于最近执行的SQL语句的诊断信息
GRANT (overview) 授权ID的特权
GRANT statement (collection privileges) 授权在集合中创建一个包
GRANT (database privileges) 授予数据库权限
GRANT (function or procedure privileges) 授予用户自定义函数或存储过程的权限
GRANT (package privileges) 授权绑定、执行或复制软件包
GRANT (plan privileges) 授权约束或执行申请计划
GRANT (schema privileges) 授予模式特权
GRANT (sequence privileges) 按用户定义的顺序授予特权
GRANT (system privileges) 授予系统特权
GRANT (table or view privileges) 在表格或视图中授予特权
GRANT (type or JAR privileges) 授予使用不同类型、数组类型或JAR文件的权限
GRANT (variable privileges) 授予全局变量的特权
GRANT (use privileges) 授权使用指定的缓冲池、存储组或表空间
HOLD LOCATOR 允许LOB定位器变量在工作单元之外保留其与值的关联
INCLUDE 在源程序中插入声明
INSERT 在表格中插入一行或多行
LABEL 在表格、视图、别名或列的描述中添加或替换标签
LOCK TABLE 以共享或独占模式锁定桌子或桌子空间分区
MERGE 使用源数据(VALUES子句的结果或表引用)更新目标(表或视图)
OPEN 打开光标
PREPARE 准备SQL语句(带有可选参数)以供执行
REFRESH TABLE 刷新已具体化的查询表中的数据
RELEASE connection 将一个或多个连接置于发布待定状态
RELEASE SAVEPOINT 释放一个保存点以及随后在恢复单元内设置的任何保存点
RENAME 重命名现有表或索引
REVOKE (general info) 撤销授权ID的特权
REOVKE (collection privileges) 撤销在收藏中创建包的权限
REVOKE (database privileges) 撤销数据库中的特权
REVOKE (function or procedure privileges) 撤销用户自定义函数或存储过程的权限
REVOKE (package privileges) 撤销对包裹进行绑定、执行或复制的授权
REVOKE (plan privileges) 撤销对申请计划具有约束力或执行该计划的授权
REVOKE (schema privileges) 撤销对架构的特权
REVOKE (sequence privileges) 撤销用户自定义序列的特权
REVOKE statement (system privileges) 撤销系统权限
REOVOKE (table or view privileges) 撤销对表格或视图的权限
REVOKSE (type or JAR privileges) 撤销对用户定义的数据类型或JAR文件的权限
REVOKE (variable privileges) 撤销对全局变量的特权
REVOKE (use privileges) 撤销使用指定缓冲池、存储组或表空间的权限
ROLLBACK 结束一个恢复单元,并撤销该恢复单元对数据库所做的更改,或部分回滚到恢复单元内的保存点
SAVEPOINT 在恢复单元内设置一个保存点
SELECT 指定游标的 SELECT 语句
SELECT INTO 指定不超过一行的结果表,并将值分配给变量
SET CONNECTION 通过识别现有连接之一来建立流程的数据库服务器
SET assignment-statement 为变量和数组元素赋值
SET CURRENT ACCELERATOR 为当前加速器特殊寄存器赋值
SET CURRENT APPLICATION COMPATIBILITY 为当前应用程序兼容性特殊注册表分配一个值
SET CURRENT APPLICATION ENCODING SCHEME 为当前应用程序编码方案特殊寄存器赋值
SET CURRENT DEBUG MODE 为当前调试模式特殊寄存器赋值
SET CURRENT DECFLOAT ROUNDING MODE 为当前DECFLOAT ROUNDING MODE特殊寄存器赋值
SET CURRENT DEGRESS 为当前度数特殊寄存器赋值
SET CURRENT EXPLAIN MODE 为当前解释模式特殊寄存器赋值
SET CURRENT GET_ACCEL_ARCHIVE 为当前GET_ACCEL_ARCHIVE特殊寄存器赋值
SET CURRENT LOCALE LC_CTYPE 为当前区域设置LC_CTYPE特殊寄存器的值
设置当前维护的表格类型以进行优化 语句 为优化当前维护的表类型特殊寄存器赋值
SET CURRENT OPTIMIZATION HINT 为当前优化提示特殊寄存器赋值
SET CURRENT PACKAGE PATH 为当前包路径特殊寄存器赋值
SET CURRENT PACKAGE SET 为当前程序包特殊寄存器赋值
SET CURRENT PRECISION 为当前精度特殊寄存器赋值
SET CURRET QUERY ACCELERATION 为当前查询加速度特殊寄存器赋值
SET CURRENT QUERY ACCELERATION WAITFORDATA 为当前查询加速等待数据特殊寄存器赋值
SET CURRENT REFRESH AGE 为当前刷新年龄特殊寄存器赋值
SET CURRENT ROUTINE VERSION 为当前例程版本特殊寄存器赋值
SET CURRENTRULES 为当前规则特殊寄存器赋值
SET CURRENT SQLID 为当前SQLID特殊寄存器赋值
SET CURRENT TEMPORAL BUSINESS TIME 为当前时间业务时间特殊寄存器赋值
SET CURRENT TEMPORAL SYSTEM TIME 为当前时间系统_时间特殊寄存器赋值
SET ENCRYPTION PASSWORD 为加密密码指定一个值,并为密码指定一个可选提示
SET PATH 为当前路径特殊寄存器赋值
SET SCHEMA 为当前模式特殊寄存器赋值
SET SESSION TIME ZONE 为当前会话时区特殊寄存器赋值
SIGNAL 指示错误或警告状态,并可选择性地返回指定的消息文本
TRANSFER OWNERSHIP statement 将数据库或系统对象的所有权从一个所有者转移给另一个所有者
TRUNCATE 从基础表或已声明的临时表中删除所有行
UPDATE 更新表格中一行或多行中一个或多个列的值
VALUES 提供了一种从触发器调用用户定义函数的方法
VALUES INTO 为变量赋值
WHENEVER 根据SQL返回代码定义要采取的操作