首页 > SQL查询语句 select 详解

SQL查询语句 select 详解

查询select: 1。单表查询 2。多表查询 3。嵌套查询分类
1)单表查询
2)多表查询
A.连接查询
B.子查询
①一般子查询 ②相关子查询***************************************SQL查询语句《一》:单表查询1.查询全部记录:select * from table_name2.查询指定字段记录:select 字段列表 from table_name3.过滤相同记录:select Distinct 字段列表 from table_name<SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。
使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
使用distinct会减慢查询速度,数量大的查询更明显>4.带表达式的查询:select s_name,year(s_birthday) as year from table_name5.指定查询结果的查询
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.cityidSELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如:
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子句可包括各种条件运算符:
比较运算符(大小比较):>>==<<=<>!>!<范围运算符(表达式值是否在指定的范围):BETWEENANDNOT BETWEENAND…
列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……) NOT IN (项1,项2……)
模式匹配符(判断值是否与指定的字符通配格式相符):LIKENOT LIKE
空值判断符(判断表达式是否为空):IS NULLNOT IS NULL逻辑运算符(用于多条件的逻辑连接):NOTANDOR
1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30
2、列表运算符例:country IN (''Germany'',''China'')
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchartextntext、datetime和smalldatetime等类型查询。可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。例如:
限制以Publishing结尾,使用LIKE ''%Publishing''
限制以A开头:LIKE ''[A]%''
限制以A开头外:LIKE ''[^A]%''4、空值判断符例WHERE age IS NULL5、逻辑运算符:优先级为NOT、ANDOR

 

转载于:https://www.cnblogs.com/ruishuang208/archive/2013/05/11/3072672.html

更多相关:

  • 关注我的头条号,获取更多运维相关知识。你想了解哪方面的运维知识,请评论区告诉我,我会尽快更新~MySQL 数据库,基本上运维都会接触到,而对于数据库的性能优化,想必是大家比较关注的,下面分享一些调优技巧。先决条件安装 MySQL,版本大于 5.7有部分数据操作系统、数据库管理员权限MySQL 系统性能优化在系统层面,调整硬件和软件选项...

  • spring data jpa提供了多种查询方式,如下:方法名称查询继承Repository接口测试代码方法名称中支持的关键字(官方文档提供)使用JPA命名查询在User实体中定义jpql(类似于hql)jpql(百度百科)继承JpaRepository接口测试使用@Query查询和命名查询不同的是,将jpql写到了 dao 方法上,...

  • 转自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html   对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题,本文只谈优化查询时如何看懂SqlServer查询计划。由于我对SqlServer的认识...

  • 一.实现基础功能之一(记账)   一个记账本最基础之一的功能就是记账,所以也是首先要解决的问题,我选择了上学期使用的MySQL数据库来对账本进行存储。   我选择记账的方法是分开记账,就是支出放在一个表,收入放在一个表,这样在数据库方面会比较的直观的看到,但是在显示的时候就会产生部美观的问题,就是支出和收入都是分开来的,没有办法按照时...

  • 在Navicat中,我们选中一个表,双击打开,这是如果要新建查询这个表的sql语句,可以直接用快捷键  ctrl+q  会自动打开查询窗口,并直接写好 sql:select * from (当前打开的表名) 我们直接在后面补全查询条件即可,非常方便。 转载于:https://www.cnblogs.com/libin6505/...

  • Math.max(...arr);//返回数组最大值 Math.min(...arr);//返回数组最小值Math.max(...objArr.map(o => o.最值字段名));//返回对象数组最大值 Math.min(...objArr.map(o => o.最值字段名));//返回对象数组最小值objArr.sort((pre...

  • 有关函数的官方文档:https://onlinehelp.tableau.com/current/pro/desktop/zh-cn/functions_functions_string.htm 注意事项: 1.记录数:是Tableau自动给每行观测值赋值为1。 2.维度的字段,是不能用于计算的,若是要用于计算,则需要转成度量。 3...

  • 1:删除   连接数据库:新建连接数据库,或者应用转换中已经定义好的数据库。 目标模式:指什么现在还不明确,集群模式?子服务器模式?--要写入数据的表的Schema名称。允许表名中包含“.”是很重要的。  目标表:指定删除记录所对应的表。   提交记录数量:提交之前要改变(删除)的行数   表字段:来源于目标表中的字段。   流字段:...

  • 前言: 前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上。 1、Excel配置项 起始行索引、列头跨行数: 对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱)比如模板里前面是一些说明,中间是列头,下面还带有数据和说明格式。通过配置起始行索引,以及列头跨行数(0或1都代表一行),则可以解决此类...

  • 1.查询频繁 2.区分度高 例如:数据库表字段:sex 存储:男女,区分度就不高。 3.长度小 索引的长度直接影响索引文件的大小,影响增删改的速度,并间接影响查询速度。 4.尽可能覆盖常用字段   转载于:https://www.cnblogs.com/mingliangzhu/p/6972045.html...