数据查询

数据查询

所谓查询,就是对存储于SQL Server中的数据的请求。分为两大类:一类主要用于数据检索的数据查询,另一类用于数据更新的行为查询。

使用字段列表指定输出字段

1、选取全部字段

若要选取全部字段作为SELECT查询的输出字段,要在SELECT子句中使用一个“*”就可以了,此时还必须要用FROM子句来指定作为查询的数据源(表或视图等)。

例:

select * from StuInfo;

2、选取部分字段

要从一个数据库表中选取部分字段作为SELECT查询的输出字段 ,可以在SELECT子句中给出包含所选取字段的一个列表,各个字段之间用逗号分隔,字段的顺序可以根据需要任意指定。

例:

select Stuname,Stusex FROM StuInfo;

3、设置字段别名

为了方便和实际需要,可以指定更容易理解的字段名来取代原来的字段名

语法格式:

  • 原字段名 AS字段别名;
  • 字段别名=原字段名;
  • 原字段名 字段别名;(最常用)

4、字段的计算

如果用户需要用这样的格式查看数据“学员姓名-性别”,查询语句如下:

使用选择关键字限制记录行数

5、使用ALL关键字返回全部记录

如果在SELECT语句中没有使用任何关键字,则默认使用ALL关键字

例:

select ALL StuID,Stuname,Stusex from StuInfo;

6、使用DISTINCT关键字过滤重复记录行

在字段列表前面加上关键字DISTINCT,就可以消除查询结果中的重复记录。

仅当所有字段列表的值都相同时,才会消除

例:

select DISTINCT StuID from StuInfo;

7、使用TOP关键字仅显示前面若干条记录

在使用SELECT 子句选取输出字段时,如果只需要用到所选的前n条记录,那么可以在字段前面使用TOP n,/这样可以节省服务器资源,使服务器运算效率更高。

如果在字段列表前面使用TOP n PERCENT,则在查询结果中显示前面占总记录数的百分比为n%的记录。

例:

---TOP n
select TOP 4 * from StuInfo;
---TOP n PERCENT
select TOP 40 PERCENT  from StuInfo;

8、对查询记录的选择与处理

对查询结果进行筛选

使用where 子句

(1)比较运算符(大小比较,包括>、<、>=、<=、<>、!>、!<)

(2)范围运算符(表达式值是否在指定的范围)

  1. between...and...
  2. not  between...and...

(3)列表运算符(判断表达式是否为列表中的指定项)

  1. IN(项1,项2....)IN关键字可以选择与列表中的任意值匹配的行
  2. NOT IN(项1,项2....)

(4)空值判断符(判断表达式是否为空)

  1. IS NULL
  2. IS NOT NULL

(5)逻辑运算符

  1. NOT :求反操作
  2. AND:连接多个条件,多个条件同时满足时才返回true,有一个条件不满足结果就是FALSE。
  3. OR:连接多个条件,多个条件中只要有一个返回true,结果就是true,如果多个条件返回的都是false,则结果才是false。

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

  1. LIKE
  2. NOT LIKE
LIKE关键字通配符含义
通配符 
%包含零个或更多字符的任意字符串
-任意字符串
[]指定范围(例如[a-f])或集合(例如[abcdef])或[1,3,5,7,8]内的任何单个字符
[^]不在指定范围(例如[^a-f])或集合(例如[^abcdef])内的任何单个字符

9、对查询结果排序

使用order by子句

当用户要对查询结果进行排序时就需要在SELECT语句中加ORDER BY子句,在ORDER BY子句中可以使用一个或多个排序要求,优先级次序从左到右。

排序的方向可以是升序或降序。ASCDESC用于指定排序方式。ASC指定按递增顺序DESC则按递减顺序,默认的排序方向为递增顺序。空值(NULL)将被处理为最小值。

例:

---查询语文成绩,并按照降序排列
select * from Stumarks where subject ='语文'order by desc;

使用order by子句对多列进行排序

---查询语文成绩,并按照降序排列
--成绩相同的按照学号降序排列
select * from StuMarks where Subject='语文' oreder by Score DESC,StuID DESC;

order by 子句与top 关键字一起使用

---查询Stumarks中“数学”成绩前三名的学生的数据
select top 3* from Stumarks where subject='数学' ORDER BY Score DESC;

10、对查询结果计算

(1)使用SUM函数计算字段的累加和

(2)使用AVG函数计算字段的平均值

(3)使用MAX和MIN函数计算字段的最大值和最小值

(4)使用COUNT函数统计记录行数

11、对查询结果分组

(1)使用GROUP BY子句

(2)使用HAVING 子句

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值