zoukankan      html  css  js  c++  java
  • Sql Server系列:Select基本语句

    1 T-SQL中SELECT语法结构

    <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'

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

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

    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]
  • 相关阅读:
    多表联合查询,利用 concat 模糊搜索
    order by 中利用 case when 排序
    Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
    ASP.NET Core 2.2 基础知识(十八) 托管和部署 概述
    ASP.NET Core 2.2 基础知识(十七) SignalR 一个极其简陋的聊天室
    ASP.NET Core 2.2 基础知识(十六) SignalR 概述
    ASP.NET Core 2.2 基础知识(十五) Swagger
    ASP.NET Core 2.2 基础知识(十四) WebAPI Action返回类型(未完待续)
    linux磁盘管理 磁盘查看操作
    linux磁盘管理 文件挂载
  • 原文地址:https://www.cnblogs.com/libingql/p/4118252.html
Copyright © 2011-2022 走看看