数据库系统原理 实验(实习)报告——连接、嵌套查询

本文通过实例演示如何使用SQL进行学生信息、课程成绩的查询,涉及自然连接、嵌套查询、JOIN操作、统计平均成绩及复杂筛选。从基本语法到高级查询技巧一应俱全。

一、实验目的

1、掌握select语句的基本语法和查询条件表示方法

2、掌握连接查询的表示方法

3、掌握嵌套查询的表示方法

二、实验内容与步骤

1、在StuCourse数据库中,用SQL语句实现如下查询:

(1)查询每个学生的情况以及其选修课程的情况(要求结果集是自然连接)

查询语句(文本):

SELECT Student.*, StuCourse.课程号, StuCourse.成绩

    FROM Student, StuCourse

    WHERE Student.学号 = StuCourse.学号

查询结果(截图):

(2)查询“电子信息工程”专业的学生姓名及其选课详情,无论该学生有没有选课

查询语句:

select Student.*, 课程号

    from Student,StuCourse

         where Student.学号=StuCourse.学号 and 专业名='电子信息工程'

查询结果:

(3)用JOIN连接查询的方法查询选修了“程序设计基础”的学生姓名

查询语句:

查询结果:

(4)统计“计算机科学与技术”专业各学生的平均成绩

查询语句:

查询结果:

(6)将各学生的学号和姓名按平均成绩降序排列

查询语句:

查询结果:

(7)用JOIN连接查询的方法查找所有选修了“2001”或“1002”课程的学生学号和姓名

查询语句:

查询结果:

(8)用子查询查找所有选修了“2001”或“1002”课程的学生学号和姓名

查询语句:

查询结果:

(9)用子查询查询与“李进”在同一个专业学习的学生学号、姓名和系别

查询语句:

查询结果:

(5)统计各专业学生的平均成绩在80以上的学生人数

查询语句:

查询结果:

(10)查询所有课程的成绩都在80分以上的学生姓名、学号

查询语句:

查询结果:

(11)用子查询查询所有未选修1002课程的学生姓名

查询语句:

查询结果:

(12)用子查询查找“计算机科学与技术”专业“1001”课程成绩比所有“电子信息工程”专业“1001”课程成绩都高的学生的学号和姓名

查询语句:

SELECT Student.姓名,Student.学号

    FROM Student, StuCourse

   

    WHERE Student.学号 = StuCourse.学号 AND Student.专业名 = '计算机科学与技术' AND StuCourse.课程号 = '1001'

    AND StuCourse.成绩 >=

         (

             SELECT MAX(StuCourse.成绩)

                  FROM Student, StuCourse

                  WHERE Student.学号 = StuCourse.学号 AND Student.专业名 = '电子信息工程' AND StuCourse.课程号 = '1001'

         )

查询结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值