首页 / MYSQL / 第五章数据查询(二)
第五章数据查询(二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了第五章数据查询(二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3946字,纯文字阅读大概需要6分钟。
内容图文
![第五章数据查询(二)](/upload/InfoBanner/zyjiaocheng/545/a15231a232e748a0b252617097357525.jpg)
5.1 模糊查询 模糊查询提取的数据不一定的确切的,查询者对查询条件也是模糊的、大概的、不特别明确的。例如,只查询张姓学员的信息、只查询分数在60-83分之间的考试成绩、或者只查询北京上海广州地区的学员,这种查询不是指定某个人的姓名、一个具体的分数
5.1 模糊查询
模糊查询提取的数据不一定的确切的,查询者对查询条件也是模糊的、大概的、不特别明确的。例如,只查询张姓学员的信息、只查询分数在60-83分之间的考试成绩、或者只查询北京上海广州地区的学员,这种查询不是指定某个人的姓名、一个具体的分数或者某个固定的地区,因此属于模糊查询。
模糊查询可以使用我们前面已经介绍过的Like、通配符来进行。上一章讲述过的Is Null查询严格说也是一种模糊查询,模糊查询还有基于范围内的查询和在某些列举值内的查询。
5.1.1 使用Like进行模糊查询
在前面我们已经介绍过使用Like来编写约束,Like运算符用于匹配字符串或字符串的一部分(称为子串)。由于该运算符只用于字符串,所以仅与char或varchar数据类型联合使用。
在数据更新、删除或者查询的时候,依然可以使用Like关键字来进行匹配查找,例如,查找姓张的学员:
Select * from Students Where Sname like '张%'
或者查询不是八月份发行的A卡或者C卡:
Select * from Card where ID Like '00[^8]%[A,C]%'
5.1.2 使用BetWeen在某个范围内进行查询
使用关键字Between可以查找那些介于两个已知值之间的一组未知值。要实现这种查找,必须知道开始查找的初值和终值,这个最大值和最小值用单词And分开,例如:
Select * from Score where Score Berween 60 and 80
此外,Between 查询在日期范围的时候使用得比较多。例如,查询不在1992年8月1号到1993年8月1号之间订购的读书列表:
Select * from Sales Where ord_date not Between '1992-8-1' and '1993-8-1'
5.1.3 使用In在列举值内进行查询
查询的值是指定的某些值之一,可以使用带列举值的In关键字来进行查询。将列举值放在圆括号里,用逗号分开,例如查询北京、广州或者上海的学员姓名:
Select Sname as 学员姓名 from Students Where Saddress in ('北京','广州','上海') Order by Saddress
还可以把In关键字和Not关键字合起来使用,这样可以得到所有不匹配列举值的行。
5.2 SQL Server 中的聚合函数
在查询中还会经常碰到的要求是取某些列的最大值、最小值、平均值等信息,有时候还需要计算出究竟查询到多少行数据项。这个时候,查询的“统计数据”是用户比较关心的,SQL Server 提供了“聚合函数”,聚合函数能够基于列进行计算,并返回单个值。
SQL Server 提供了以下几种聚合函数。
1. Sum
Sum返回表达式中所有数值的总和,Sum只能用于数字类型的列,不能够汇总字符、日期等其他数据类型。要得到商务付款的总数,可执行以下查询:
Select Sum(ytd_sales) From titles where type = 'business'
注意这种查询只返回一个数值,因此,不能够直接与可能返回多行的列一起使用来进行查询,例如:
Select Sum(ytd_sales) , Price from titles where type = 'business'
将报告错误信息。但是,在一个查询中可以同时使用多个聚合函数。
2. Avg
Avg函数返回表达式中所有数值的平均值,香港服务器租用,Avg函数也只能用于数字类型的列。例如,成绩表中存在的数据项。
要查询及格线以上的学员的平均成绩,语句如下:
Select Avg(Score) as 平均成绩 from Score Where Score >= 60
3. Max 和 Min
Max返回表达式中的最大值,Min返回表达式中的最小值,它们都可以用于数字型、字符型以及日期/时间类型的列。
例如,查询平均成绩、最高分、最低分的语句如下:
Select Avg(Score) as 平均成绩 , Max(Score) as 最高分, Min(Score) as 最低分 from Score Where Score >= 60
4. Count
Count 返回提供的表达式中非空值的计数,Count可以用于数字和字符类型的列。
另外,也可以使用星号(*)作为Count的表达式,使用星号可以不必指定特定的列而计算所有的行数。
例如,查询及格人数的语句如下:
Select Count(*) as 及格人数 From Score where Score >= 60
5.3 分组查询
5.3.1 使用 Group By 进行分组查询
我们来看一下学员成绩表,成绩表中存储了所有课程的成绩。在这种情况下,可能就需要统计不同课程的平均成绩,也就是说,需要对不同的成绩首先按照课程来进行分组,分组以后再进行聚合计算,得到累计信息。
这种情况应用很普遍,例如一个早餐店,早晨销售包子、油条、米粉等,中午的时候,就需要分类统计包子的销售金额、油条的销售金额、米粉的销售金额,这个时候就需要首先分类,然后在这个类别的基础上分别进行汇总和统计输出。
再具体点,假设学员成绩表中有以下数据。
此时,要统计不同课程的平均分数。首先把相同的CourseID都分为一组,然后把这些相同组对应的分数值再使用前面的聚合函数取平均值(最大值、最小值或者参考人数统计)。
内容总结
以上是互联网集市为您收集整理的第五章数据查询(二)全部内容,希望文章能够帮你解决第五章数据查询(二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。