使用T-SQL语句操作数据表-查询数据
查询(select)的基本格式:
select <列名> from <表名> [where <查询限定条件>]
解释:
select 查询的命令体
列名:要查询的列,多个列用逗号,隔开 星号(*)代表所有列
where:是选填的,不填查询的结果是整个列的数据
例子:
select 成绩 from 成绩表 where 姓名='张三'
含义:查询成绩表中张三的成绩,只显示张三的分数。如果不加where ,则显示成绩表中成绩列所有值
在 SQL server 中,select语句的语法:
select <列名> [into 新表名] from <表名>
[where 查询条件] [group by 分组条件] [having 查询条件] [order by 排序条件 [asc | desc ] ]
解释:
into:可选参数,用于把查询内容保存到新表中,不用再数据库中新建表。
where的查询条件字段由条件表达式或逻辑表达式。
group by:可选参数,指定查询结果的分组条件,通常是列名,但不能是别名。
having:可选参数,指定分组搜索条件,通常与group by字句一起使用。
order by:可选参数,指定查询结果的排序方式。排序条件 asc表示升序,desc表示降序,默认排序是asc升序。
各种查询例子:
1.查询成绩表中所有列。
select * from 成绩表
2.查询成绩表中姓名,成绩列内容。
select 姓名,成绩 from 成绩表
3.查询成绩表中张三的成绩,结果显示姓名和成绩
select 姓名,成绩 from 成绩表 where 姓名='张三'
4.查询成绩表中成绩在90~100之间所有人员成绩。
select * from 成绩表 where 成绩 between 90 and 100
5.查询成绩表中成绩为80,90,95分的所有信息
select * from 成绩表 where 成绩 in (80,90,95)
6.查询成绩表中姓张的学生所有信息。
select * from 成绩表 where 姓名 like '张%'
7.查询成绩表中1班张三的所有信息。
select * from 成绩表 where 姓名='张三' and 班级=1
8.查询成绩表中备注不为空的人的所有信息
select * from 成绩表 where 备注 is not null
9.使用top关键字限制查询返回的行数, 查询成绩表中前10行数据。
select top 10 * from 成绩表
10.改变查询结果名称:查询成绩表中姓名和成绩两列数据 列名显示成英文的name,grade
select 姓名 as name,成绩 as grade from 成绩表
11.查询成绩表中所有人的总成绩,列名显示为'总成绩'。
select sum(成绩) as 总成绩 from 成绩表
注:sum是求和函数。还可以省略as, 还可以写成 select 总成绩=sum(成绩) from 成绩表
12.查询成绩表中所有信息,按照成绩从高到低显示结果。
select * from 成绩表 order by 成绩 desc
13.查询成绩表中所有人的平均成绩
select avg(成绩) as 平均成绩 from 成绩表
注:avg是求平均值函数。
14.查询成绩表中的最高分(max)和最低分(min)
select max(成绩) as 最高分,min(成绩) as 最低分 from 成绩表
15.查询成绩表中的所有行数。
select count(*) 总行数 from 成绩表
注:count是统计函数,用于返回表达式中非空值的计数,使用*可以不必指定特定列而计算所有行数。
16.查询成绩表中每个班级的总成绩。
select 班级,sum(成绩) as 总成绩 from 成绩表 group by 班级
17.查询成绩表中总成绩大于200的班级。
select 班级,sum(成绩) as 总成绩 from 成绩表 group by 班级 having sum(成绩)>200
注:where 后边不能接函数, having 可以添加函数。
18.将成绩表中的所有数据插入新表"成绩表副本"
select * into 成绩表副本 from 成绩表
19.将成绩表中的1班成绩插入新表"一班成绩表"
select * into 一班成绩表 from 成绩表 where 班级=1
注:插入的新表,之前数据库不能存在该表。