实验二 SQL 语言——SELECT 查询操作(第二部分)

写在前面:本文中可能有错误,还请大佬斧正,如果小伙伴有什么好的方法,也可以发给我,我添加到里面

实验二:第一部分               实验二:第三部分

4、 多表查询

(1) 查询计算机系(CS)选修了 2 门及以上课程的学生的学号。
(2) 查询至少选修一门课程的女学生姓名。
(3) 查询至少选修两门课程的学生学号。
(4) 查询 Student 表与 SC 表的广义笛卡儿积。
(5) 查询 Student 表与 SC 表基于学号 SNO 的等值连接。
(6) 查询 Student 表与 SC 表基于学号 SNO 的自然连接。
(7) 查询课程之先修课的先修课(自身连接例)。
(8) 查询学生及其课程、成绩等情况(不管是否选课,均需列出学生信息) 。 (9) 查询学生及其课程成绩与课程及其学生选修成绩的明细情况(要求学生与课程均需 全部列出) 。
(10) 查询性别为男、课程成绩及格的学生信息以及课程号、成绩。

----------------------多表查询----------------------
--1.查询计算机系(CS)选修了 2 门及以上课程的学生的学号
select Student.Sno
from Student
inner join SC on Student.Sno = SC.Sno
where Student.Sdept='CS'
group by Student.Sno
having COUNT(*) >= 2

--2.查询至少选修一门课程的女学生姓名
select Student.Sname
from Student
inner join SC on Student.Sno = SC.Sno
where Student.Ssex = '女'
group by Student.Sname
having COUNT(*) >= 1

--3.查询至少选修两门课程的学生学号
select Student.Sno
from Student
inner join SC on Student.Sno = SC.Sno
group by Student.Sno
having COUNT(*) >= 2

--4.查询 Student 表与 SC 表的广义笛卡儿积
select *
from Student,SC

--5.查询 Student 表与 SC 表基于学号 SNO 的等值连接
select *
from Student
inner join SC on Student.Sno = SC.Sno

--6.查询 Student 表与 SC 表基于学号 SNO 的自然连接
select Student.*,SC.Cno,SC.Grade
from Student,SC
where Student.Sno = SC.Sno

--7.查询课程之先修课的先修课(自身连接例)
select Course.Cpno
from Course
where Course.Cno in(
	select Course.Cpno
	from Course
)

--8.查询学生及其课程、成绩等情况(不管是否选课,均需列出学生信息)
select *
from Student
left join SC on SC.Sno = Student.Sno
left join Course on SC.Cno = Course.Cno

--9.查询学生及其课程成绩与课程及其学生选修成绩的明细情况
select *
from SC
inner join Student on SC.Sno = Student.Sno
inner join Course on SC.Cno = Course.Cno

--10.查询性别为男、课程成绩及格的学生信息以及课程号、成绩
select *
from Student
inner join SC on Student.Sno = SC.Sno
where Student.Ssex = '男'
and SC.Grade >= 60
group by Student.Sno

错误之处还请大家多多斧正
实验二:第一部分               实验二:第三部分

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值