构成 MapInfo SQL 语言的命令包括:
Select
SELECT < select_list >
FROM { < table_source > } [ ,...n ]
[ WHERE < search_condition > ]
[ GROUP BY expression [ ,...n ] ]
[ ORDER BY {expression | column_position [ ASC | DESC ] } [ ,...n ]]
< select_list > ::=
{
*
| { table_name | table_alias }.*
| { expression } [ [ AS ] column_alias ]
} [ ,...n ]
< table_source > ::=
table_name [ [ AS ] table_alias ]
Insert
INSERT [INTO] { table_name } [ ( column_list ) ]
{ VALUES ({expression | NULL}[, ...n]) | query_specification
Update
UPDATE { table_name }
SET {{ column_name } = { expression | NULL }} [, ...n]
[ WHERE < search_condition > ]
Delete
DELETE [FROM] { table_name } [ WHERE < search_condition > ]
< search_condition > ::=
{ [ NOT ] < predicate > | ( < search_condition > ) }
{ [ NOT ] < predicate > | ( < search_condition > ) }
< predicate > ::=
{
expression [ { = | < > | != | > | >= | < | <= } expression ]
| string_expression [ NOT ] LIKE string_expression [ ESCAPE 'escape_character' ]
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
}
expression
是列名、伪列、列的别名、常量、函数,或是用运算符连接的以上项目的任意组合。
列名和伪列可以是以表名或表别名后接点 (".") 字符为前缀。
注:子查询和关联的运算符 IN, ANY, SOME 和 ALL 当前不被 MapInfo 数据提供程序支持。
group_by_expression
是选择列表的列或选择列表表达式的匹配副本的参考,别名 - 基于 1 的数字,指示列的位置,或 n 是表示列的数字的 coln 位置。
order_by_expression
是选择列表的列或选择列表表达式的匹配副本的参考,别名 - 基于 1 的数字,指示列的位置,或 n 是表示列的数字的 coln 位置。
MapInfo SQL Language 基于 SQL-3 和 SQL/MM 标准。字符串文字必须用单引号封闭 ('example'),而标识符(列名称、表名称、别名等)应该以双引号封闭 ("example identifier")(如果有必要)。只有分析逻辑不能正确分析标识符时,标识符才需要加引号。这种情况包括名称中有空格或有其它特殊字符的标识符。
操作符
支持如下运算符。
| 符号 |
用法 |
| + |
加法运算符;也是连接运算符。注:MapBasic 使用 "&" |
| - |
减法运算符;也是一元负号 |
| * |
乘法运算符 |
| / |
除法运算符 |
| ^ |
乘方运算符 |
| = |
相等运算符(字符串区分大小写)(除非平台强制要区分大小写,例如在 SQL Server 的默认情况下) |
| <> |
不等运算符 |
| != |
不等运算符 |
| < |
小于运算符 |
| > |
大于运算符 |
| <= |
小于或等于运算符 |
| >= |
大于或等于运算符 |
| ( |
表达式分隔符 |
| ) |
表达式分隔符 |
| % |
通配符 |
| , |
列表项与函数参数分隔符 |
| @ 或 : |
参数名 - 参数名需要以 @ 或 : 开头。符号。 |
| '' |
字符串常量分隔符 |
| "" |
引用标识符分隔符 |
| Within |
与 MapBasic 的 Entirely Within 相等 |
| Contains |
与 MapBasic 的 Entirely Within 相等 |
| Intersects |
与 MapBasic 的 Intersects, Partly Within 和 Partly Contains 相等 |
| CentroidWithin |
与 MapBasic 的 Within 相等 |
| ContainsCentroid |
与 MapBasic 的 Contains 相等 |
| EnvelopesIntersect |
测试操作数的包络 (MBR) 是否相交 |
函数
支持如下函数。除非另行说明,如果任意一个参数为空,则函数都返回空。
.............................