专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

access教程,一文学会access数据库

来源:小易整编  作者:小易  发布时间:2023-03-22 05:15
摘要:access教程,一文学会access数据库Access数据库简介Access是Microsoft公司推出的Office系列办公自动化软件的一个组件它是一个小型的数据库管理系统。它广泛应用于财务、行政、金融、统计和审计等众多领域。在1992...

查询语句中where和having的条件用法

where和having在查询语句中的作用都是条件限制

它们在查询语句中的位置是不一样的,而且限制的内容也不一样

1、所处位置不一样

在查询语句中where作为普通条件限制,它是在group by 之前

SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级

而having是一个过滤声明,是在查询返回结果集以后对查询结果进行的条件限制,位置是在group by 之后

SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级HAVING avg(语文分数)>=60;

2、后接内容不一样

在查询语句中where后面只能接普通条件,不能接聚合函数条件

所谓的聚合函数就是我们上一期提到的函数都可称为聚合函数

下面where后这样写是错误的:

SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE avg(语文分数)>=60//错误GROUP BY 班级

在查询语句中having作为查询结果返回后的条件限制,需要接返回结果后的条件

下面having后这样写是错误的,因为返回结果已经不存在“英语分数”这个字段了:

SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级HAVING 英语分数>=60;//错误

3、运行结果不一样

在where后接的条件表示要在英语成绩及格的学生中进行统计

统计这些学生的语文成绩怎么样

从下面的结果可以看到:

在一班英语及格的学生中语文成绩并不好平均成绩没有达到及格线

而其它班级英语和语文成绩都较好。

而having后加了个条件是avg(语文分数)>=60

这表示在统计结果中只显示平均成绩及格的班级,不及格的班级不显示

从结果看以看到:

下面这个结果较之前少了一个班级,就是一班,因为一班语文平均成绩没及格

同时查询多个表

下面这个数据库有两个成绩单

一个是期中考试

一个是期末考试

要看一看学生成绩有没有进步:

创建一个查询,并写上下面的查询语句:

SELECT A.学号, A.姓名, A.英语分数 AS 其中英语分, B.英语分数 AS 其末英语分FROM 基础信息 AS A, 期末考试 AS BWHERE A.学号=B.学号;

SELECT:后面接的就是我们想要的信息,如学号,姓名,期中英语分,期末英语分;

FROM:后面接的就是涉及的表名,这里面我们就涉及两个表,一个是“期中考试”,一个是“期末考试”;

WHERE:后面接的就是限定条件,因为我们查的是两个表,而这两个表必须有一个纽带能够联系到一起,而这个纽带就是学生的学号,因为每个学生的学号是唯一的,并没有重复,所以,我们查询两个表的时候必须找到一个纽带,这个纽带不能重复,否则我们无法准确的区分学生的成绩。

运行之后,得到下面的结果:

可以看到,赵风车的成绩下降的最快,期中考了70分,而期末考了35分

其他人的成绩有上升较快的,刘玲的成绩由30分上升到76分

这样每个学生的成绩就一目了然了,无论涉及几个表,只要找到这几个表共有的纽带,就可以查询每个表相对应的信息了。

简单的嵌套查询

先来看下面这个简单的查询:

SELECT 班级, avg(英语分数) AS 英语平均分, avg(语文分数) AS 语文平均分FROM 学生成绩表4GROUP BY 班级;

运行结果是:

下面这个就是嵌套查询了:要看一下哪个班级英语平均分和语文平均分都及格了?

SELECT *FROM (SELECT 班级, avg(英语分数) AS 英语平均分, avg(语文分数) AS 语文平均分 FROM 学生成绩表y GROUP BY 班级)  AS [%$##@_Alias]WHERE 英语平均分>=60 AND 语文平均分>=60;

运行结果是这样的,可以看到只显示两门成绩都及格的班级。:


本文地址:IT问答频道 https://www.hkm168.com/itwenda/936281_4.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!

共4页 1 2 3 4 当前是最后一页

IT问答
小编:小易整编
相关文章相关阅读
  • 数据库的substr函数用法是什么

    数据库的substr函数用法是什么

    数据库的substr函数用法:1、【substr(str,pos,len)】从pos开始的位置,截取len个字符;2、【substr(str,pos)】pos开始的位置,一直截取到最后。数据库的substr函数用法:1、SUBSTR(st...

  • 什么是数据库架构?数据库架构有几层

    什么是数据库架构?数据库架构有几层

    一:什么是数据库架构DBMS体系结构有助于数据库的设计,开发,实现和维护,数据库可以存储企业的关键信息,选择正确的数据库体系结构有助于快速安全地访问数据。二:数据库架构有几层1层架构最简单的数据库体系结构是1层,其中客户端,服务器和数据库都...

  • 关系型数据库系统事务的ACID特性是什么

    关系型数据库系统事务的ACID特性是什么

    关系型数据库系统事务的acid特性:1、原子性;事务里的所有操作要么全部做完,要么都不做。2、一致性;数据库要一直处于一致的状态。3、独立性;并发的事务之间不会互相影响。4、持久性;一旦事务提交后,它所做的修改将会永久的保存在数据库上。本教...

  • MySQL中如何快速更改数据库名称

    MySQL中如何快速更改数据库名称

    1、新建数据库centos_old.mysql>createdatabasecentos_old;登录后复制2、使用selectconcat拼成所有renametable的语句。mysql-uroot-p-e"s...

  • mysql怎么查询数据库版本

    mysql怎么查询数据库版本

    方法:1、利用“selectversion();”语句查询;2、利用“showvariableslike‘%version%’”语句查询;3、在mysql客户端中利用“status”命令查询;4、在终端中用“mysql-v”查询。...

  • 如何快速生成MySQL数据库关系图

    如何快速生成MySQL数据库关系图

    需求描述:在公司老旧系统里,数据库表很多,但是在设计之初并没有建立好关系图,导致新人刚入职,面对n个库,每个库几百张表,很不方便。例如:公司某一个系统的库有三百张表,在不熟悉项目的情况下,打开数据库看到一列列的表,很不清晰,对新入职同事很不...

  • 数据库三范式是什么

    数据库三范式是什么

    数据库三范式是:1、确保关系型数据库中的每个列都是不可再分的原子值,即每个列不能再分解出更小的数据项;2、在满足第一范式的基础上,消除非主键列对于主键的部分依赖;3、在满足第二范式的基础上,消除非主键列之间的传递依赖。数据库三范式是一种设计...

  • 如何建立数据库

    如何建立数据库

    数据是,学习编程的基本操作,下面为大家介绍一下mysql如何创建数据库。推荐教程:MySQL入门视频教程前提:电脑安装了mysql服务。如果不知道怎么安装mysql服务,可以参考www.php/mysql-tutorials-362227....

  • 周排行
  • 月排行
  • 年排行

精彩推荐