Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

与其它版本 SQL 语言的区别

Adaptive Server Anywhere SQL 功能


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 语句

支持子查询 WHERE 表达式 

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 employee
附加函数 

Adaptive Server Anywhere 支持几个 ANSI SQL 定义中没有的函数。有关可用函数的完整列表,请参见 SQL 函数

游标 

使用 Embedded SQL 时,可以使用 FETCH 语句任意移动游标位置。可以相对于当前游标位置或相对于游标最前面或最后面给定数量的记录,前移或后移游标。


Collection Contents 上一页 下一页 PDF