编写 SELECT 语句

SELECT 语句是最重要且最复杂的 SQL 语句。可使用它和 SQL 语句 INSERT 、UPDATE 和 DELETE 操纵数据。可以使用 SELECT 语句从数据库检索数据。将它用作
INSERT 语句的一部分来生成新行或将它作为 UPDATE 语句的一部分来更新信息。
SELECT 语句是查询数据库中信息的主要方法。它是检索程序、报告、表单或电子表格中的数据的关键。可以将 SELECT 语句与查询工具 DB-Access 配合使用或在应用程序中嵌入SELECT 语句。
本章介绍了使用 SELECT 语句查询和检索关系数据库数据的基本方法。本章讨论如何调整语句以从一个或多个表中选择信息行和列,如何在 SELECT 语句中包含表达式和 函数以及如何创建数据库表之间的各种连接条件。SELECT 语句的语法和使用方法在 GBase 8s
SQL 指南:语法中有详细描述。
本出版物中的大部分示例来自 stores_demo 数据库中的各表,该数据库随 GBase 8s SQL API或数据库实用程序的软件提供。为了简便起见,示例只显示了每个 SELECT 语句检索的数据的一部分。有关演示数据库的结构和内容的信息,请参阅《GBase 8s SQL 参考指南》。为了着重强调,虽然 SQL 不区分大小写,但是在示例中用大写字母显示关键字。

介绍 SELECT 语句

SELECT 语句允许您查看关系数据库中的数据的子句构成。这些子句允许您从一个或多个表或视图中选择列和行、指定一个或多个条件、对数据进行排序和总结以及将选择的数据置在临时表中。
本章介绍了如何使用五个 SELECT 语句子句。如果包含全部五个子句,那么它们必须按照下列顺序出现在 SELECT 语句中:

1. Projection 子句
2. FROM 子句
3. WHERE 子句
4. ORDER BY 子句
5. INTO TEMP 子句

只有 Projection 子句和 FROM 子句是必需的。这两个子句构成每个数据库查询的基础,原因是它们指定要检索的列值,以及包含这些列的表。使用以下列表中的一个或多个其它子句:

• 添加 WHERE 子句以选择特定行或创建连接条件。
• 添加 ORDER BY主键以更改生成数据的顺序。
• 添加 INTO TEMP 子句以将结果保存为表以供进一步查询。

还有两个 SELECT 语句子句 GROUP BY 和 HAVING,使您可以执行更复杂的数据检索。编写高级 SELECT 语句中对它们进行了描述。另一个子句 INTO 指定要从应用程序中的SELECT 语句中接收数据的程序或主变量。关于使用 SELECT 语句的完整语法和规则在GBase 8s SQL 指南:语法中有所描述。

1. SELECT 语句的输出
虽然在所有GBase 8s 产品中语法相同,但是结果输出的格式和显示取决于应用程序。本章和编写高级 SELECT 语句中的示例如同您在 DB-Access 中使用“交互式查询语言”选项时那样显示 SELECT 语句及输出。
大对象数据类型的输出

 大对象数据类型的输出当发出包含大对象的 SELECT 语句时,DB-Access 按如下所示显示结果:
• 对于 TEXT 列或 CLOB 列,显示列的内容。
• 对于 BYTE 列,显示词 <BYTE value> 而不是实际值。
• 对于 BLOB 列,显示词 <SBlob data> 而不是实际值。

用户定义的数据类型的输出 用户定义的数据类型的输出
DB-Access 使用特殊约定来显示包含复杂或不透明数据类型的列的输出。
非缺省代码集的输出 非缺省代码集的输出
可以发出查询 NCHAR 列而不是 CHAR 列,或者 NVARCHAR 列而不是 VARCHAR 列的 SELECT 语句。

2. 一些基本概念 
SELECT 语句不同于 INSERT 、UPDATE 和 DELETE 语句,它不修改数据库中的数据。一次只能有一个用户修改数据,而多个用户可同时查询或选择数据。有关修改数据的语句
的更多信息,请参阅修改数据。INSERT 、UPDATE 和 DELETE 语句的语法描述位于《GBase 8s SQL 指南:语法》中。
在关系数据库中,列是包含出现在表中的每一行中的特定信息类型的数据元素。行是在数据库表中的所有列上有关单个实体的信息的一组相关项。
可以从数据库表、系统目录表(包含有关数据库的信息的特殊表)、或视图(创建来包含一组定制数据的虚拟表)中选择列和行。有关系统目录表的信息在 GBase 8s SQL 参考指南中有所描述。

特权 
在查询数据之前,确保您对数据库具有 Connect 特权和表的 Select 特权。通常这些特权授予所有用户。在 GBase 8s SQL 指南:语法的 GRANT 和 REVOKE 语句中描述了数据库访问权。
关系操作
关系操作涉及处理一个或多个表或者关系以产生另一个表,三种关系操作为选择、投影和连接。本章包括选择、投影和连接操作的一些示例。
选择和投影 选择和投影
在关系术语中,选择被定义为取得满足特定条件的单个表的行的水平子集。此类 SELECT语句返回表中的某些行和所有列。选择是通过 SELECT 语句的 WHERE 子句实现的,如下图所示:
图: 查询
SELECT * FROM customer WHERE state = 'NJ';该结果包含的列数与 customer 表相同,但只是后者的行的子集。在此示例中,DB-Access 显示单独行上来自每列的数据。

Guess you like

Origin blog.csdn.net/weixin_62941622/article/details/121927584