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]

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. 分布式大数据高并发的web开发框架

    一.引言 通常我们认为静态网页html的网站速度是最快的,但是自从有了动态网页之后,很多交互数据都从数据库查询而来,数据也是经常变化的,除了一些新闻资讯类的网站,使用html静态化来提高访问速度是不太 ...

  2. 面向对象课后深入学习(C++ 类的静态成员详细讲解)

    今天在刚申请了博客,一下午都在写那个随笔,所以说好的来看c++的也放在了最后,下星期就考试了,这个类的静态成员是我不是很懂的,在网上 看到一片很详细的博客考下来回去慢慢看. 在C++中,静态成员是属于 ...

  3. js实现阶乘

    //while循环实现function calNum(n) { var product = 1; while(n > 1){//1*5*4*3*2,1*n*(n-1)*(n-2)*...*2 p ...

  4. 使用IHTMLDocument2解决弹出"为了让该网站给你提供个人化信息,是否允许在你计算机放置cookie?"

    mshtml可以说是一个不错的解析html利器,对于像我这样一直都是不用webbrowser,直接用socket或者WebRequest进行HTTP通讯 然后再用IHTMLDocument2.writ ...

  5. 案例1.用Ajax实现用户名的校验

    用Ajax实现用户名的校验 java的验证类 public class UserDao { public boolean checkUserName(String name) { //这里的name是 ...

  6. IIS 连接 oracle报Oracle.DataAccess版本错误解决办法

    通过IIS连接oracle时报“Could not load file or assembly 'Oracle.DataAccess, Version=2.112.3.0, Culture=neutr ...

  7. 通读SDWebImage①--总体梳理、下载和缓存

    本文目录 下载操作SDWebImageDownloaderOptions和下载过程实现 下载管理SDWebImageDownloader 缓存SDImageCache SDWebImageManage ...

  8. (转)win7 64 安装mysql-python:_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

    原文地址:http://www.cnblogs.com/fnng/p/4115607.html 作者:虫师 今天想在在win7 64位环境下使用python 操作mysql 在安装MySQL-pyth ...

  9. 转载:Hadoop排序工具用法小结

    本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...

  10. bzoj1510: [POI2006]Kra-The Disks(单调栈)

    这道题可以O(n)解决,用二分还更慢一点 维护一个单调栈,模拟掉盘子的过程就行了 #include<stdio.h> #include<string.h> #include&l ...