实验数据查询

数据查询

一、实验目的

  1. 掌握使用SQL的SELECT语句进行基本查询的方法。
  2. 掌握使用SELECT语句进行条件查询的方法。
  3. 掌握SELECT语句的GROUP BY、ORDER BY以及UNION子句的作用和使用方法。
  4. 掌握嵌套查询的方法。
  5. 掌握连接查询的操作方法。
    二、实验内容
  6. SQL的SELECT语句进行基本查询的方法。
  7. SELECT语句进行条件查询的方法。
  8. SELECT语句的GROUP BY、ORDER BY以及UNION子句的作用和使用方法。
  9. SELECT嵌套查询的方法。
  10. SELECT连接查询的操作方法。
    三、实验步骤
  11. 在studentsdb数据库中使用SELECT语句进行基本查询。
    (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。
    SELECT 学号,姓名,出生日期
    from student_info
    在这里插入图片描述

(2)查询student_info表学号为 0002的学生的姓名和家庭住址。
SELECT 姓名,家庭住址
from student_info
WHERE 学号=0002
在这里插入图片描述

(3)查询student_info表所有出生日期在95年以后的女同学的姓名和出生日期。
SELECT 姓名,出生日期
from student_info
WHERE 出生日期>=‘1995-01-01’ AND 性别=‘女’
在这里插入图片描述

  1. 使用select语句进行条件查询。
    (1)在grade表中查询分数在70-80范围内的学生的学号、课程编号和成绩。
    SELECT 学号,课程编号,分数
    from grade
    WHERE 分数 BETWEEN 70 AND 80
    在这里插入图片描述

(2)在grade表中查询课程编号为0002的学生的平均成绩。
SELECT AVG(分数) AS 平均成绩
From grade
WHERE 课程编号=‘0002’
在这里插入图片描述

(3)在grade表中查询选修课程编号为0003的人数和该课程有成绩的人数。
SELECT count() 人数
from grade
WHERE 课程编号=‘0003’
SELECT count(
) 人数
from grade
WHERE 课程编号=‘0003’ AND 分数>0
在这里插入图片描述

(4)查询student_info的姓名和出生日期,查询结果按出生日期从大到小排序。
SELECT 姓名,出生日期
from student_info
ORDER BY 出生日期 desc
在这里插入图片描述

(5)查询所有姓名“张”的学生的学号和姓名。
SELECT 学号,姓名
from student_info
WHERE 姓名 LIKE ‘张%’
在这里插入图片描述

3.对student_info表,查询学生的学号、姓名、性别、出生日期及家庭住址,查询结果先按照性别的由小到大排序,性别相同的再按学号由大到小排序。
SELECT 学号,姓名,性别,出生日期,家庭住址
from student_info
ORDER BY 性别 asc,学号 desc
在这里插入图片描述

4.使用GROUP BY子句查询grade表中各个学生的平均成绩。
SELECT 学号,AVG(分数) AS 平均成绩
from grade
GROUP BY 学号
在这里插入图片描述

5.使用UNION运算符针student_info表中姓“刘”的学生的学号、姓名与姓“张”的学生的学号、姓名返回在一个表中。
SELECT 学号,姓名
from student_info
WHERE 姓名=‘刘%’ UNION
SELECT 学号,姓名
from student_info
WHERE 姓名=‘张%’
在这里插入图片描述

  1. 嵌套查询
    (1)在student_info表中查找与“刘东阳”性别相同的所有学生的姓名、出生日期。
    SELECT 姓名,出生日期
    from student_info
    WHERE 性别=(SELECT 性别 FROM student_info WHERE 姓名=‘刘东阳’)
    在这里插入图片描述

(2)使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。
SELECT a.学号,姓名,性别,课程编号
from student_info a, grade b
WHERE a.学号=b.学号 AND 课程编号 IN (‘0002’,‘0005’)
在这里插入图片描述

(3)使用ANY子查询查找学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。
SELECT 学号,课程编号,分数
from grade
WHERE 学号=‘0001’ AND 分数>ANY(SELECT 分数 FROM grade WHERE 学号=‘0002’)
在这里插入图片描述

(4)使用ALL子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。
SELECT 学号,课程编号,分数
from grade
WHERE 学号=‘0001’ AND 分数>ALL(SELECT 分数 FROM grade WHERE 学号=‘0002’)
在这里插入图片描述

  1. 连接查询
    (1)查询分数在80-90范围内的学生的学号、姓名、分数。
    SELECT s.学号,s.姓名,分数
    from student_info s, grade g
    WHERE s.学号=g.学号 AND g.分数 BETWEEN 80 AND 90
    在这里插入图片描述

(2)使用INNER JOIN连接方式查询学习“数据库原理及应用”课程的学生学号、姓名、分数。
SELECT s.学号,s.姓名,课程名称,分数
From student_info s
INNER JOIN grade g ON g.学号=s.学号
I NNER JOIN curriculum c ON g.课程编号=c.课程编号
WHERE c.课程名称=‘数据库原理及应用’
在这里插入图片描述

(3)查询每个学生所选课程的最高成绩,要求列出学号、姓名、最高成绩。
SELECT s.学号,s.姓名,课程编号,分数
from student_info s
LEFT JOIN(SELECT a.学号,课程编号,分数 FROM grade a,
(SELECT 学号,MAX(分数)最高分 FROM grade g GROUP BY 学号)b
WHERE a.学号=b.学号 AND a.分数=b.最高分)c ON s.学号=c.学号
在这里插入图片描述

(4)使用左外连接查询每个学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。
SELECT s.学号,s.姓名,SUM(分数)
from student_info s
LEFT JOIN grade g ON s.学号=g.学号
LEFT JOIN curriculum c ON g.课程编号=c.课程编号
GROUP BY s.学号,s.姓名
在这里插入图片描述

(5)为grade表添加数据行:学号为0004、课程编号为0006、分数为76。使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。
INSERT INTO GRADE VALUES(‘0004’,‘0006’,76);
SELECT GRADE.课程编号,课程名称,COUNT(学号) AS 选修人数 FROM CURRICULUM
RIGHT OUTER JOIN GRADE ON GRADE.课程编号=CURRICULUM.课程编号
GROUP BY 课程编号;
在这里插入图片描述

四、实验思考

  1. 查询所有没有选修课程的学生的学号、姓名。
    SELECT 学号,姓名
    FROM student_info
    WHERE(学号 NOT IN (SELECT 学号 FROM grade))
    在这里插入图片描述

2.查询选修课程的人数。
SELECT COUNT(DISTINCT 学号)
FROM student_info;
在这里插入图片描述

3.查询选课人数大于等于3人的课程编号、课程名称、人数。
SELECT 课程编号,课程名称,COUNT(课程编号)AS 人数
FROM curriculum
GROUP BY 课程编号,课程名称
HAVING COUNT(*)>=3;
在这里插入图片描述

  1. 在查询的FROM子句中实现表与表之间的连接有哪几种方式?对应的关键字分别是什么?
    3种
    内连接 inner outer join
    左连接 left outer join
    右连接 right outer join
    5、LIKE的通配符有哪些?分别代表什么含义?
    %任意多个字符
    _单个字符
    6、知道学生的出生日期,如何求出其年龄?
    YEAR(CURDDATE)-YEAR(sbirthday)
    7、IS能用“=”来代替吗?
    IS不能用“=”来代替。
    8、聚集函数能否直接使用在SELECT子句、HAVING子句、WHERE子句、GROUP BY子句中?
    聚集函数可作为列标识符出现在SELECT子句的目标列、HAVING子句的条件中或ORDER BY子句中。
    9、WHERE子句与HAVING子句有何不同?
    WHERE条件与HAVING条件的区别在于作用对象的不同。HAVING条件作用于结果组,选择满足条件的结果组;而WHERE条件作用于被查询的表,从中选择满足条件的记录。
    10、指定一个较短的别名有什么好处?
    让更长的表名看起来更加简介,或者让显示时名字变成自定义的名称,易懂。
    11、 内连接与外连接有什么区别?
    内连接:进行连接的两个表对应的相匹配的字段完全相同的连接。
    左外连接:两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。
    右外连接:两个表进行右连接时会返回右边表中的所有的行和左边表中与之相匹配的列值没有相匹配的用空值代替。
    12、“=”与IN在什么情况下作用相同?
    IN里面的数据只有一个时。
    13、子查询一般分为几种?
    子查询一般分两种:嵌套子查询和相关子查询。
    14、 相关子查询的执行过程是什么?
    A.子查询为外部查询的每一个元祖(行)执行一次,外部查询将子查询引用列的值传给子查询;
    B.如果子查询的任何行与其匹配,外部查询则取此次行放入结果;
    C.再回到A,直到处理完外部表的每一行。

五、实验总结
1、收获
在单表查询中,查询只涉及一个表的查询;在连接查询中,查询同时涉及两以上的表,包含等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询。
2、存在的问题
在单表查询中,在去掉表的重复行时,未用指定的DISTINCT关键字。
在连接查询中,未分清表与表的联系。
忘记如何插入;使用左右链接时总出现错误

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/323613.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java SE入门及基础(14)

二重循环 1. 什么是二重循环 二重循环就是一个循环结构中又包含另外一个循环结构 while ( 外层循环条件 ){ //外层循环操作 while ( 内层循环条件 ){ //内层循环操作 } //外层循环操作 } while ( 外层循环条件 ){ //外层循环操作 for ( 循环变量初始化 ; 内层循环条…

闪存的基础知识1-Vt的编码

系列文章目录 目录 前言 一、SLC的编码 二、使SLC的编码 三、格雷码的介绍 1.定义: 2.举例 总结 前言 本节主要介绍闪存的一些编码规则 一、SLC的编码 对于SLC来说,可以定义编程态为0、擦除态为1。 二、使SLC的编码 对MLC来说,因为有四个状…

SDK游戏盾是什么?,sdk游戏盾有什么作用

在现今的游戏市场,游戏保护成为了每个游戏开发者都不能忽视的重要环节。恶意破解、作弊和盗版等问题严重影响了游戏的安全性和商业价值。而如何保护自己的游戏免受这些威胁,已经成为游戏开发者们面临的重大挑战。好在SDK游戏盾,它如同保护游戏…

JVM 一些重要配置参数

1、内存配置参数 -Xmx<size>&#xff1a;设置Java堆的最大内存。如 -Xmx2g 将堆的最大大小设置为2G&#xff0c;推荐配置为系统可用内存的70-80%-Xms<size>&#xff1a;设置Java堆的初始内存。如 -Xms2g 将堆的初始大小设置为2G&#xff0c;推荐配置与-Xmx的值相同…

【设计模式-05】Facade门面Mediator调停者 | Decorator装饰器 | Chain Of Responsibility责任链

Facade门面Mediator调停者 1、Facade门面图解 2、Mediator调停者 一般是系统内部相互交错&#xff0c;比如消息中间件(MQ)就是这种设计模式&#xff0c;对各个功能或系统之间进行解耦。 Decorator装饰器 1、问题 2、解决方案 Chain Of Responsibility责任链 一、例子场景 业…

循环冗余校验(Cyclic Redundancy Check, CRC)计算

若信息码字为111000110&#xff0c;生成多项式G(x)x^5x^3x1&#xff0c;则计算出的CRC校验码为&#xff08; &#xff09;。 A.01101 B.11001 C.001101 D.011001 循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的…

牛客周赛 Round 3 解题报告 | 珂学家 | 贪心思维场

前言 寒之不寒无水也&#xff0c;热之不热无火也。 整体评价 感觉比较简单&#xff0c;更加侧重于思维吧。和前几场的Round系列&#xff0c;风格不太一样。 A. 游游的7的倍数 因为连续7个数&#xff0c;比如有一个数是7的倍数 因此从个位数中着手添加&#xff0c;是最好的选…

软件测试|如何使用Selenium处理隐藏元素

简介 我们在使用selenium进行web自动化测试时&#xff0c;有时候会遇到元素被隐藏&#xff0c;从而无法对元素进行操作&#xff0c;导致我们的用例报错的情况。当我们遇到元素被隐藏的情况时&#xff0c;需要先对隐藏的元素进行处理&#xff0c;才能继续进行我们的操作&#x…

Spirng MVC见解1

1. SpringMVC概述 1.1 MVC介绍 MVC是一种设计模式&#xff0c;将软件按照模型、视图、控制器来划分&#xff1a; M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 一类称为数据承载Bean&#x…

xlua源码分析(五) struct类型优化

xlua源码分析&#xff08;五&#xff09; struct类型优化 上一节我们分析了xlua是如何实现lua层访问C#值类型的&#xff0c;其中我们重点提到了xlua默认实现方式下&#xff0c;struct访问的效率问题。实际上&#xff0c;xlua还提供了两种优化的方式&#xff0c;可以大大提高str…

代码随想录算法训练营Day21| 93.复原IP地址、78.子集、90.子集||

LeetCode 93 复原 IP 地址 本题思路&#xff1a;最重要的是想到一个收集结果的条件&#xff0c;也就是终止条件。 当 . 的个数达到三个时候&#xff0c;并且&#xff0c;判断最后剩余的是否符合要求&#xff0c;如果符合&#xff0c;说明整个ip地址可以&#xff0c;就加入到结…

二分图带权最大匹配-KM算法详解

文章目录 零、前言一、红娘再牵线二、二分图带权最大完备匹配2.1二分图带权最大匹配2.2概念2.3KM算法2.3.1交错树2.3.2顶标2.3.3相等子图2.3.4算法原理2.3.5算法实现 三、OJ练习3.1奔小康赚大钱3.2Ants 零、前言 关于二分图&#xff1a;二分图及染色法判定-CSDN博客 关于二分…

Java线上问题堆栈排查分析

最近线上出现类似内存溢出问题&#xff0c;需要排查具体原因&#xff0c;记录过程&#xff0c;方便备查。 一、数据抓取 在启动参数中添加参数&#xff0c;可参照以下设置。 参数的作用是在程序发生内存溢出 OutOfMemory 时打印日志&#xff0c;dump下来&#xff0c;方便用工…

xshell:关于ssh用户身份验证不能选择password的解决方法

接下来我将告诉大家如何进行修改让其能够进行密码登录 我使用的软件是VM VirtualBox管理器 进行用户名密码登录后 输入 cd /etc/ 切换到etc目录下 cd /etc/ 切换到etc目录后输入ls ls 切换到ssh目录下 cd ssh 进入文件 sshd_config vi sshd_config 找到指定部分进行修改 如何…

华为云优惠券介绍、种类、领取入口及使用教程

华为云作为国内领先的云服务提供商&#xff0c;为了吸引用户&#xff0c;经常推出各种优惠活动&#xff0c;其中就包括华为云优惠券。通过领取和使用优惠券&#xff0c;可以降低用户上云成本&#xff0c;提升用户上云的使用体验。本文将详细介绍华为云的优惠券&#xff0c;包括…

操作系统--内存管理

一、虚拟内存的提出 单片机 没有操作系统只能运行一个程序每次都要借助工具把代码烧录进去&#xff08;后面的程序会把之前的覆盖&#xff09; 单片机的 CPU 是直接操作内存的「物理地址」 现在的问题是 有操作系统需要同时运行多个程序&#xff08;把进程所使用的地址「隔离」…

车载以太网——DDS篇

摘要&#xff1a; DDS为信息交换和应用程序集成创建了一个简单而强大的体系结构。 01、什么是DDS DDS是一系列标准&#xff0c;它指定了分布式应用程序可用于交换实时数据的API、协议和安全机制。应用程序所使用的软件应用程序编程接口&#xff08;API&#xff09;是基于一个…

“超人练习法”系列09:耶克斯–多德森定律

01 你现有水平和学习风格 搞明白自己是个大事&#xff0c;搞不明白就糊涂一辈子。 首先&#xff0c;要弄清楚自己现在是个啥水平&#xff0c;有啥技能可以拿出来的&#xff0c;然后再定个目标&#xff0c;知道自己想往哪方面努力。 你擅长的学习方式是啥呢&#xff1f;是那种…

架构的未来:微前端与微服务的融合

目录 前言 微服务架构简介 微前端架构简介 微前端与微服务的融合 1. 共享服务 2. 基于事件的通信 3. 统一的身份和认证 4. 交付管道的集成 示例&#xff1a;使用微服务和微前端的电子商务平台 微服务架构 微前端架构 融合微服务和微前端 总结 作者简介…

智慧康养项目:智能技术与产品提升老年人生活品质

智慧康养项目需要集成的一些独特的技术和产品&#xff0c;其中包括&#xff1a; 智能健康监测设备&#xff1a;我们开发了一款能够实时监测老年人身体状况的智能健康监测设备&#xff0c;包括血压、血糖、心率等指标。该设备通过数据分析处理&#xff0c;能够提供个性化的健康…