Adaptive Server Anywhere 所支持的以下 SQL 功能在其他许多 SQL 实现中都没有。
支持完全类型转换。任何数据类型都可以与任何其他数据类型进行比较,或一起用于任何表达式。
Adaptive Server Anywhere 具有日期、时间和时间戳类型,包括年月日、小时、分钟、秒和更小的时间单位。插入或更新日期字段时,或与日期字段进行比较时,支持使用自由格式日期。
此外,还可以对日期进行以下运算:
日期 + 整数 在日期中加上指定的天数。
日期 - 整数 从日期中减去指定的天数。
日期 - 日期 计算两个日期之间的天数。
日期 + 时间 用日期和时间创建一个时间戳。
另外,还提供了许多用于操纵日期和时间的函数。有关这些函数的说明,请参见 SQL 函数。
Adaptive Server Anywhere 支持实体完整性和参照完整性。这是通过对 CREATE TABLE 和 ALTER TABLE 命令进行以下扩展实现的。
PRIMARY KEY ( column-name, ... )
[NOT NULL] FOREIGN KEY [role-name]
[(column-name, ...)]
REFERENCES table-name [(column-name, ...)]
[ CHECK ON COMMIT ]PRIMARY KEY 子句声明关系的主键。之后,Adaptive Server Anywhere 将确保主键的唯一性,并确保主键中的任何一列都不包含空值。
FOREIGN KEY 子句定义此表与另一个表之间的关系。这个关系由此表中的一列(或多列)表示,该列必须包含另一个表的主键中的值。之后,系统将确保这些列的完整性 - 只要修改了这些列,或在此表中插入了一行,都将对这些列进行检查,以确保有一列或多列为空值,或这些值与另一个表的主键中某行的对应列相匹配。有关详细信息,请参见 CREATE TABLE 语句。
Adaptive Server Anywhere 允许表之间的自动连接。除其他实现中支持的 NATURAL 和 OUTER 连接操作符之外,Adaptive Server Anywhere 还允许在表之间基于外键关系建立 KEY 连接。这降低了执行连接时 WHERE 子句的复杂程度。
Adaptive Server Anywhere 允许 UPDATE 命令引用多个表。在多个表上定义的视图也可以更新。许多 SQL 实现不允许更新连接的表。
对 ALTER TABLE 命令进行了扩展。除了用于实体完整性和参照完整性的更改外,还支持以下变更:
ADD column data-type MODIFY column data-type DELETE column RENAME new-table-name RENAME old-column TO new-column
使用 MODIFY 可以更改字符列的最大长度,也可以从一种数据类型转换为另一种数据类型。有关详细信息,请参见 ALTER TABLE 语句。
Adaptive Server Anywhere 允许在任何可以放置表达式的位置放置子查询。许多 SQL 实现只允许将子查询放置在比较运算符的右边。以下命令在 Adaptive Server Anywhere 中有效,但在大多数其他 SQL 实现中无效。
SELECT emp_lname,
birth_date,
( SELECT dept_name
FROM department
WHERE emp_id = employee.emp_ID
AND dept_id = 200 )
FROM employeeAdaptive Server Anywhere 支持几个 ANSI SQL 定义中没有的函数。有关可用函数的完整列表,请参见 SQL 函数。
使用 Embedded SQL 时,可以使用 FETCH 语句任意移动游标位置。可以相对于当前游标位置或相对于游标最前面或最后面给定数量的记录,前移或后移游标。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。