查询基础知识
查询是对存储在 SQL Server 中的数据的一种请求。可以使用下列几种形式发出查询:
MS Query 或 Microsoft Access 用户可使用图形用户界面 (GUI) 从一个或多个 SQL Server 表中选择想要查看的数据。
使用 SQL Server Management Studio 或 osql 实用工具的用户可发出 SELECT 语句。
客户端或基于中间层的应用程序(如 MicrosoftVisual Basic 应用程序)可将 SQL Server 表中的数据映射到绑定控件(如网格)。
尽管查询使用多种方式与用户交互,但它们都完成相同的任务:它们为用户提供 SELECT 语句的结果集。即使用户从不指定 SELECT 语句,与使用图形化工具(如 Visual Studio Query Designer)所经常遇到的情况一样,客户端软件可将每个用户查询转换成发送到 SQL Server 的 SELECT 语句。
SELECT 语句从 SQL Server 中检索出数据,然后以一个或多个结果集的形式将其返回给用户。结果集是对来自 SELECT 语句的数据的表格排列。与 SQL 表相同,结果集由行和列组成。
虽然 SELECT 语句的完整语法比较复杂,但是大多数 SELECT 语句都描述结果集的四个主要属性:
结果集中的列的数量和属性。对于每个结果集列来说,必须定义下列属性:
列的数据类型。
列的大小以及数值列的精度和小数位数。
返回到列中的数据值的源。
从中检索结果集数据的表,以及这些表之间的所有逻辑关系。
为了符合 SELECT 语句的要求,源表中的行所必须达到的条件。不符合条件的行会被忽略。
结果集的行的排列顺序。
下列 SELECT 语句查找单价超过 $40 的产品的产品 ID、名称以及标价:
SELECT ProductID, Name, ListPrice
FROM Production.Product
WHERE ListPrice > $40
ORDER BY ListPrice ASC
在 SELECT 关键字之后所列出的列名(ProductID、Name 和 ListPrice)形成选择列表。此列表指定结果集有三列,并且每一列都具有 Product 表中相关列的名称、数据类型和大小。因为 FROM 子句仅指定了一个基表,所以 SELECT 语句中的所有列名都引用该表中的列。
FROM 子句仅列出 Product 这一个表,该表用来检索数据。
WHERE 子句指定出条件:在 Product 表中,只有 ListPrice 列中的值大于 $40,该值所在的行才符合 SELECT 语句的要求。
ORDER BY 子句指定结果集将基于 ListPrice 列中的值按照升序进行排序 (ASC)。