#
第一章 SQL中使用的符号
SQL中用作运算符等的字符表
# 符号表
每个符号的名称后跟其ASCII十进制代码值。
符号 | 名称和用法
---|---
`[space]` or `[tab]` | 空白(制表符(`9)`或空格(`32`)):关键字、标识符和变量之间的一个或多个空白字符。
`!` |感叹号(`33`):条件表达式中谓词之间的或逻辑运算符。用于`WHERE`子句、`HAVING`子句和其他地方。在`SQL Shell`中`!`命令用于发出ObjectScript命令行。
`!=` |感叹号/等号:不等于比较条件。
`"` |引号(`34`):包含一个分隔的标识符名称。在动态SQL中,用于将类方法参数的文字值括起来,例如将SQL代码作为`%Prepare()`方法的字符串参数,或者将输入参数作为`%Execute()`方法的字符串参数。在`%PATTERN`中,用于将文字值包含在模式字符串中。例如,`'3L1"L".L'`(意思是`3`个小写字母,后面跟着大写字母`“L”`,后面跟着任意数量的小写字母)。在`XMLELEMENT`中,用于括起标记名字符串。
`""` |两个引号:本身是无效的分隔标识符。在分隔标识符内,文字引号字符的转义序列。例如,`"a""good""id"`。
`#`| 井号(`35`):有效的标识符名称字符(不是第一个字符)。前后带有空格的模算术运算符。对于嵌入式SQL,是ObjectScript宏预处理器指令前缀。例如,`#include`。在`SQL Shell`中,`#`命令用于从`SQL Shell`历史记录缓冲区调回语句。
`$`| 美元符号(`36`):有效的标识符名称字符(不是第一个字符)。某些IRIS扩展`SQL`函数的第一个字符。
`$$` |双美元符号:用于调用ObjectScript用户定义函数(也称为外部函数)。
`%`| 百分号(`37`):标识符名称的有效第一个字符(仅第一个字符)。某些 `SQL`标准扩展的第一个字符,包括字符串排序函数(`%SQLUPPER`)、聚合函数(`%DLIST`)和谓词条件(`%startswith`)。`SELECT`中`%ID`、`%TABLENAME`和`%CLASSNAME`关键字的第一个字符。一些特权关键字(`%CREATE_TABLE`、`%ALTER`)和一些角色名(`%ALL`)的第一个字符。
`%% `|双百分号:伪字段引用变量关键字的前缀:`%%CLASSNAME`、`%%CLASSNAMEQ`、`%%ID`和`%%TABLENAME`,在ObjectScript计算字段代码和触发器代码中使用。
`&` |与号(`38`):`WHERE`子句和其他条件表达式中的`AND`逻辑运算符。`$BITLOGIC`位串和运算符。嵌入式`SQL`调用前缀:
`'` |单引号字符`(39`):将字符串文字括起来。
`''` |双单引号字符:空字符串文字。字符串值中文字单引号字符的转义序列。例如:`‘can’‘t’`
`( )` |圆括号(`40,41`):用逗号分隔列表。将`SQL`函数的参数括起来。将过程、方法或查询的参数列表括起来。大多数情况下,即使未提供参数或参数,也必须指定圆括号。在`SELECT DISTINCT BY`子句中,将用于选择唯一值的项或项的逗号分隔列表括起来。在`SELECT`语句中,将子查询括在`FROM`子句中。括起`UNION`中使用的预定义查询的名称。括起主机变量数组下标。例如,`INTO:var(1),:var(2)`包含嵌入式`SQL`代码:用于在算术运算中强制优先:`3(3*5)=18`。用于对谓词进行分组:`WHERE NOT (Age<20 AND Age>12)`.
`(( ))`| 双圆括号:禁止缓存查询中的文字替换。例如,`SELECT TOP ((4)) Name FROM Sample.Person WHERE Name %STARTSWITH (('A'))`.优化非空离群值的`WHERE`子句选择。
`*` |星号(`42`):通配符,在以下情况下表示`“ALL”`:在`SELECT RETERVE ALL COLUMNS`中:`SELECT*FROM TABLE`。在计数中,对所有行(包括空值和重复项)进行计数。在`GRANT`和`REVOKE`中,所有基本权限、所有表或所有当前定义的用户。 `%MATCHES` 模式字符串的多字符通配符。乘法算术运算符。
`*/` | 星号斜杠:多行注释结束指示符。注释以`/*`开头。
`+` | 加号(`43`):加法算术运算符。一元正号运算符。
`,` | 逗号(`44`):列表分隔符,例如多个字段名称。在数据大小定义中:数字(精度,小数位数)。
`–`|连字符(减号)(`45`):减法算术运算符。一元负号运算符`.SQLCODE`错误代码前缀:`-304`.日期分隔符.In `%MATCHES` 方括号内指定的范围指示符模式字符串。例如,`[a-m]`。
`––` |双连字符:单行注释指示符。
`–>` |连字符,大于(箭头):隐式联接箭头语法。
`.`| 句点(`46`):用于分隔多部分名称的各个部分,例如限定的表名:`schema.tablename`或列名:`tablealias.fieldname`以美国数字格式表示数字文字的小数点。俄语、乌克兰语和捷克语区域设置的日期分隔符:`DD.MM.YYYY`作为变量或数组名称的前缀,指定通过引用传递:`.name` `%PATTERN`字符串多字符通配符。
`/` | 斜杠(`47`):除法算术运算符。日期分隔符。
`/*` | 斜杠星号:多行注释开始指示符。注释以`*/`结尾。
`:`|冒号(`58`):主机变量指示符前缀:`:var`。小时、分钟和秒的时间分隔符。在`CAST`和`CONVERT`函数中,可选的每秒千分之一的分隔符。在触发器代码中,表示ObjectScript标签行的前缀。在`CREATE PROCEDURE` ObjectScript代码体中,是宏预处理器指令前缀。例如:`#include`。
`::` |双冒号:在触发器代码中,这个双前缀表示该行开始的标识符(`::name`)是主机变量,而不是标签行。
`;` |分号(`59`):过程、方法、查询和触发器代码中的SQL语句结尾分隔符。`ImportDDL()`或任何使用TSQL方言指定SQL代码的地方都接受它作为语句末尾的可选分隔符。否则, SQL不会在SQL语句末尾使用或允许使用分号。
`<` | 小于(`60`):小于比较条件。
`<=`| 小于等于:小于等于比较条件。
`<>` |小于/大于:不等于比较条件。
`=`| 等号(`61`):等于比较条件。在`WHERE`子句中,内联接。
`>` | 大于(`62`):大于比较条件。
`>=` |大于等于:大于等于比较条件。
`?` | 问号(`63`):在动态SQL中,由`Execute`方法提供的输入参数变量。`%MATCHES` 模式字符串的单字符通配符。在`SQL Shell`中`?`命令显示`SQL Shell`命令的帮助文本。
`@` | 在符号(`64`)处:有效的标识符名称字符(不是第一个字符)。
`E, e` |字母`“E”`(`69,101`):指数指示符。指定任何可打印字符的`%PATTERN`代码。
`[` | 左方括号(`91`):包含谓词。用于`WHERE`子句、`HAVING`子句和其他地方。
`[ ]` |左方括号和右方括号:在`%Matches`模式字符串中,将匹配字符的列表或范围括起来。例如,`[abc]`或`[a-m]`。
`\`| 反斜杠(`92`):整数除法算术运算符。`%MATCHES` 模式字符串转义字符。
`]` | 右方括号(`93`):跟在谓词后面。用于`WHERE`子句、`HAVING`子句和其他地方。
`^` |加号(`94`):`%MATCHES`模式字符串一个非字符。例如,`[^abc]`。
`_` |下划线(`95`):标识符名称的有效第一个(或后续)字符。某些用户名(但不是密码)的有效第一个字符。用于列名以表示嵌入的串行类数据:选择`Home_State`,其中`Home`是引用串行类的字段,`State`是在该串行类中定义的属性。`LIKE`条件谓词单字符通配符。
`{ }` |大括号(`123,125`):用ODBC标量函数括起来:`{fn name(...)}`。将时间和日期构造函数括起来`{d 'string'}, {t 'string'}, {ts 'string'}`。在过程、方法、查询和触发器代码中关闭ObjectScript代码。
`||` | 双竖线(`124`):串联运算符。复合`ID`指示器。由 IRIS用作生成的复合对象`ID`(串联`ID`)中多个属性之间的分隔符。它可以是在多个属性上定义的`IDKey`索引(`pro1||pro2`),也可以是父子关系的`ID`(`parent||Child`)。不能在`IDKEY`字段数据中使用。