4.通用语言元素
这一章涵盖了整个的SQL语言实现的通用语言元素——表达式用于提取和操作有关数据和断言,测试这些断言的真值。
SQL表达式为求值、转换和比较值提供正式方法。 SQL表达式包括表列、变量、常量、文字、各种语句和判断式以及其他表达式。
表达式中可能的符号完整列表如下。
表4.1。表达式元素的描述
元素 | 描述 |
列名称 | 从指定的表用于求值或作为搜索条件的列标识符。数组类型的列不能用于达式中是除了同 IS [NOT] NULL 判断式一起使用。 |
数组元素 | 表达式可以包含数组成员的引用即 <array_name> [s],其中 s 是下标的数组 <array_name> 中的成员 |
算术运算符 | +,-,*,/ 字符用于计算值 |
串联运算符 | ||(双管") 运算符用于连接字符串 |
逻辑运算符 | 保留字,NOT, AND 各 OR,来组合简单的搜索条件以建立复杂的断言 |
比较运算符 | 这些符号 =,<>,! =,~ =,^ =,<,< =,>,> =,!<, ~<, ^<, !>, ~> and ^> |
比较判断式 | LIKE, STARTING WITH, CONTAINING, SIMILAR TO, BETWEEN, IS [NOT] NULL 和 IS [NOT] DISTINCT FROM |
存在判断式 | 在判断式用于检查中一组值的存在。以逗号分隔的常数集和返回单个列的子查询,可以使用 IN 谓词。EXISTS,SINGULAR, ALL, ANY 和 SOME 判断式仅能在子查询中使用 |
常量 | 编号;或用撇号围起来的字符串 |
日期时间文本 | 一种表达式,类似于字符串括在单引号中,可解释为日期、 时间戳值。日期文字可以是预定义的文本 ('TODAY', 'NOW' 等) 或字符串的字符和数字,如25.12.2016 5:30:35 '这可以解决作为日期和/或 时间字符串" |
上下文变量 | 内部定义的上下文变量 |
局部变量 | 声明局部变量,PSQL模块的输入或输出参数 (存储的过程、 触发器、 在DSQ中无名的PSQL 块 ) |
位置参数中 | 一个或多个未命名参数有序组的成员传递给存储过程或编写查询 |
子查询 | SELECT语句括在括号中返回单个 (标量) 值或使用存在判断式的一组值 |
函数标识符 | 在一个函数表达式中内部或外部的函数的标识符 |
类型强制转换 | 使用 CAST 函数表达式显式地转换一种数据类型的数据到另一种 ( CAST (<value> AS <datatype>))。仅对于日期/时间文本使用速记语法 <datatype><value>也是支持的 (DATE '25.12.2016') |
条件表达式 | 表达式使用CASE和相关的内部函数 |
括号 | 用于组合表达式的一对括号 (...)。内部操作在外部操作前先执。嵌套的括号使用时首先计算嵌套最深的表达式,然后求值向外移动通过嵌套级别。 |
COLLATE 子句 | 子句应用于 CHAR 和 VARCHAR 类型,k若要指定要在字符串比较中使用的字符 setspecific 归类序列 |
NEXT VALUE FOR序列 | 获得指定的生成器 (序列) 的下一个值的表达式。内部的 GEN_ID() 函数的功能相同 |