查询基础知识
查询是对存储在 SQL Server 2005 中的数据的一种请求。可以使用下列几种形式发出查询:
- MS Query 或 Microsoft Access 用户可使用图形用户界面 (GUI) 从一个或多个 SQL Server 表中选择想要查看的数据。
- 使用 SQL Server Management Studio 或 osql 实用工具的用户可发出 SELECT 语句。
- 客户端或基于中间层的应用程序(如 Microsoft Visual 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
)。
请参阅
概念
其他资源
FROM (Transact-SQL)
SELECT (Transact-SQL)
WHERE (Transact-SQL)