基本 SELECT 语句

SELECT 语句的基本格式和语法由若干必需子句和可选子句组成。

您可以在一行或多行上编写 SQL 语句。 对于预编译程序中的 SQL 语句,行延续的规则与主语言 (程序所使用的语言) 的规则相同。 SELECT 语句也可以由程序中的游标使用。 最后,可以在动态应用程序中准备 SELECT 语句。

注:
  1. 本节中描述的 SQL 语句可以在 SQL 表和视图以及数据库物理和逻辑文件上运行。
  2. SQL 语句中指定的字符串 (例如与 WHERE 或 VALUES 子句配合使用的字符串) 区分大小写; 即,必须以大写形式输入大写字符,并且必须以小写形式输入小写字符。
    WHERE ADMRDEPT='a00'     (does not return a result)
     
    WHERE ADMRDEPT='A00'     (returns a valid department number)

    如果在将大写和小写字符视为相同字符的情况下使用共享权重排序顺序,那么比较可能不区分大小写。

SELECT 语句可以包含以下内容:

  1. 要包含在结果中的每个列的名称。
  2. 包含数据的表或视图的名称。
  3. 用于标识包含所需信息的行的搜索条件。
  4. 用于对数据进行分组的每个列的名称。
  5. 唯一标识包含所需信息的组的搜索条件。
  6. 结果的顺序。
  7. 结果集中的偏移量,用于允许跳过若干行。
  8. 要返回的行数。

SELECT 语句如下所示:

   SELECT column names
     FROM table or view name
     WHERE search condition
     GROUP BY column names
     HAVING search condition
     ORDER BY column-name
     OFFSET number of rows
     FETCH FIRST n ROWS ONLY

必须指定 SELECT 和 FROM 子句。 其他子句是可选的。

使用 SELECT 子句,可以指定要检索的每个列的名称。 例如:

   SELECT EMPNO, LASTNAME, WORKDEPT
   

您可以指定仅检索一列,或最多可检索 8000 列。 将按照 SELECT 子句中指定的顺序检索您命名的每个列的值。

如果要检索没有隐藏属性的所有列 (按它们在表的定义中的显示顺序) ,请使用星号 (*) 代替命名这些列:

   SELECT *
   

FROM 子句指定要选择数据 的表。 您可以从多个表中选择列。 发出 SELECT 时,必须指定 FROM 子句。 发出以下语句:

SELECT *
       FROM EMPLOYEE;

结果是表 EMPLOYEE 中的所有列和行。

SELECT 列表还可以包含表达式,包括常量,专用寄存器和标量全查询。 可以使用 AS 子句为生成的列提供名称。 例如,发出以下语句:

SELECT LASTNAME, SALARY * .05 AS RAISE
       FROM EMPLOYEE
       WHERE EMPNO = '200140';

以下是此语句的结果。

表 1. 查询结果
LASTNAME RAISE
北约 Z 1421