Sql Server系列:Select基本语句 1 T-SQL中SELECT语法结构 2 基本SELECT查询 3 查询记录中指定字段 4 在查询结果中使用表达式 5 显示部分查询结果 6 带限制条件的查询 7 带AND的多条件查询 8 带OR的多条件查询 9 使用LIKE运算符进行匹配查询 10 使用BETWEEN ... AND查询 11 对查询结果进行排序 12 使用GROUP BY聚合数据 

Sql Server系列:Select基本语句
1 T-SQL中SELECT语法结构
2 基本SELECT查询
3 查询记录中指定字段
4 在查询结果中使用表达式
5 显示部分查询结果
6 带限制条件的查询
7 带AND的多条件查询
8 带OR的多条件查询
9 使用LIKE运算符进行匹配查询
10 使用BETWEEN ... AND查询
11 对查询结果进行排序
12 使用GROUP BY聚合数据 

<SELECT statement> ::=  
    [WITH <common_table_expression> [,...n]]
    <query_expression> 
    [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } 
  [ ,...n ] ] 
    [ <FOR Clause>] 
    [ OPTION ( <query_hint> [ ,...n ] ) ] 
<query_expression> ::= 
    { <query_specification> | ( <query_expression> ) } 
    [  { UNION [ ALL ] | EXCEPT | INTERSECT }
        <query_specification> | ( <query_expression> ) [...n ] ] 
<query_specification> ::= 
SELECT [ ALL | DISTINCT ] 
    [TOP ( expression ) [PERCENT] [ WITH TIES ] ] 
    < select_list > 
    [ INTO new_table ] 
    [ FROM { <table_source> } [ ,...n ] ] 
    [ WHERE <search_condition> ] 
    [ <GROUP BY> ] 
    [ HAVING < search_condition > ] 

2 基本SELECT查询

SELECT * FROM [dbo].[Product]

  使用星号(*)通配符时,将返回全部列,列按照定义表的时候的顺序显示。

3 查询记录中指定字段

  在不需要数据表中全部字段值时,可以指定需要查询的字段名称,这样不仅显示的结果更清晰,而且能提高查询的效率。

SELECT [ProductID],[ProductName] FROM [dbo].[Product]

4 在查询结果中使用表达式

SELECT 
    [ProductID],
    [ProductName],
    [UnitPrice] * 2 AS DoubleUnitPrice
FROM [dbo].[Product]

  AS关键字表示为表达式指定一个用于显示的字段名称,这里AS为一个可选参数,也可以不使用。

5 显示部分查询结果

  当数据表中包含大量的数据时,可以通过指定显示记录数限制返回的结果集中的行数。

SELECT TOP [n | PERCENT] FROM table_name

  TOP后面有两个可选参数,n表示从查询结果集返回指定的n行,PERCENT表示从结果集中返回指定的百分比数目的行。

SELECT TOP (10) * FROM [dbo].[Product]
SELECT TOP (10) PERCENT * FROM [dbo].[Product]

6 带限制条件的查询

  数据库中如果包含大量的数据,根据特殊要求,可能只须查询表中的指定数据,既对数据进行过滤。在SELECT语句中使用WHERE字句,对数据进行过滤。

SELECT * FROM [dbo].[Product] WHERE [ProductID] <= 10

7 带AND的多条件查询

  使用SELECT查询时,可以增加查询的限制条件,这样可以使查询的结果更加精确。在WHERE字句中使用AND操作符,限定满足所有查询条件的记录才会被返回。可以使用AND连接两个或多个查询条件。多个条件表达式之间用AND分开。

SELECT * FROM [dbo].[Product]
WHERE [ProductID] <= 10 AND [UnitPrice] >= 20

8 带OR的多条件查询

  在WHERE声明中使用OR操作符,表示只需要满足其中一个条件的记录即可返回。OR也可以连接两个或多个查询条件,多个条件表达式直接使用OR分开。

SELECT * FROM [dbo].[Product]
WHERE [ProductID] <= 10 OR [UnitPrice] >= 20

9 使用LIKE运算符进行匹配查询

  在不能明确指定查询的限定条件,可以使用LIKE运算符进行模式匹配查询。在查询时可以使用的通配符:

通配符 说明
% 包含零个或多个字符的任意字符串
_ 任何单个任意字符
[] 指定范围或集合中的单个字符
[^] 不在指定范围或集合中的单个字符
SELECT * FROM [dbo].[Product]
WHERE [ProductName] LIKE '%LINQ'
SELECT [ProvinceID]
      ,[ProvinceCode]
      ,[ProvinceName]
  FROM [dbo].[Province]
  WHERE [ProvinceCode] LIKE '_10000'

Sql Server系列:Select基本语句
1 T-SQL中SELECT语法结构
2 基本SELECT查询
3 查询记录中指定字段
4 在查询结果中使用表达式
5 显示部分查询结果
6 带限制条件的查询
7 带AND的多条件查询
8 带OR的多条件查询
9 使用LIKE运算符进行匹配查询
10 使用BETWEEN ... AND查询
11 对查询结果进行排序
12 使用GROUP BY聚合数据 

SELECT [ProvinceID]
      ,[ProvinceCode]
      ,[ProvinceName]
  FROM [dbo].[Province]
  WHERE [ProvinceCode] LIKE '[1,2]10000'

Sql Server系列:Select基本语句
1 T-SQL中SELECT语法结构
2 基本SELECT查询
3 查询记录中指定字段
4 在查询结果中使用表达式
5 显示部分查询结果
6 带限制条件的查询
7 带AND的多条件查询
8 带OR的多条件查询
9 使用LIKE运算符进行匹配查询
10 使用BETWEEN ... AND查询
11 对查询结果进行排序
12 使用GROUP BY聚合数据 

SELECT [ProvinceID]
      ,[ProvinceCode]
      ,[ProvinceName]
  FROM [dbo].[Province]
  WHERE [ProvinceCode] LIKE '[^1,^2]10000'

Sql Server系列:Select基本语句
1 T-SQL中SELECT语法结构
2 基本SELECT查询
3 查询记录中指定字段
4 在查询结果中使用表达式
5 显示部分查询结果
6 带限制条件的查询
7 带AND的多条件查询
8 带OR的多条件查询
9 使用LIKE运算符进行匹配查询
10 使用BETWEEN ... AND查询
11 对查询结果进行排序
12 使用GROUP BY聚合数据 

10 使用BETWEEN ... AND查询

  BETWEEN ... AND运算符可以对查询值限定一个查询区间。

SELECT * FROM [dbo].[Product]
WHERE [ProductID] BETWEEN 10 AND 20

  等价于:

SELECT * FROM [dbo].[Product]
WHERE [ProductID] >= 10 AND [ProductID] <= 20

11 对查询结果进行排序

  ORDER BY子句可以根据指定的字段的值对查询的结果进行排序,并可以指定排序方式(升序/降序)。

SELECT * FROM [dbo].[Product]
ORDER BY [UnitPrice] DESC

  ORDER BY子句可以对查询结果进行升序排列,升序排列是默认的排序方式,在使用ORDER BY 子句升序排列时,可以使用ASC关键字,也可以省略该关键字。

12 使用GROUP BY聚合数据 

SELECT [CategoryID], SUM([Quantity]) FROM [dbo].[Product] GROUP BY [CategoryID]