############################################ 查询语句--SELECT ############################################

查询select: 1。单表查询 2。多表查询 3。嵌套查询

分类       1)单表查询

2)多表查询

A.连接查询

B.子查询

①一般子查询

②相关子查询

***************************************

SQL查询语句《一》:单表查询

1.查询全部记录:

select * from table_name

2.查询指定字段记录:

select 字段列表 from table_name

3.过滤相同记录:

select Distinct 字段列表 from table_name <SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。 使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 使用distinct会减慢查询速度,数量大的查询更明显>

4.带表达式的查询:

select s_name,year(s_birthday) as year from table_name

5.指定查询结果的查询

select top n * from table_name <n值在0--429494967295间>

select top n PERCENT * from table_name <n值在0--100间>

(返回前/后n行,前/后n%的数据)

6.指定查询路径的查询:

select * from database_name.dbo.table_name

形式:数据库名.数据库表拥有者.表名    (可以跨越数据库和使用者进行查询)

7.存储查询结果到另一个表

select 字段列表 into 新表名 from 表名

select sno,cno,degree into scorekkk from score

select sno,cno,degree into tempdb.#scorekkklll from score

<#为虚拟表,可一跨数据库创建!>

8.更改列表名显示的查询

select 字段名1 as ''A'',字段名2 as ''B'' from 表名

select "A"=字段名1,"B"=字段名2 from 表名

select 字段名1"A",字段名2"B" from 表名

9.条件查询<Where子句>

select 字段名列表 from 表名 where 条件表达式

条件表达式运算符:

比较运算符(=,<,<=,>,>=,!<,!>,!=,<>)

逻辑运算符(or,and,not)

范围说明(between and,not between and)

可选值列表(in,not in)

模式匹配(like,not like)

是否为空值(is null,is not null)

<注:字符型字段必须用单引号,数字型字段则不用;like和not like适合字符型字段查询。>

like 子句与通配符一起使用,

Like "字符串",字符串含通配符或空格 %,一个或多个任意字符;

_,一个任意字符;

[],方括号中的任意一个字符;

[^],任意一个在括号中没有的字符。

11.排序查询<Order by子句>

select 字段名列表 from 表名 [where 条件表达式] order by 字段名表达式 desc/asc

select * from Sclass order by cno asc,degree desc

<使用ORDER BY子句对查询返回的结果按一列或多列排序。

ORDER BY子句的语法格式为:ORDER BY {column_name [ASC|DESC]} [,…n]

其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按ntext、text和image的数据类型进行排序。>

12.分组查询<Group by子句>

select 字段名列表 from 表名 [where 条件表达式] group by 字段名

select 字段名列表 from 表名 [where 条件表达式] group by 字段名 Having <筛选表达式>

select cno,avg(degree) as chengji from score group by cno

select cno,avg(degree) as chengji from score group by cno Having avg(degree)>80

<字段名列表中包含聚合函数时,则计算每组的汇总值。

如果使用Group by子句,字段名列表中任一非聚合表达式内的所有列都必需包含在

Group by列表中,或者Group by表达式必须与选择列表表达式完全匹配。>

筛选查询<Having子句>

<Having子句对Group by子句分组后的结果进行筛选,看其是否满足条件。

故此Having只能配合group by子句使用。>

当Where子句,Group by子句,Having子句同时使用时,其顺序如下:

①执行Where子句,从表中选取行;

②由Group By分组;

③执行Having子句选取满足的分组条件。

聚合函数:使用聚合函数,实现数据统计。

AVG:计算平均数

Count(*):统计查询输出的记录总数

Count():统计指定列中选择的记录总数

Max:最大值

Min:最小值

Sum:计算总和

Stdev:计算统计标准偏差

Var:统计方差

13.汇总查询<Compute子句>

(1).compute:

Select 字段名列表 From 表名 [where 条件表达式] Compute 汇总表达式

Select cno,sno,degree From score Compute avg(degree)

<compute子句生成的汇总结果附加在结果集的后面,汇总表达式须用到聚合函数>

(2).compute by:

Select 字段名列表 from 表名

[where 条件表达式] order by 字段名 compute 汇总表达式 by 分类字段名

Select sno,cno,degree From sclass Order by cno compute Avg(degree) by cno

Select sno,cno,degree From score Order by cno Asc,degree Desc

compute avg(degree) by cno

<compute by子句根据by后的字段名进行分组,必须与order by子句一起使用,分类字段名必须与order by后的字段名一致。>

***************************************

简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件 等。

完整的Select 语句用法:

SELECT 字段列名

[INTO 新表名]

FROM 表 | 视图名

[WHERE 查询限定条件]

[GROUP BY 分组表达式]

[HAVING 分组条件]

[ORDER BY 次序表达式[ASC | DESC]]

(2)FROM子句

FROM子句指定SELECT语句查询及与查询相关的表或视图。

在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在 同名列,这时应使用对象名限定这些列所属的表或视图。

例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

SELECT username,citytable.cityid

FROM usertable,citytable

WHERE usertable.cityid=citytable.cityid

在FROM子句中可用以下两种格式为表或视图指定别名:

表名 as 别名

表名 别名

例如上面语句可用表的别名格式表示为:

SELECT username,b.cityid

FROM usertable a,citytable b

WHERE a.cityid=b.cityid SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。

例如:

SELECT a.au_fname+a.au_lname

FROM authors a,titleauthor ta

(SELECT title_id,title

FROM titles

WHERE ytd_sales>10000

)AS t

WHERE a.au_id=ta.au_id

AND ta.title_id=t.title_id

此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。

WHERE子句可包括各种条件运算符:

比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<

范围运算符(表达式值是否在指定的范围):BETWEEN…AND… NOT BETWEEN…AND…

列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……)

NOT IN (项1,项2……)

模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE

空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL

逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR

1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30

2、列表运算符例:country IN (''Germany'',''China'')

3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、

varchar、text、ntext、datetime和smalldatetime等类型查询。

可使用以下通配字符:

百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。

下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。

方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

例如:

限制以Publishing结尾,使用LIKE ''%Publishing''

限制以A开头:LIKE ''[A]%''

限制以A开头外:LIKE ''[^A]%''

4、空值判断符例WHERE age IS NULL

5、逻辑运算符:优先级为NOT、AND、OR

T_SQL查询语句(一): 单表查询的更多相关文章

  1. MySQL简单查询详解-单表查询

    MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...

  2. mysql查询操作之单表查询、多表查询、子查询

    一.单表查询 单表查询的完整语法: .完整语法(语法级别关键字的排列顺序如下) select distinct 字段1,字段2,字段3,... from 库名.表名 where 约束条件 group ...

  3. 不使用left-join等多表关联查询,只用单表查询和Java程序,简便实现“多表查询”效果

    上次我们提到,不使用left-loin关联查询,可能是为了提高效率或者配置缓存,也可以简化一下sql语句的编写.只写单表查询,sql真得太简单了.问题是,查询多个表的数据还是非常需要的. 因此,存在这 ...

  4. 2.1 Oracle之DML的SQL语句之单表查询以及函数

    1.SQL简介 对于不同的数据库来说,SQL语句是相通的,关系型数据库都以SQL语句为操作的标准,只是相应的数据库对应的函数不相同. SQL(Structured Query Language,结构化 ...

  5. MySQL常用查询命令(单表查询)

    查询语法如下: select... from... where... group by... (having)... order by...; 顺序是from (从指定表中) where (具体条件) ...

  6. 65、django之模型层(model)--添加、单表查询、修改基础

    上篇带大家简单做了一下图书表的创建.简单的查看和删除,今天会先简单介绍添加和修改,因为添加和修改与删除一样都很简单,本篇会相对多介绍一点单表查询,大家都知道数据库中查询是最重要的一部分,毕竟无论是修改 ...

  7. Day055--MySQL--外键的变种,表与表的关系,单表查询,多表查询, 内连接,左右连接,全外连接

    表和表的关系 ---- 外键的变种 * 一对多或多对一 多对多 一对一 参考 https://www.cnblogs.com/majj/p/9169416.html 如何找出两张表之间的关系 分析步骤 ...

  8. django之模型层(model)--添加、单表查询、修改基础

    上篇带大家简单做了一下图书表的创建.简单的查看和删除,今天会先简单介绍添加和修改,因为添加和修改与删除一样都很简单,本篇会相对多介绍一点单表查询,大家都知道数据库中查询是最重要的一部分,毕竟无论是修改 ...

  9. sql多表查询(单表查询略过)

    表library: 表borrow: 表reader: 1.等值连接:(常用) 原理:将多张表组合成一个逻辑大表,即字段相加记录相乘(笛卡尔积). 语法:select * from 表A,表B whe ...

  10. 查询数据SELECT 之单表查询

    一.单表查询的语法与关键字的执行优先级""" # 单表查询# 单标查询完整与法:# select distinct(关键字,代表查询的意思,后面跟)字段1,字段2...( ...

随机推荐

  1. IBM、京东、携程、eBay 的 OpenStack 云

    我所了解的 IBM.京东.携程.eBay 的 OpenStack 云 参加过几次 OpenStack meetup 活动,听过这几家公司的Architect 讲他们公司的 OpenStack产品.本文 ...

  2. ADS-B 雷达 显示终端5.8

    改动日志 1  更新背景地图. 增加了全国范围内的国际航路.区域航路信息,全部航路信息来自网络及中国民用航空局公布的公开资料:航路採用深蓝色画笔绘制航路中包括有航路代码.高度及报告点信息.代码及报告点 ...

  3. R - 变化plot字形,嵌入字体以pdf

    近期使用R绘图遇到两个问题 1. 使用不同的字体 2. 保存 plot 至 pdf 当字体嵌入pdf (embed the font) 使用extrafont和Ghostscript能够解决这两个问题 ...

  4. 安卓WindowManager注入事件如何跳出进程间安全限制

    在分析monkey源码的时候有些背景知识没有搞清楚,比如在看到monkey是使用windowmanager的injectKeyEvent方法注入事件的时候,心里就打了个疙瘩,这种方式不是只能在当前应用 ...

  5. IE8下div中2个button仅仅显示一个

    IE8下div中2个button仅仅显示一个,代码例如以下: <div id="adviceType" style="display: none;" &g ...

  6. Mvc 下载文件

    你如何将文件传送给用户取决于你最开始如何存储它,如果你将文件存入数据库,你会用流的方式将文件返还给用户,如果你将文件存在硬盘中,你只需要提供一个超链接即可,或者也可以以流的方式.每当你需要以流的方式将 ...

  7. C# 在本地创建文件夹及子文件夹

    string dict = @"d:\估价报告\"; if (!Directory.Exists(dict)) { Directory.CreateDirectory(dict); ...

  8. MySQL之数据库结构优化

    1.选择合适的数据类型 一.选择能够存下数据类型最小的数据类型 二.可以使用简单的数据类型.int  要比varchar在MySQL处理上简单 三.尽可能的使用not null  定义字段 四.尽量少 ...

  9. 如何使用OPENQUERY访问另一个SQL Server

    原文:如何使用OPENQUERY访问另一个SQL Server 在项目中,经常会遇到一个数据库访问另一个数据库,[CNVFERPDB]为服务器名,[CE3]为库名 SELECT Dtl.* FROM ...

  10. 你不知道的 页面编码,浏览器选择编码,get,post各种乱码由来

    原文:你不知道的 页面编码,浏览器选择编码,get,post各种乱码由来 asp.net页面编码和浏览器的选择编码 每个asp.net的朋友都知道,在新版本的visual studio,在没有任何设置 ...