#
第一章 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`字段数据中使用。