当前位置:网站首页>数据库上机实验3 连接查询和分组查询
数据库上机实验3 连接查询和分组查询
2022-07-31 05:09:00 【Meteor.792】
一、实验目的
1、熟练掌握多表连接查询中内连接的两种语法。
2、理解外连接的含义,熟悉外连接的使用。
3、掌握分组查询和排序等语句。
二、实验内容
根据实验1中创建的学生作业管理数据库以及其中的学生表、课程表和学生作业表,进行以下操作。
1、查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。
select sno as 学号,avg(cj1) as 作业1平均分,avg(cj2) as 作业2平均分,avg(cj3) as 作业3平均分
from score
group by sno
having count(*)>=32、查询每门被选课程的课程编号、课程名称、作业1平均分、作业2平均分和作业3平均分。
select course.cno as 课程编号,cname as 课程名称 ,avg(cj1) as 作业1平均分,avg(cj2) as 作业2平均分,avg(cj3) as 作业3平均分
from course,score
where course.cno=score.cno
group by course.cno,cname3、查询每门被选课程的课程编号、作业1的最高分和最低分、作业2的最高分和最低分、作业3的最高分和最低分。
select cno as 课程编号,max(cj1) as 作业1最高分,min(cj1) as 作业1最低分,max(cj2) as 作业2最高分,min(cj2) as 作业2最低分,max(cj3) as 作业3最高分,min(cj3) as 作业3最低分
from score
group by cno4、查询作业1平均分、作业2平均分和作业3平均分均在75分以上(含75分)的学生学号和作业1平均分、作业2平均分和作业3平均分。
select sno as 学号,avg(cj1) as 作业1平均分,avg(cj2) as 作业2平均分,avg(cj3) as 作业3平均分
from score
group by sno
having avg(cj1)>=75 and avg(cj2)>=75 and avg(cj3)>=755、查询与“张志国”同一班级的学生信息(使用连接查询)。
select a.* from student a, student b
where a.major=b.major and b.sname='张志国'6、查询比“计算机应用基础”学时多的课程信息(使用连接查询)。
select a.* from course a,course b
where a.stime>b.stime and b.cname='计算机应用基础'7、查询选修课程号为K002的学生的学号、姓名(使用连接查询)。
select student.sno,sname from student,score
where student.sno=score.sno and cno='K002'8、查询于兰兰的选课信息,列出学号、姓名、课程名,并按照课程名进行升序排序(使用两种连接查询的方式)。
(1)select student.sno,sname,cname
from student,course,score
where student.sno=score.sno and course.cno=score.cno and sname='于兰兰'
order by cname
(2)select student.sno,sname,cname
from student
inner join score on student.sno=score.sno
inner join course on course.cno=score.cno
where sname='于兰兰'
order by cname
三、实验指导
1、启动SQL Server2012软件。
2、通过分离附加的方法,将实验1所创建的作业管理数据库恢复到该软件中。
3、SQL Server中,程序不区别大小写,特别要注意程序中的标点符号,一定要在英文半角状态下输入,否则会出错。
4、注意统计函数的用法,AVG求平均值,SUM求和,MAX求最大值,MIN求最小值,COUNT按列值统计行数。
5、注意HAVING子句和WHERE子句的区别:HAVING子句是对分组后的数据进行条件的筛选,而WHERE子句是对原始数据时行条件的筛选;HAVING子句中可以有统计函数,WHERE子句中不能有统计函数。
6、多表连接查询中一定要有连接条件,对N个表进行查询要有N-1个连接条件。
7、注意多表连接查询的两种写法。
边栏推荐
- Goodbye to the cumbersome Excel, mastering data analysis and processing technology depends on it
- Three handshakes and four waves
- Typec手机有线网卡网线转网口转接口快充方案
- 为什么要用Flink,怎么入门使用Flink?
- 对list集合进行分页,并将数据显示在页面中
- Data set partitioning and cross-validation
- Input length must be multiple of 8 when decrypting with padded cipher
- With MVC, why DDD?
- MYSQL下载及安装完整教程
- C语言指针详解
猜你喜欢

剑指offer基础版 ----- 第25天

MySQL8--Windows下使用压缩包安装的方法
![【JS面试题】面试官:“[1,2,3].map(parseInt)“ 输出结果是什么?答上来就算你通过面试](/img/7a/c70077c7a95137aaeb49c344c82696.png)
【JS面试题】面试官:“[1,2,3].map(parseInt)“ 输出结果是什么?答上来就算你通过面试

剑指offer基础版 ----- 第28天

剑指offer专项突击版 --- 第 4 天

Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ

SQL row-column conversion

剑指offer基础版 --- 第24天

面试官竟然问我怎么分库分表?幸亏我总结了一套八股文

【LeetCode-SQL每日一练】——2. 第二高的薪水
随机推荐
快速掌握并发编程 --- 基础篇
目标检测学习笔记
精解四大集合框架:List 核心知识总结
Object Detection Study Notes
Temporal对比Cadence
numpy和pytorch中的元素拼接操作:stack,concatenat,cat
matlab abel变换图片处理
Mysql——字符串函数
MySQL transaction isolation level, rounding
面试Redis 高可靠性|主从模式、哨兵模式、Cluster集群模式
ES source code API call link source code analysis
Redis Advanced - Cache Issues: Consistency, Penetration, Penetration, Avalanche, Pollution, etc.
关于小白安装nodejs遇到的问题(npm WARN config global `--global`, `--local` are deprecated. Use `--location=glob)
MySQL(更新中)
基于web3.0使用钱包Metamask的三方登陆
信息系统项目管理师核心考点(五十五)配置管理员(CMO)的工作
Distributed transaction processing solution big PK!
tf.keras.utils.pad_sequences()
剑指offer基础版 --- 第21天
C语言如何分辨大小端