数据库系统原理试验报告SQL查询语句.docx
《数据库系统原理试验报告SQL查询语句.docx》由会员分享,可在线阅读,更多相关《数据库系统原理试验报告SQL查询语句.docx(11页珍藏版)》请在冰豆网上搜索。
数据库系统原理试验报告SQL查询语句
`
数据库系统原理
实验报告
:
xxx
学号:
xxxxxxxx
专业:
xxxxx
日期:
xxxxx
文档Word
`
Lab2
一、实验目的
进一步熟悉关系数据库标准语言SQL。
二、实验环境
1)Windows10
2)SQLServer2017
三、实验容
给定如学生表、课程表和学生作业表所示的信息。
表1学生表
学号
性别
专业班级
出生日期
联系
0433
艳
女
04生物
1986-9-13
0496
越
男
04电子
1984-2-23
1381290×
0529
欣
男
05会计
1984-1-27
1350222×
0531
志国
男
05生物
1986-9-10
1331256×
0538
于兰兰
女
05生物
1984-2-20
1331200×
0591
王丽丽
女
05电子
1984-3-20
1332080×
0592
王海强
男
05电子
1986-11-1
课程表表2
课程号
课程名
学分数
学时数
任课教师
K001
计算机图形学
2.5
40
胡晶晶
K002
计算机应用基础
3
48
任泉
K006
数据结构
4
64
马跃先
M001
政治经济学
4
64
孔繁新
S001
高等数学
3
48
晓尘
3表学生作业表成绩3课程号作业成绩2作业成绩1作业学号文档Word
`
K0010433607575
60K00105297070
80K00170053180
90K00180059190
90K00280800496
85K00270700529
8080053180K002
8575650538K002
85850592K00275
90053180K00680
800591K0068080
8070M001700496
75M00165059175
80S00105318080
80
053860S001
SQL语句:
写出如下15分)(.查询数据库中有哪些专业班级。
Sql语句:
SELECT专业班级
;学生表FROM
查询结果截图:
219865分)(.查询在年出生的学生的学号、和出生日期。
Sql语句:
SELECT学号,,出生日期
FROM学生表
;LIKE'1986%'WHERE出生日期查询结果截图:
文档Word
`
3055分).查询(级的男生信息。
Sql语句:
SELECT*
FROM学生表
WHERE学号LIKE'05%'AND性别='男';
查询结果截图:
45分).查询没有作业成绩的学号和课程号。
(Sql语句:
SELECT学号,课程号
FROM学生作业表
NULL;成绩ISISNULLOR作业32WHERE作业1成绩ISNULLOR作业成绩
查询结果截图:
5K0015分)课程的学生人数。
.查询选修了(Sql语句:
SELECTCOUNT(DISTINCT学号)
FROM学生作业表
;='K001'课程号WHERE
查询结果截图:
文档Word
`
65分).查询数据库中共有多少个班级。
(Sql语句:
SELECTCOUNT(DISTINCT专业班级)
;学生表FROM
查询结果截图:
712平均分和.查询选修三门以上(含三门)课程的学生的学号和作业平均分、作业35分)(作业平均分。
Sql语句:
SELECT学生作业表.学号,AVG(作业1成绩),AVG(作业2成绩),AVG(作业3成绩)
FROM学生表,学生作业表
WHERE学生表.学号=学生作业表.学号
GROUPBY学生作业表.学号
;>2HAVINGCOUNT(*)查询结果截图:
85分)(.查询于兰兰的选课信息,列出学号、、课程名。
Sql语句:
SELECT学生作业表.学号,,课程名
FROM学生表,学生作业表,课程表
WHERE='于兰兰'AND学生表.学号=学生作业表.学号AND课程表.课程号=学生作业文档Word
`
;.课程号表查询结果截图:
9.10)。
“志国”同一班级的学生信息(使用连接查询和子查询方式两种方式)(查询与1)连接查询:
Sql语句:
SELECT学生表1.*
FROM学生表AS学生表1,学生表AS学生表2
;.专业班级=.专业班级学生表2'学生表2.='志国AND学生表1WHERE
查询结果截图:
2)子查询:
Sql语句:
SELECT*
FROM学生表
WHERE专业班级=(SELECT专业班级
FROM学生表
);''志国=WHERE
查询结果截图:
10.查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式两种方10分)(式)。
文档Word
`
1)连接查询:
Sql语句:
SELECT课程表1.*
FROM课程表AS课程表1,课程表AS课程表2
;学时数课程表2.课程表AND1.学时数>=WHERE课程表2.课程名'计算机应用基础'
查询结果截图:
2)子查询:
Sql语句:
SELECT*
FROM课程表
WHERE学时数>(SELECT学时数
FROM课程表
);'='计算机应用基础WHERE课程名
查询结果截图:
11.K002的学生的学号、(使用连接查询、普通子查询、相关子查询、查询选修课程号为exists20分)使用(关键字的相关子查询四种方式)。
1)连接查询:
Sql语句:
SELECT学生表.学号,学生表.
FROM学生作业表,学生表
文档Word
`
;学号学生表.学生作业表.学号课程号.=='K002'ANDWHERE学生作业表查询结果截图:
2)普通子查询:
Sql语句:
SELECTDISTINCT学生表.学号,学生表.
FROM学生作业表,学生表
WHERE学生表.学号IN(
SELECT学生表.学号
FROM学生作业表
WHERE学生作业表.课程号='K002'AND学生作业表.学号=).学号学生表查询结果截图:
3)相关子查询:
Sql语句:
SELECTDISTINCT学生表.学号,学生表.
FROM学生表,学生作业表
WHERE学生表.学号IN(
SELECT学生作业表.学号
FROM学生作业表
WHERE学生作业表.课程号='K002')
文档Word
`
查询结果截图:
exists4)关键字的相关子查询:
使用语句:
SqlDISTINCT学生表.学号,学生表SELECT.
FROM学生作业表,学生表
WHEREEXISTS(
SELECT*
FROM学生作业表
WHERE学生作业表.课程号='K002'AND学生作业表.学号=学生表.)学号查询结果截图:
12.查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。
(20分)
Sql语句:
SELECTDISTINCT学号,课程号,作业1成绩,作业2成绩,作业3成绩
FROM学生作业表
WHERE学号NOTIN(
SELECT学号
FROM学生作业表
WHERE课程号='K001'OR课程号='M001')
文档Word
`
查询结果截图:
四、实验总结
SQL语言查询相关的语句用法。
在实验中遇到了很多通过本次实验,我更加熟悉了问题,例如建表时提示主键列不能输入重复值,后来才知道原来要设置两个主键。
希望在以后的实验中可以收获更多的实践知识。
文档Word