当前位置:文档之家› 西华大学数据库实验报告(三)

西华大学数据库实验报告(三)

第3次作业:select复杂查询
一、环境
运行SQL Server,并创建名为student数据库、“学生信息”表、“课程”表、“学生成绩”表。

二、作业内容
在“学生成绩”表中,使用SELECT语句完成下面的查询。

(1)在“课程”表中查询所有学生的“课程号”和“课程名称”。

use student
go
select distinct课程号,课程名称
from课程_蒲强林
go
运行结果截图:
(2)在“课程”表中查询所有没有“先修课程”的课程的“课程号”和“课程名称”
use student
go
select课程号,课程名称
from课程_蒲强林
where先修课程is NULL
go
运行结果截图:
(3)在“课程号”表中查询“学分”在4-6之间的课程的“课程号”和“课程名称”。

use student
go
select课程号,课程名称
from课程_蒲强林
where学分>=4 and学分<=6
go
运行结果截图:
(4)在“课程”表中查询所有“课程名称”中包含“数据库”字样的课程的全部信息,将查询结果按“课程名称”降序排列。

use student
go
select*
from课程_蒲强林
where课程名称like'%数据库%'
order by课程名称DESC
go
运行结果截图:
(5)查询“课程”表课程的总数。

use student
go
select count(*)课程总数
from课程_蒲强林
go
运行结果截图:
(6)查询至少选修了2门课程以上的学生的学号。

use student
go
select distinct学号
from学生成绩_蒲强林
group by学号
having count(*)>=2
go
运行结果截图:
(7)查询每个学生所选修的课程的分数,在查询结果中显示学生的“学号”、“课程名称”和该课程的“分数”。

use student
go
select学号,课程名称,分数
from学生成绩_蒲强林,课程_蒲强林
where学生成绩_蒲强林.课程号=课程_蒲强林.课程号
go
运行结果截图:
(8)查询“先修课程”为NULL的课程的“课程名”以及该课程的“学分”。

use student
go
select课程名称,学分
from课程_蒲强林
where先修课程is null
go
运行结果截图:
(9)查询其它系中比“管理系”的所有学生年龄都小的学生的“姓名”、“年龄”和“性别”。

use student
go
select姓名,性别,年龄
from学生信息_蒲强林
where所在系!='管理系'and年龄<any(
select年龄
from学生信息_蒲强林
where所在系='管理系')
go
运行结果截图:
(10)查询至少选修了2门课程的学生的“姓名”。

use student
go
select distinct姓名
from学生成绩_蒲强林,学生信息_蒲强林
where学生成绩_蒲强林.学号=学生信息_蒲强林.学号
group by姓名
having count(*)>=2
go
运行结果截图:
(11)将“学生信息”表中“计算机系”的学生的全部信息插入到“计算机系学生信息”表中。

use student
go
select*
into计算机系学生信息_蒲强林
from学生信息_蒲强林
where所在系='计算机系'
go
运行结果截图;
(12)创建和“学生信息”表的表结构相同的“管理系学生信息”表,但该表中不包含任何记录。

之后用带子查询的INSERT将“管理系”学生的全部信息插入到“管理系学生信息”表中。

use student
go
select*into管理系学生信息_蒲强林
from学生信息_蒲强林
where学号is null
go
运行结果截图:
use student--调用数据库
go
insert into管理系学生信息_蒲强林
select*
from学生信息_蒲强林
where所在系='管理系'
go
运行结果截图:
(13)查询“赵燕”同学选修的所有课程“课程名称”、“学分”、“分数”,对结果按照“分数”升序排列。

use student
go
select课程名称,学分,分数
from学生成绩_蒲强林,课程_蒲强林
where学生成绩_蒲强林.课程号=课程_蒲强林.课程号and学号in(
select学号
from学生信息_蒲强林
where姓名='赵燕') order by分数
go
运行结果截图:
二、小结
体会对表查询和子查询的用法。

相关主题