T-SQL查询语句(一):单表查询
Posted on 2008-10-07 19:54 罗一恒阅读(531) 评论(0)编辑收藏
############################################
查询语句--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
使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。使用distinct会减慢查询速度,数量大的查询更明显>4.带表达式的查询:select s_name,year(s_birthday) as year from table_name5.指定查询结果的查询select top n * from table_name select top n PERCENT * from table_name (返回前/后n行,前/后n%的数据)6.指定查询路径的查询:select * from database_name.dbo.table_name形式:数据库名.数据库表拥有者.表名(可以跨越数据库和使用者进行查询)7.存储查询结果到另一个表select 字段列表into 新表名from 表名select sno,cno,degree into scorekkk from scoreselect 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.条件查询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.排序查询select 字段名列表from 表名[where 条件表达式] order by 字段名表达式desc/ascselect * 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.分组查询select 字段名列表from 表名[where 条件表达式] group by 字段名select 字段名列表from 表名[where 条件表达式] group by 字段名Having <筛选表达式>select cno,avg(degree) as chengji from score group by cnoselect cno,avg(degree) as chengji from score group by cno Having avg(degree)>80 <字段名列表中包含聚合函数时,则计算每组的汇总值。如果使用Group by子句,字段名列表中任一非聚合表达式内的所有列都必需包含在Group by列表中,或者Group by表达式必须与选择列表表达式完全匹配。>筛选查询故此Having只能配合group by子句使用。>当Where子句,Group by子句,Having子句同时使用时,其顺序如下:①执行Where子句,从表中选取行;②由Group By分组;③执行Having子句选取满足的分组条件。聚合函数:使用聚合函数,实现数据统计。AVG:计算平均数Count(*):统计查询输出的记录总数Count():统计指定列中选择的记录总数Max:最大值Min:最小值Sum:计算总和Stdev:计算统计标准偏差Var:统计方差
使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
使用distinct会减慢查询速度,数量大的查询更明显>
4.带表达式的查询:select s_name,year(s_birthday) as year from table_name
5.指定查询结果的查询
select top n * from table_name
select top n PERCENT * from table_name
(返回前/后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.条件查询
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.排序查询
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.分组查询
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只能配合group by子句使用。>当Where子句,Group by子句,Having子句同时使用时,其顺序如下:①执行Where子句,从表中选取行;②由Group By分组;③执行Having子句选取满足的分组条件。聚合函数:使用聚合函数,实现数据统计。AVG:计算平均数Count(*):统计查询输出的记录总数Count():统计指定列中选择的记录总数Max:最大值Min:最小值Sum:计算总和Stdev:计算统计标准偏差Var:统计方差
故此Having只能配合group by子句使用。>
当Where子句,Group by子句,Having子句同时使用时,其顺序如下:
①执行Where子句,从表中选取行;
②由Group By分组;
③执行Having子句选取满足的分组条件。
聚合函数:使用聚合函数,实现数据统计。
AVG:计算平均数
Count(*):统计查询输出的记录总数
Count():统计指定列中选择的记录总数
Max:最大值
Min:最小值
Sum:计算总和
Stdev:计算统计标准偏差
Var:统计方差