内容


使用常用 IBM SQL 特性开发可移植的数据应用程序

编写一次,随处运行

Comments

许多 IBM 数据库客户和独立软件供应商都表示对编写可跨多个平台移植的应用程序感兴趣。IBM®致力于通过一种通用、可移植且支持 ANSI/ISO SQL 标准的方式,在实现常用 SQL 引擎的数据库平台上提供 SQL 通用性。这些客户的应用程序开发人员要求我们提供一个常用 SQL 语言功能列表作为快速参考。

DB2 现在是所有 IBM 混合数据管理产品(包括以前称为 dashDB 的产品)的品牌名称。IBM DB2®和 IBM Big SQL 都设计了兼容的 SQL。如果应用程序通过一个 IBM 数据服务器驱动程序,使用兼容的 SQL 访问存储在这些产品上的数据,那么它们无需进行任何更改就能处理存储在其他产品上的数据。以下表格列出了具体细节和影响兼容性的因素。

某个特性可能不会同时在所有常用 SQL 引擎产品上提供。在一些情况下,出现这种状况只是因为不同的 DB2 产品的发布时间表稍有不同。在其他情况下,出现这种状况是因为客户需求能加速特定 DB2 产品上的 SQL 特性的开发。

可以将这个常用 SQL 应用程序特性摘要版本用作快速参考,其中包含各个平台中常用的特性和功能。要获得更详细的信息,请参阅 SQL 跨平台开发参考指南 (PDF 4.2 MB) 和各个 IBM SQL 产品的 SQL 参考手册。使用这些表格之前,请阅读免责声明。

免责声明

  • 此列表不一定完整。这里显示的特性基于客户的感兴趣程度。在详细查阅这些产品的 SQL 语言参考手册时,您可能会发现其他特性。
  • 不应将此列表作为任何 DB2 产品的特性和功能列表。由于一直在发布新功能,所以某个特性可能已存在于一个平台中,但在其他 DB2 平台上仍处于试运行阶段。
  • 一般而言,受底层 Hadoop 生态系统限制的引导,Big SQL 兼容性仅关注 SELECT,没有提供完整的 ACID 事务支持。
  • 除了核心 SQL 语法之外,还需要考虑周围的操作环境,包括字符排序、隔离级别和数据类型。
  • 请使用最新的正式产品发布版本,以获得最高的兼容性。

包含的产品

  • IBM DB2 V11.1
  • IBM DB2 Warehouse
  • IBM Big SQL V4.2

代号

Y产品包含全面支持。
P与其他常用 SQL 引擎产品相比,该产品仅包含部分支持;请查阅产品信息。

基本元素

语言元素DB2DB2 WarehouseBig SQL备注
标识符 - 普通YYY
标识符 - 分隔YYY
支持小写字符和结尾下划线的标识符YYY
数据类型转换 - 隐式PPPDB2 不支持在 LOB 与非字符串类型之间进行隐式转换。
基于代码页自动转换数据YYY
常量YYY
字符常量的十六进制规范YYY
Null 值YYY
列引用YYY
主机变量引用YYY
指示变量YYY
扩展指示变量YYY
主机结构YYY
“友好的”算法和转换YYY
函数调用YYY
带命名参数的函数调用YYY
算术运算符YYY
逐位运算符YYY
字符串串联YYY
将标量子查询编写为表达式YYY
将标量全选编写为表达式YYY
日期/时间算法YYY
CASE 表达式YYY
CAST 规范YYY
:: 转换运算符YYY
XMLCAST 规范YYY
ROW CHANGE 表达式YYY
序列引用(NEXT VALUE 和 PREVIOUS VALUE)YYY
OLAP 排序规范(RANK、DENSE_RANK)YYY
OLAP 排序规范 (PERCENT_RANK)YYY
OLAP 编号规范 (ROW_NUMBER)YYY
OLAP 顺序规范(LAG、LEAD)YYY
OLAP 聚合函数规范 (CUME_DIST)YYY
OLAP 聚合函数规范(FIRST_VALUE、LAST_VALUE)YYY
OLAP 聚合函数规范 (NTH_VALUE)YYY
OLAP 聚合函数规范 (NTILE)YYY
OLAP 聚合函数规范 (RATIO_TO_REPORT)YYY
OLAP 聚合规范YYY
无类型参数标记YYY
无类型 NULLYYY
无类型 DEFAULTYYY
标准 SQL 的标记产品扩展PPPDB2 仅支持针对 SQL92 入门级 SQL 语法进行标记。
诊断区域YYY
SQLSTATEYYY
SQLCODEYYY
描述符区域YYY

数据类型

语言元素DB2DB2 WarehouseBig SQL备注
SMALLINTYYY
INT2YP-
INTEGERYYY
INT4YY-
BIGINTYYY
INT8YY-
DECIMALYYY
NUMERICYYY
REALYYY为了实现跨平台移植,不要使用 FLOAT(n)。
FLOAT4YY-
DOUBLE 或 FLOATYYY为了实现跨平台移植,不要使用 FLOAT(n)。
FLOAT8YY-
DECFLOATYYP在 Big SQL 中,可在大多数 SQL 构造中使用 DECFLOAT 数据类型,但在 Hadoop 和 HBase 表中除外,因为 Hadoop 生态系统中不支持此类型。
CHARACTERYYY
VARCHARYYY
含 CHAR 或 VARCHAR 的 FOR BIT DATAYYY
CLOBYYP
含 CHAR、VARCHAR 或 CLOB 的 FOR SBCS 或 MIXED DATAPPP
NCHARPP-
NVARCHARPP-
NCLOBPP-
BINARYYYP对于 Hadoop 和 HBase 表,BINARY 数据类型与 VARBINARY 同义。Hadoop 中没有固定长度 BINARY 类型。
VARBINARYYYP
BLOBYYP
GRAPHICYY-
VARGRAPHICYY-
DBCLOBYY-
DATEYYY
TIMEYYP在 Big SQL 中,可在大多数 SQL 构造中使用 TIME 数据类型,但在 Hadoop 和 HBase 表中除外,因为 Hadoop 生态系统中不支持此类型。
TIMESTAMPYYY
精确到秒后 0 到 12 位的 TIMESTAMPYYP在 Big SQL 中,最高精确到秒后 9 位。
XMLYYP在 Big SQL 中,可在大多数 SQL 构造中使用 XML 数据类型,但在 Hadoop 和 HBase 表中除外,因为 Hadoop 生态系统中不支持此类型。
BOOLEANYYP
BPCHARPPP
用户定义的独特类型YYY
用户定义的普通数组类型YYY
用户定义的关联数组类型YYY
用户定义的游标类型YYY
用户定义的行类型YYY
用户定义的引用类型YYY
用户定义的结构化类型YYY

特殊寄存器

语言元素DB2DB2 WarehouseBig SQL备注
CURRENT CLIENT_ACCTNGYYY
CURRENT CLIENT_APPLNAMEYYY
CURRENT CLIENT_USERIDYYY
CURRENT CLIENT_WRKSTNNAMEYYY
CURRENT DATE 或 CURRENT_DATEYYY
CURRENT DBPARTITIONNUMYYY
CURRENT DECFLOAT ROUNDING MODEYYY
CURRENT DEFAULT TRANSFORM GROUPYYY
CURRENT DEGREEYYY
CURRENT EXPLAIN MODEYYY
CURRENT EXPLAIN SNAPSHOTYYY
CURRENT FEDERATED ASYNCHRONYYYY
CURRENT IMPLICIT XMLPARSE OPTIONYYY
CURRENT ISOLATIONYYY
CURRENT LOCALE LC_MESSAGESYYY
CURRENT LOCALE LC_TIMEYYY
CURRENT LOCK TIMEOUTYYY
CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATIONYYY
CURRENT MDC ROLLOUT MODEYYY
CURRENT MEMBERYYY
CURRENT NODEYYY
CURRENT OPTIMIZATION PROFILEYYY
CURRENT PACKAGE PATHYYY
CURRENT PATH 或 CURRENT_PATHYYY
CURRENT QUERY OPTIMIZATIONYYY
CURRENT REFRESH AGEYYY
CURRENT SCHEMA 或 CURRENT_SCHEMAYYY
CURRENT SERVERYYY
CURRENT SQL_CCFLAGSYYY
CURRENT TEMPORAL BUSINESS_TIMEYYY
CURRENT TEMPORAL SYSTEM_TIMEYYY
CURRENT TIME 或 CURRENT_TIMEYYY
CURRENT TIMESTAMP 或 CURRENT_TIMESTAMPYYY
CURRENT TIMEZONEYYY
CURRENT USER 或 CURRENT_USERYYY
SESSION_USERYYY
SYSTEM_USERYYY
USERYYY

全局变量

语言元素DB2DB2 WarehouseBig SQL备注
CLIENT_HOSTYYY
CLIENT_IPADDRYYY
CLIENT_ORIGUSERIDYYY
CLIENT_USRSECTOKENYYY
MON_INTERVAL_IDYYY
PACKAGE_NAMEYYY
PACKAGE_SCHEMAYYY
PACKAGE_VERSIONYYY
ROUTINE_MODULEYYY
ROUTINE_SCHEMAYYY
ROUTINE_SPECIFIC_NAMEYYY
ROUTINE_TYPEYYY
TRUSTED_CONTEXTYYY

谓词

语言元素DB2DB2 WarehouseBig SQL备注
除 LOB 类型外的基本 ( = <> < > <= >= ) 行值表达式YYY
基本 ( = <> < > <= >= ) LOB 类型表达式PPPDB2 可比较实际长度小于 32672 字节的 LOB 字符串。
基本 ( = <> ) 行值表达式YYY
基本 ( < > <= >= ) 行值表达式YYY
在比较运算符右侧为标量子查询的基本表达式YYY
左侧为一个表达式(没有子查询)、右侧为子查询的量化(ALL、ANY 或 SOME)表达式YYY
ARRAY_EXISTSYYY
BETWEEN(无标量子查询)YYY
DISTINCTYYY
EXISTS(子查询)YYY
后跟表达式列表的 INYYY
IN 后跟单列子查询YYY
IS NULL 和 IS NOT NULL(无标量子查询)YYY
ISNULL 和 ISNOTNULL(无标量子查询)YYY
使用主机变量或字符串常量作为模式的 LIKEYYY
含模式和转义表达式的 LIKEYYY
OVERLAPSYYY
REGEXP_LIKEYYY
TYPEYYY
不含指定的 XML 模式的 VALIDATEDYYY
含指定的 XML 模式的 VALIDATEDYYY
XMLEXISTS 传递显式变量YYY
XMLEXISTS 隐式传递所有列YYY

聚合函数

语言元素DB2DB2 WarehouseBig SQL备注
ARRAY_AGG(普通数组)YYY
ARRAY_AGG(关联数组)YYY
AVGYYY
CORRELATION 或 CORRYYY
COUNTYYY
COUNT_BIGYYY
COVAR_POPYYY
COVARIANCE 或 COVARYYY
COVARIANCE_SAMP 或 COVAR_SAMPYYY
CUME_DISTYYY
GROUPINGYYY
LISTAGGPPPDB2 不支持 ON OVERFLOW 子句。
MAXYYY
MEDIANYYY
MINYYY
PERCENTILE_CONT 或 PERCENTILE_DISCYYY
PERCENT_RANKYYY
REGR_AVGXYYY
REGR_AVGYYYY
REGR_COUNTYYY
REGR_INTERCEPT 或 REGR_ICPTYYY
REGR_R2YYY
REGR_SLOPEYYY
REGR_SXXYYY
REGR_SXYYYY
REGR_SYYYYY
STDDEVYYY
STDDEV_POPYYY
STDDEV_SAMPYYY
SUMYYY
VARIANCE 或 VARYYY
VARIANCE_POP 或 VAR_POPYYY
VARIANCE_SAMP 或 VAR_SAMPYYY
XMLAGGYYY
XMLGROUPYYY

标量函数

语言元素DB2DB2 WarehouseBig SQL备注
ABSVAL 或 ABSYYY
ACOSYYY
ADD_DAYSYYY
ADD_HOURSYYY
ADD_MINUTESYYY
ADD_MONTHSYYY
ADD_SECONDSYYY
ADD_YEARSYYY
AGEYYY
ARRAY_DELETEYYY
ARRAY_FIRSTYYY
ARRAY_LASTYYY
ARRAY_NEXTYYY
ARRAY_PRIORYYY
ARRAY_TRIMYYY
ASCIIYYY
ASINYYY
ATANYYY
ATAN2YYY
ATANHYYY
BIGINTYYY
BINARYYYY
位操作函数(BITAND、BITANDNOT、BITNOT、BITOR、BITXOR)YYY
BLOBYYY
BTRIMYYY
CARDINALITYYYY
CEIL 或 CEILINGYYY
CHAR(无字符串单元)YYY
CHARACTER_LENGTH 或 CHAR_LENGTH(无字符串单元)YYY
含字符串单元的 CHARACTER_LENGTH 或 CHAR_LENGTHYYY
CHRYYY
CLOB(无字符串单元)PPP
COALESCE(或 VALUE)YYY
COLLATION_KEYYYY
COLLATION_KEY_BITYYY
COMPARE_DECFLOATYYY
CONCATYYY
CONTAINSYYY
COSYYY
COSHYYY
COTYYY
CURSOR_ROWCOUNTYYY
DATAPARTITIONNUMYYY
DATEYYY
DATE_PARTYYY
DATE_TRUNCYYY
DAYYYY
DAYNAMEYYY
DAYOFMONTHYYY
DAYOFWEEKYYY
DAYOFWEEK_ISOYYY
DAYOFYEARYYY
DAYSYYY
DAYS_BETWEENYYY
DAYS_TO_END_OF_MONTHYYY
DBCLOB(无字符串单元)PPP
DBPARTITIONNUM(另请参见 NODENUMBER)YYY
DECFLOATYYY
DECFLOAT_FORMATYYY
DECIMAL 或 DECYYY
DECODEYYY
DECRYPT_BINYYYDB2 11.1 中已弃用。
DECRYPT_CHARYYYDB2 11.1 中已弃用。
DEGREESYYY
DEREFYYY
DIFFERENCEYYY
DIGITSYYY
DOUBLE 或 DOUBLE_PRECISIONYYY
EMPTY_BLOB、EMPTY_CLOB、EMPTY_DBCLOBYYY
ENCRYPTYYYDB2 11.1 中已弃用。
EVENT_MON_STATEYYY
EXPYYY
EXTRACTYYY
FIRST_DAYYYY
FLOATYYY
FLOORYYY
FROM_UTC_TIMESTAMPYYY
GENERATE_UNIQUEYYY
GETHINTYYYDB2 11.1 中已弃用。
GRAPHIC(无字符串单元)PPP
GREATESTYYY
HASHYYY
HASH4YYY
HASH8YYY
HASHEDVALUE(另请参见 PARTITION)YYY
HEXYYY
HEXTORAWYYY
HOURYYY
HOURS_BETWEENYYY
IDENTITY_VAL_LOCALYYY
INITCAPYYY
INSERT(无字符串单元)PPP
含字符串单元的 INSERTYYY
INSTR(另请参见 LOCATE_IN_STRING)YYY
INSTR2(另请参见 LOCATE_IN_STRING)YYY
INSTR4(另请参见 LOCATE_IN_STRING)YYY
INSTRB(另请参见 LOCATE_IN_STRING)YYY
INTEGER 或 INTYYY
INTNAND、INTNOR、INTNXOR 和 INTNNOTYYY
JULIAN_DAYYYY
LAST_DAYYYY
LCASE 或 LOWERYYY
LCASE 或 LOWER(区域敏感)YYY
LEASTYYY
LEFT(无字符串单元)PPP
含字符串单元的 LEFTYYY
LENGTH(无字符串单元)YYY
含字符串单元的 LENGTHYYY
LENGTH2YYY
LENGTH4YYY
LENGTHBYYY
LNYYY
LOCATE(无字符串单元)PPP
含字符串单元的 LOCATEYYY
LOCATE_IN_STRING 或 INSTR(无字符串单元)PPP
含字符串单元的 LOCATE_IN_STRING 或 INSTRYYY
LOGYYY
LOG10YYY
LPADPPPDB2 仅对 CLOB 参数提供了有限的支持。
含 1 个参数的 LTRIMPPPDB2 仅对 CLOB 参数提供了有限的支持。
含 2 个参数的 LTRIMPPP
MAXYYY
MAX_CARDINALITYYYY
MICROSECONDYYY
MIDNIGHT_SECONDSYYY
MINYYY
MINUTEYYY
MINUTES_BETWEENYYY
MODYYY
MONTHYYY
MONTHNAMEYYY
MONTHS_BETWEENYYY
MQPUBLISHY-Y
最多含 2 个参数的 MQREADY-Y
最多含 2 个参数的 MQREADCLOBY-Y
MQRECEIVEY-Y
MQRECEIVECLOBY-Y
MQSENDY-Y
MQSUBSCRIBEY-Y
MQUNSUBSCRIBEY-Y
MULTIPLY_ALTYYY
NCHARYYY
NCLOBYYY
NEXT_DAYYYY
NEXT_MONTHYYY
NEXT_QUARTERYYY
NEXT_WEEKYYY
NEXT_YEARYYY
NODENUMBERYYY
NORMALIZE_DECFLOATYYY
NOWYYY
NULLIFYYY
NVARCHARYYY
NVLYYY
NVL2YYY
OCTET_LENGTHYYY
OVERLAY(无字符串单元)PPP
含字符串单元的 OVERLAYYYY
PARAMETERYYY
PARTITIONYYY
POSITION(无字符串单元)PPP
含字符串单元的 POSITIONYYY
POSSTRYYY
POWYYY
POWERYYY
QUANTIZEYYY
QUARTERYYY
RADIANSYYY
RAISE_ERRORYYY
RANDYYY
RANDOMYYY
RAWTOHEXYYY
REALYYY
REC2XMLYYY
REGEXP_COUNTYYY
REGEXP_EXTRACTYYY
REGEXP_INSTRYYY
REGEXP_MATCH_COUNTYYY
REGEXP_REPLACEYYY
REGEXP_SUBSTRYYY
REPEATYYY
REPLACEPPPDB2 不支持 LOB 参数。
所含参数第 3 个为可选的 REPLACEPPPDB2 不支持 LOB 参数。
RIDYYY
RID_BITYYY
RIGHT(无字符串单元)PPP
含字符串单元的 RIGHTYYY
ROUND(数值)YYY
含第 2 个可选参数的 ROUND(数值)YYY
ROUND(日期时间)YYY
ROUND_TIMESTAMPYYY
RPADPPPDB2 仅对 CLOB 参数提供了有限的支持。
含 1 个参数的 RTRIMPPPDB2 仅对 CLOB 参数提供了有限的支持。
含 2 个参数的 RTRIMPPPDB2 仅对 CLOB 参数提供了有限的支持。
SCOREYYY
SECLABELYYY
SECLABEL_BY_NAMEYYY
SECLABEL_TO_CHARYYY
SECONDYYY
SECONDS_BETWEENYYY
SIGNYYY
SINYYY
SINHYYY
SMALLINTYYY
SOUNDEXYYY
SPACEPPPDB2 支持的长度上限为 4000。
SQRTYYY
STRIPYYY
STRLEFTYYY
STRPOSYYY
STRRIGHTYYY
SUBSTRYYY
SUBSTR2YYY
SUBSTR4YYY
SUBSTRBYYY
SUBSTRING(无字符串单元)PPP
含字符串单元的 SUBSTRINGYYY
TABLE_NAMEYYY
TABLE_SCHEMAYYY
TANYYY
TANHYYY
THIS_MONTHYYY
THIS_QUARTERYYY
THIS_WEEKYYY
THIS_YEARYYY
TIMEYYY
TIMESTAMPYYY
TIMESTAMPDIFFYYY
TIMESTAMP_FORMATYYY
TIMESTAMP_ISOYYY
TOTALORDERYYY
TO_CHAR(字符)YYY
TO_CHAR(十进制浮点数)YYY
TO_CHAR(时间戳)YYY
TO_CLOBYYY
TO_DATEYYY
TO_HEXYYY
TO_NCHARYYY
TO_NCLOBYYY
TO_NUMBERYYY
TO_SINGLE_BYTEYYY
TO_TIMESTAMPYYY
TO_UTC_TIMESTAMPYYY
TRANSLATEYY-
TRIMPPPDB2 仅对 CLOB 参数提供了有限的支持。
TRIM_ARRAYYYY
TRUNCATE 或 TRUNC(日期时间)YYY
含第 2 个可选参数的 TRUNCATE 或 TRUNC(数值)YYY
TRUNCATE 或 TRUNC(数值)YYY
TRUNC_TIMESTAMPYYY
TYPE_IDYYY
TYPE_NAMEYYY
TYPE_SCHEMAYYY
UCASE 或 UPPERYYY
UCASE 或 UPPER(区域敏感)YYY
VALUEYYY
VARBINARYYYY
VARCHAR(无字符串单元)YYY
VARCHAR_BIT_FORMATYYY
VARCHAR_FORMAT(字符)YYY
VARCHAR_FORMAT(十进制浮点数)YYY
VARCHAR_FORMAT(时间戳)YYY
VARCHAR_FORMAT_BITYYY
VARGRAPHIC(无字符串单元)PPP
VERIFY_GROUP_FOR_USERYYY
VERIFY_ROLE_FOR_USERYYY
VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USERYYY
WEEKYYY
WEEKS_BETWEENYYY
WEEK_ISOYYY
WIDTH_BUCKETYYY
WRAPYYY
XML2CLOBYYY
XMLATTRIBUTESYYY
XMLCOMMENTYYY
XMLCONCATYYY
XMLDOCUMENTYYY
XMLELEMENTYYY
XMLFORESTYYY
XMLNAMESPACESYYY
XMLPARSEYYY
XMLPIYYY
传递已命名变量的 XMLQUERYYYY
XMLQUERY 隐式传递所有列YYY
XMLROWYYY
XMLSERIALIZEYYY
XMLTEXTYYY
XMLVALIDATEYYY
XMLXSROBJECTIDYYY
XSLTRANSFORMYYY
YEARYYY
YEARS_BETWEENYYY
YMD_BETWEENYYY

表函数

语言元素DB2DB2 WarehouseBig SQL备注
BASE_TABLEYYY
MQREADALLY-Y
MQREADALLCLOBY-Y
MQRECEIVEALLY-Y
MQRECEIVEALLCLOBY-Y
XMLTABLE 传递已命名的变量YYY
XMLTABLE 隐式传递所有列YYY

过程

语言元素DB2DB2 WarehouseBig SQL备注
CREATE_WRAPPEDYYY
XSR_ADDSCHEMADOCYYY
XSR_COMPLETEYYY
XSR_DTDYYY
XSR_EXTENTITYYYY
XSR_REGISTERYYY

查询

语言元素DB2DB2 WarehouseBig SQL备注
SELECT 子句YYY
在 SELECT 子句中使用 AS 从属子句YYY
在 SELECT 子句中使用 Qualified * 或 unqualified *YYY
在 SELECT 子句中使用标量子查询以外的表达式YYY
允许在 SELECT 子句中使用聚合函数,即使结果表是从一个分组视图中得到的YYY
FROM 子句引用单个表或视图YYY
含隐式交叉连接 (join)(多个逗号分隔的表引用)的 FROM 子句YYY
包含具有关联子句的嵌套表表达式的 FROM 子句YYY
包含没有关联子句的嵌套表表达式的 FROM 子句YYY
在 TABLE 关键字前使用嵌套表表达式的 FROM 子句YYY
在 LATERAL 关键字前使用嵌套表表达式的 FROM 子句YYY
含 CROSS JOIN 的 FROM 子句YYY
含隐式 INNER JOIN 的 FROM 子句YYY
含 LEFT OUTER JOIN 的 FROM 子句YYY
含 RIGHT OUTER JOIN 的 FROM 子句YYY
包含等同于连接条件的 FULL OUTER JOIN 的 FROM 子句YYY
含指定列 JOIN 的 FROM 子句YYY
含 TABLESAMPLE 子句的 FROM 子句YYY
包含具有关联子句的表函数引用的 FROM 子句YYY
包含没有关联子句的表函数引用的 FROM 子句YYY
包含具有关联子句的 XMLTABLE 表达式的 FROM 子句YYY
包含没有关联子句的 XMLTABLE 表达式的 FROM 子句YYY
包含集合派生表(对普通数组执行 UNNEST)的 FROM 子句YYY
包含集合派生表(对关联数组执行 UNNEST)的 FROM 子句YYY
包含外部表引用的 FROM 子句-Y-
包含 DELETE 语句的 FROM 子句YYY
包含 INSERT 语句的 FROM 子句YYY
包含 UPDATE 语句的 FROM 子句YYY
WHERE 子句YYY
GROUP BY 引用列名称YYY
GROUP BY 引用分组表达式YYY
GROUP BY 引用超级组(CUBE 和 ROLLUP)YYY
GROUP BY 引用分组集YYY
HAVING 子句YYY
含隔离子句的子查询YYY
含 UNION 或 UNION ALL 的全选YYY
含 INTERSECT 或 INTERSECT ALL 的全选YYY
含 EXCEPT 或 EXCEPT ALL 的全选YYY
含表值构造函数(VALUES 子句)的全选YYY
含隔离子句的全选YYP
以公用表表达式开头的 SELECT 语句YYY
使用递归公用表表达式的 SELECT 语句YYY
使用 CONNECT BY 的 SELECT 语句PPPDB2 不支持 CONNECT_BY_ISCYCLE 或 CONNECT_BY_ISLEAF 伪列。
含隔离子句的 SELECT 语句YYP
作用于限定列名称的 ORDER BY 子句YYY
对排序键表达式执行 ORDER BY 子句YYY
对不在 SELECT 列表中的表达式执行 ORDER BY 子句YYY
ORDER BY ORDER OFYYY
含列名称列表的 FOR UPDATE 子句YYY
含隐式列列表的 FOR UPDATE 子句YYY
FOR READ ONLY 子句YYY
含整数行数的 OPTIMIZE 子句YYY
FETCH FIRST 子句YYY
LIMIT 和 OFFSET 子句PPP在 SELECT 语句中不受支持。
周期规范YYY

基本语句

语言元素DB2DB2 WarehouseBig SQL备注
静态 CALL 语句YYY
含过程名称的主机变量名称的静态 CALL 语句YYY
动态 CALL 语句YYY
使用命名参数的 CALLYYY
含可选的 WHERE、GROUP BY 或 HAVING 子句的 SELECT INTO 语句YYY
含公用表表达式的 SELECT INTO 语句YYY
含 FETCH FIRST 子句的 SELECT INTO 语句YYY
含隔离子句的 SELECT INTO 语句YYY
含 LIMIT 和 OFFSET 子句的 SELECT INTO 语句PPP
SET 变量语句YYY
VALUES INTO 语句YYY

数据更改语句

语言元素DB2DB2 WarehouseBig SQL备注
搜索的 DELETE 语句YYP
含隔离子句的 DELETE 语句YYP
含 FETCH FIRST 子句的 DELETE 语句YYP
含 OFFSET 子句的 DELETE 语句YYP
含 ORDER BY 子句的 DELETE 语句YYP
含单行 VALUES 子句的 INSERT 语句YYY
含多行 VALUES 子句的 INSERT 语句YYY
含全选的 INSERT 语句YYY
含隔离子句的 INSERT 语句YYY
使用行值表达式的 INSERT 语句YYY
使用表引用输入的 MERGE 语句YYP
含隔离子句的 MERGE 语句YYP
含 IMMEDIATE 子句的 TRUNCATE 语句YYY
搜索的 UPDATE 语句YYP
含隔离子句的 UPDATE 语句YYP
含 FETCH FIRST 子句的 UPDATE 语句YYP
含 OFFSET 子句的 UPDATE 语句YYP
含 ORDER BY 子句的 UPDATE 语句YYP

针对游标的运算

语言元素DB2DB2 WarehouseBig SQL备注
ALLOCATE CURSOR 语句PPPDB2 仅在 SQL 过程中支持该语句。
ASSOCIATE LOCATORS 语句PPPDB2 仅在 SQL 过程中支持该语句。
CLOSE 语句YYY
DECLARE CURSOR 语句(参见其他游标元素)YYY
声明 INSENSITIVE SCROLL 游标PPPDB2 仅通过 CLI 或 JDBC 支持此功能。
声明 SENSITIVE STATIC SCROLL 游标PPPDB2 仅通过 CLI 或 JDBC 支持此功能。
声明 WITH HOLD 游标YYY
声明 WITH RETURN 游标(隐式返回到调用方)YYY
声明 WITH RETURN TO CALLER 游标YYY
声明 WITH RETURN TO CLIENT 游标YYY
位置确定的 DELETE 语句YYP
不含游标朝向的 FETCH 语句(隐式 NEXT)YYY
指定 FETCH SENSITIVE 或 FETCH INSENSITIVEPPP
含 NEXT、PRIOR、FIRST、LAST、BEFORE、AFTER、CURRENT 或 RELATIVE 的 FETCH 语句PPPDB2 仅通过 CLI 或 JDBC 支持这些访存特性。
含 ABSOLUTE 的 FETCH 语句PPPDB2 仅通过 CLI 或 JDBC 支持此访存特性。
OPEN 语句YYY
位置确定的 UPDATE 语句YYP

连接和事务控制

语言元素DB2DB2 WarehouseBig SQL备注
包级别的隔离级别规范YYY
语句级别的隔离级别规范YYY
RR(SQL2011 标准中的 SERIALIZABLE)YYP
RS(SQL2011 标准中的 REPEATABLE READ)YYP
CS(SQL2011 标准中的 READ COMMITTED)YYP
UR(SQL2011 标准中的 READ UNCOMMITTED)YYY
含 USE AND KEEP EXCLUSIVE LOCKS 的隔离子句YYY
含 USE AND KEEP SHARED|UPDATE LOCKS 的隔离子句YYY
COMMIT 语句YYY
CONNECT 语句(每个事务 1 个站点)YYY
CONNECT 语句(每个事务 2 个以上站点)(也称为两阶段落实)YYY
DISCONNECT 语句YYY
RELEASE 连接语句YYY
RELEASE SAVEPOINT 语句YYY
工作语句的 ROLLBACK 单元YYY
ROLLBACK TO SAVEPOINT 语句YYY
SAVEPOINT 语句 - 非嵌套YYY
SAVEPOINT 语句 - 嵌套YYY
SET CONNECTION 语句YYY

动态工具

语言元素DB2DB2 WarehouseBig SQL备注
复合语句(动态)YYY
不含 USING 子句的 DESCRIBE 输出语句YYY
DESCRIBE INPUT 语句YYY
EXECUTE 语句YYY
指定一个变量的 EXECUTE IMMEDIATE 语句YYY
指定一个表达式的 EXECUTE IMMEDIATE 语句YYY
指定 FROM 变量的 PREPARE 语句YYY
指定 FROM 表达式的 PREPARE 语句YYY
指定游标选项的 PREPARE 语句(ATTRIBUTES 子句)PPPDB2 仅通过 CLI 或 JDBC 支持此功能。

控制语句

语言元素DB2DB2 WarehouseBig SQL备注
SQL 过程中的控制语句YYY
SQL 标量函数中的控制语句YYY
SQL 表函数中的控制语句YYY
SQL 触发器中的控制语句YYY
赋值语句YYY
CASE 语句YYY
复合语句YYY
嵌套的非原子复合语句YYY
在复合语句中声明的常量YYY
FOR 语句YYY
针对 ROW_COUNT 语句的 GET DIAGNOSTICSYYY
针对 RETURN_STATUS 语句的 GET DIAGNOSTICSYYY
针对 MESSAGE_TEXT 语句的 GET DIAGNOSTICSYYY
GOTO 语句YYY
IF 语句YYY
ITERATE 语句YYY
LEAVE 语句YYY
LOOP 语句YYY
PIPE 语句YYY
REPEAT 语句YYY
RESIGNAL 语句YYY
来自 SQL 过程的 RETURN 语句YYY
来自 SQL 函数的 RETURN 语句YYY
SIGNAL 语句YYY
WHILE 语句YYY

数据定义

语言元素DB2DB2 WarehouseBig SQL备注
允许在 SQL 程序中使用 DDL 语句YYY
支持 DDL 事务语义YYY
支持 30 字节列名称YYY
支持 128 字节列名称YYY
支持 128 字节对象名称YYY
ALTER FUNCTION 语句PPP
ALTER MASK 语句YYY
ALTER MODULE 语句YYY
ALTER PERMISSION 语句YYY
ALTER PROCEDURE 语句PPP
ALTER SEQUENCE 语句YYY
ALTER TABLE 语句(参见其他标有 ALTAB 的元素)YYY
ALTER COLUMN (ALTAB)PPP
DROP COLUMN (ALTAB)YYY
RENAME COLUMN (ALTAB)YYY
ATTACH 和 DETACH PARTITION (ALTAB)YYY
ACTIVATE NOT LOGGED (ALTAB)YYY
ALTER TRIGGER 语句YYY
ALTER TRUSTED CONTEXT 语句YYY
ALTER XSROBJECT 语句YYY
COMMENT 语句YYY
CREATE ALIAS(表或视图)语句YYY
CREATE ALIAS(模块)语句YYY
CREATE ALIAS(序列)语句YYY
CREATE 或 REPLACE ALIAS 语句YYY
CREATE PUBLIC ALIAS(表或视图)语句YYY
CREATE PUBLIC ALIAS(模块)语句YYY
CREATE PUBLIC ALIAS(序列)语句YYY
CREATE OR REPLACE PUBLIC ALIAS 语句YYY
CREATE FUNCTION(外部标量)语句YYY
CREATE OR REPLACE FUNCTION(外部标量)语句YYY
CREATE FUNCTION(源)语句YYY
CREATE FUNCTION(SQL 标量)语句YYY
CREATE OR REPLACE FUNCTION(SQL 标量)语句YYY
CREATE FUNCTION(外部表)语句YYY
CREATE OR REPLACE FUNCTION(外部表)语句YYY
CREATE FUNCTION(SQL 表)语句YYY
CREATE OR REPLACE FUNCTION(SQL 表)语句YYY
CREATE FUNCTION(SQL 行)语句YYY
CREATE OR REPLACE FUNCTION(SQL 行)语句YYY
CREATE FUNCTION(外部通用表)语句YYY
含参数默认值的 CREATE FUNCTION 语句YYY
CREATE FUNCTION(聚合接口)语句YYY
CREATE OR REPLACE FUNCTION(聚合接口)语句YYY
CREATE GLOBAL TEMPORARY TABLE 语句YYY
作用于列列表的 CREATE INDEXYYP
作用于列列表的 CREATE UNIQUE INDEXYYP
作用于表达式的 CREATE INDEXYYY
作用于 XMLPATTERN 的 CREATE INDEXYYY
CREATE MASK 语句YYY
CREATE 或 REPLACE MASK 语句YYY
CREATE MODULE 语句YYY
CREATE 或 REPLACE MODULE 语句YYY
CREATE PERMISSION 语句YYY
CREATE 或 REPLACE PERMISSION 语句YYY
CREATE PROCEDURE(外部)语句YYY
CREATE 或 REPLACE PROCEDURE(外部)语句YYY
CREATE PROCEDURE (SQL) 语句YYY
CREATE 或 REPLACE PROCEDURE (SQL) 语句YYY
使用不同数量的参数对现有名称执行的 CREATE PROCEDURE 语句YYY
含参数默认值的 CREATE PROCEDURE 语句YYY
含 AUTONOMOUS 的 CREATE PROCEDURE 语句YYY
CREATE SCHEMAYYY
使用列定义的 CREATE TABLE 语句(参见其他标有 CRTAB 的元素)YYY
CREATE TABLE 语句 LIKE 其他表/视图(参见其他标有 CRTAB 的元素)YYY
CREATE TABLE 语句 LIKE 其他包含身份的表/视图(参见其他标有 CRTAB 的元素)YYY
CREATE TABLE 语句 AS 查询(参见其他标有 CRTAB 的元素)YYY
CHECK 约束子句(ALTAB、CRTAB)YYP
CHECK 约束上的 NOT ENFORCED 子句(ALTAB、CRTAB)YYY
DATA CAPTURE 子句(ALTAB、CRTAB)YYP
不含指定值的 DEFAULT 子句(ALTAB、CRTAB、DGTTAB)YYY
含指定值的 DEFAULT 子句(ALTAB、CRTAB、DGTTAB)YYY
IMPLICITLY HIDDEN 子句(ALTAB、CRTAB)YYP
VOLATILE 子句(ALTAB、CRTAB)YYP
生成的列:IDENTITY 子句(ALTAB、CRTAB、DGTTAB)YYP
生成的列:ROW CHANGE TIMESTAMP 子句(ALTAB、CRTAB)YYP
生成的列:ROW BEGIN 或 ROW END 子句(ALTAB、CCRTAB)YYP
生成的列:TRANSACTION START ID 子句(ALTAB、CCRTAB)YYP
生成的列:确定性表达式(ALTAB、CCRTAB)PPP
PRIMARY KEY 约束子句(ALTAB、CRTAB)YYP
UNIQUE 约束子句(ALTAB、CRTAB)YYP
为唯一约束自动生成索引(ALTAB、CRTAB)YYP
参考的约束子句(ALTAB、CRTAB)YYP
指定 ON DELETE 的 REFERENCES 子句(ALTAB、CRTAB)PPPDB2 不支持 ON DELETE SET DEFAULT。
指定 ON UPDATE 的 REFERENCES 子句(ALTAB、CRTAB)YYP
指定 NOT ENFORCED 子句的 REFERENCES 子句(ALTAB、CRTAB)YYY
指定自我参考表格时无需使用 ALTER TABLEYYY
函数从属子句(ALTAB、CRTAB)YYY
刷新即时系统维护的 MQT(CRTAB、ALTAB)YYY
刷新延迟系统维护的 MQT(CRTAB、ALTAB)YYY
用户维护的 MQT(CRTAB、ALTAB)YYY
PERIOD 子句(CRTAB、ALTAB)YYP
CREATE EXTERNAL TABLE 语句-Y-
CREATE ROLE 语句YYY
CREATE SEQUENCE 语句YYY
CREATE 或 REPLACE SEQUENCE 语句YYY
CREATE TRIGGER 语句 - 表上的 BEFORE 或 AFTER 触发器YYY
CREATE TRIGGER 语句 - 视图上的 INSTEAD OF 触发器YYY
CREATE TRIGGER 语句 - 多个触发器事件YYY
CREATE 或 REPLACE TRIGGER 语句YYY
CREATE TRUSTED CONTEXT 语句YYY
针对普通数组的 CREATE TYPE(数组)语句YYY
针对关联数组的 CREATE TYPE(数组)语句YYY
CREATE 或 REPLACE TYPE(数组)语句YYY
CREATE TYPE(游标)语句YYY
CREATE 或 REPLACE TYPE(游标)语句YYY
CREATE TYPE(不重复)语句YYY
含弱类型规则的 CREATE TYPE(不重复)语句YYY
CREATE TYPE(行)语句YYY
CREATE 或 REPLACE (行)语句YYY
CREATE TYPE(结构化)语句YYY
CREATE VARIABLE 语句PPPDB2 不支持基于数组类型的默认值。
CREATE VARIABLE 语句 (CONSTANT)YYY
CREATE VARIABLE 语句(基于游标-值-构造函数的默认值)YYY
CREATE 或 REPLACE VARIABLE 语句PPP
使用不含 CHECK OPTION 子句的全选的 CREATE VIEW 语句YYY
CREATE VIEW WITH CASCADED CHECK OPTIONYYY
CREATE VIEW WITH LOCAL CHECK OPTIONYYY
CREATE VIEW WITH ROW MOVEMENTYYY
CREATE 或 REPLACE VIEW 语句YYY
DECLARE GLOBAL TEMPORARY TABLE 语句(参见其他标有 DGTTAB 的元素)YYY
CREATE TEMPORARY TABLE(替代 DECLARE GLOBAL TEMPORARY TABLE)YYY
含指定的 RESTRICT 或 CASCADE 行为的 DROP 语句PPP
DROP ALIAS 语句YYY
DROP FUNCTION 语句YYY
DROP INDEX 语句YYY
DROP MASK 语句YYY
DROP MODULE 语句YYY
DROP PACKAGE 语句YYY
DROP PERMISSION 语句YYY
DROP PROCEDURE 语句YYY
DROP SCHEMA 语句PPPDB2 不支持 DROP SCHEMA CASCADE。
DROP SEQUENCE 语句YYY
DROP TABLE 语句YYY
DROP TRIGGER 语句YYY
DROP TYPE 语句YYY
DROP VARIABLE 语句YYY
DROP VIEW 语句YYY
DROP XSROBJECT 语句YYY
RENAME TABLE 语句PPP
RENAME INDEX 语句YYY
模糊处理用 SQL 编写的 SQL 对象YYY

授权

语言元素DB2DB2 WarehouseBig SQL备注
GRANT(函数特权)语句YYY
GRANT(全局变量特权)语句YYY
GRANT(模块特权)语句YYY
GRANT(包特权)语句YYY
GRANT(过程特权)语句YYY
GRANT(角色)语句YYY
GRANT(模式特权)语句YYY
GRANT(序列特权)语句YYY
GRANT(表特权)语句YYY
GRANT(XSR 对象特权)语句YYY
REVOKE(函数特权)语句YYY
REVOKE(全局变量特权)语句YYY
REVOKE(模块特权)语句YYY
REVOKE(包特权)语句YYY
REVOKE(过程特权)语句YYY
REVOKE(角色)语句YYY
REVOKE(模式特权)语句YYY
REVOKE(序列特权)语句YYY
REVOKE(表特权)语句YYY
REVOKE(XSR 对象特权)语句YYY
SET SESSION AUTHORIZATION 语句YYY
TRANSFER OWNERSHIP 语句YYY

其他语句

语言元素DB2DB2 WarehouseBig SQL备注
BEGIN 和 END DECLARE SECTION 语句YYY
DECLARE STATEMENT 语句PPP从 DB2 9.7 开始,仅在复合 SQL(已编译)语句中支持该语句。
FREE LOCATOR 语句YYY
INCLUDE 语句YYY
LOCK TABLE 语句YYP
REFRESH TABLE 语句YYY
SET COMPILATION ENVIRONMENT 语句YYY
SET CONNECTION 语句YYY
SET CURRENT DECFLOAT ROUNDING MODE 语句PPP
SET CURRENT DEFAULT TRANSFORM GROUP 语句YYY
SET CURRENT DEGREE 语句YYY
SET CURRENT EXPLAIN MODEYYY
SET CURRENT EXPLAIN SNAPSHOT 语句YYY
SET CURRENT FEDERATED ASYNCHRONY 语句YYY
SET CURRENT IMPLICIT XMLPARSE OPTION 语句YYY
SET CURRENT ISOLATION 语句YYY
SET CURRENT LOCALE LC_MESSAGES 语句YYY
SET CURRENT LOCALE LC_TIME 语句YYY
SET CURRENT LOCK TIMEOUT 语句YYY
SET CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION 语句YYY
SET CURRENT MDC ROLLOUT MODE 语句YYY
SET CURRENT OPTIMIZATION PROFILE 语句YYY
SET CURRENT PACKAGE PATH 语句YYY
SET CURRENT PACKAGESET 语句PPP
SET CURRENT QUERY OPTIMIZATION 语句YYY
SET CURRENT REFRESH AGE 语句YYY
SET CURRENT SQL_CCFLAGS 语句YYY
SET CURRENT TEMPORAL BUSINESS_TIME 语句YYY
SET CURRENT TEMPORAL SYSTEM_TIME 语句YYY
SET ENCRYPTION PASSWORD 语句YYYDB2 11.1 中已弃用。
SET EVENT MONITOR STATE 语句YYY
SET INTEGRITY 语句YYP
SET PASSTHRU 语句YYY
SET PATH 语句YYY
SET ROLE 语句YYY
SET SCHEMA 语句YYY
SET SERVER OPTION 语句YYY
SET SESSION AUTHORIZATION 语句YYY
SET USAGE LIST STATE 语句YYY
WHENEVER 语句YYY

主机语言

语言元素DB2DB2 WarehouseBig SQL备注
C 或 C++YYY
COBOLYYY
FORTRANYYY
Java (SQLJ)YYY
PL/IYYY
REXXYYY

Netezza 兼容性

语言元素DB2DB2 WarehouseBig SQL备注
双点表示法PPP
** 指数运算符PPP
# 逐位异或运算符PPP
GROUP BY SELECT 子句列PPP
引用列别名的表达式PPP
NZPLSQL 支持PPP
使用 Netezza 语法的 CREATE TABLE ASYYY
CREATE TEMP TABLE(DGTT 的替代语法)YYY

免责声明

此列表不一定完整。选择的特性基于客户的感兴趣程度。可通过详细查阅产品的 SQL 语言参考手册,找到更多常用特性。

此列表不应作为任何 DB2 产品的特性和功能列表。由于不断在发布新功能,所以某个特性可能已存在于一个平台中,但在其他 DB2 平台上仍处于试运行阶段。由于客户和市场差异,不是所有平台都需要同时提供相同的特性。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Big data and analytics
ArticleID=1049776
ArticleTitle=使用常用 IBM SQL 特性开发可移植的数据应用程序
publish-date=09142017