1 T-SQL中SELECT语法结构

  1. <SELECT statement> ::=
  2. [WITH <common_table_expression> [,...n]]
  3. <query_expression>
  4. [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] }
  5. [ ,...n ] ]
  6. [ <FOR Clause>]
  7. [ OPTION ( <query_hint> [ ,...n ] ) ]
  8. <query_expression> ::=
  9. { <query_specification> | ( <query_expression> ) }
  10. [ { UNION [ ALL ] | EXCEPT | INTERSECT }
  11. <query_specification> | ( <query_expression> ) [...n ] ]
  12. <query_specification> ::=
  13. SELECT [ ALL | DISTINCT ]
  14. [TOP ( expression ) [PERCENT] [ WITH TIES ] ]
  15. < select_list >
  16. [ INTO new_table ]
  17. [ FROM { <table_source> } [ ,...n ] ]
  18. [ WHERE <search_condition> ]
  19. [ <GROUP BY> ]
  20. [ HAVING < search_condition > ]

2 基本SELECT查询

  1. SELECT * FROM [dbo].[Product]

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

3 查询记录中指定字段

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

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

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

  1. SELECT
  2. [ProductID],
  3. [ProductName],
  4. [UnitPrice] * 2 AS DoubleUnitPrice
  5. FROM [dbo].[Product]

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

5 显示部分查询结果

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

  1. SELECT TOP [n | PERCENT] FROM table_name

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

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

6 带限制条件的查询

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

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

7 带AND的多条件查询

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

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

8 带OR的多条件查询

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

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

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

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

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

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

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

10 使用BETWEEN ... AND查询

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

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

  等价于:

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

11 对查询结果进行排序

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

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

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

12 使用GROUP BY聚合数据

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

Sql Server系列:Select基本语句的更多相关文章

  1. Sql Server系列:Insert语句

    1 INSERT语法 [ WITH <common_table_expression> [ ,...n ] ] INSERT { [ TOP ( expression ) [ PERCEN ...

  2. Sql Server系列:Update语句

    1 UPDATE语法结构 [ WITH <common_table_expression> [...n] ] UPDATE [ TOP ( expression ) [ PERCENT ] ...

  3. Sql Server系列:Delete语句

    数据的删除将删除表的部分或全部记录,删除时可以指定删除条件从而删除一条或多条记录.如果不指定删除条件,DELETE语句将删除表中全部的记录,清空数据表. 1 DELETE语法 [ WITH <c ...

  4. SQL Server中SELECT会真的阻塞SELECT吗?

    在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...

  5. SQL Server FOR XML PATH 语句的应用---列转行

    经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...

  6. SQL Server中的流控制语句

    begin···end 该语句定义sql代码块,通常在if和while语句中使用 declare @num int ; ; begin ; print 'hello word' end if···el ...

  7. SQL Server 2017 SELECT…INTO 创建的新表指定到文件组

    原文:SQL Server 2017 SELECT-INTO 创建的新表指定到文件组 SELECT-INTO 在 SQL Server 中也是常见的一个功能,过去用此方法创建的新表只能存储到默认的文件 ...

  8. 【SQL Server DBA】维护语句:删除并创建外键约束、获取建表语句

    原文:[SQL Server DBA]维护语句:删除并创建外键约束.获取建表语句 1.删除外键约束,建立外键约束 先建立3个表: /* drop table tb drop table tb_b dr ...

  9. SQL Server 系列文章快速导航(SWF版)

    一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面的技术文章,在2014年1月终于鼓起勇气申请了微软S ...

  10. PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法

    逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1. ...

随机推荐

  1. 历年NOIP水题泛做

    快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...

  2. 已知服务器ftp的账号密码,求解数据库表的内容

    一开始觉得这两个是完全不相干的东西,直到出现了这样一个问题,对方网站只有ftp的账号密码,并且能正常访问到代码.但是当需求了解注册人数的时候,后台没有显示,只能到数据库去找,这时怎么找呢? 原来是可以 ...

  3. Mac无法写入移动硬盘

    1.使用mac 磁盘工具,格式化移动硬盘 频繁穿插于mac于pc之间者,大批量拷贝大型文件者,请用exfat 首先,排除Fat32,虽然这是兼容性最好的文件格式,但一个不支持4g以上文件的格式(现在随 ...

  4. 统计学习方法 --- 感知机模型原理及c++实现

    参考博客 Liam Q博客 和李航的<统计学习方法> 感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而 ...

  5. WPF-禁止二次启动

    App.xaml.cs protected override void OnStartup(StartupEventArgs e) { //禁止二次启动 this.Startup += new Sta ...

  6. 怎么将java web 项目导入idea 中

    1.将 java web 项目导 入idea 中, 显示 然后进行 Configure 配置. 2. 点击 open module settings. 3. 4. 选择jar包. 5. 6. 配置to ...

  7. 解决 adb.exe 停止工作小续

    继adb 停止工作的问题之后,又碰见了adb 停止工作的问题. 在使用adb install app.apk 之后给出错误信息如下: * daemon not running. starting it ...

  8. 选择列表中除了第一个li的其他元素

    //选择div中除了第一个li的其他所以li元素 div li:not(:first-child){ }

  9. 【noip 2016】 蚯蚓(50分)(earthworm)

    50分小程序,写了2天- 题目在这里 一个单调队列,写的都是p=0的点,考试的时候要是弄到这些分的话--不说了-- 羡慕AC的神犇啊,54行的满分程序,而我-- #include <iostre ...

  10. #iOS问题记录#动态Html加载本地CSS和JS文件

    所谓动态Html,指代码中组合生成的html字符串: 若需要加载本地CSS,图片,JS文件,则, 1,需要文件的全路径: 2,需要"file:///"标志: 例如: //获取文件全 ...