数据库实验4 数据查询(答案)

发布时间 : 星期五 文章数据库实验4 数据查询(答案)更新完毕开始阅读

数据库技术与应用实验 实验4 数据查询

实验4 数据查询 学号:18103317 专业:电子信息工程

一、实验内容和步骤

1.在studentsdb数据库中,使用下列SQL语句将输出什么?并说明语句中使用函数所实现的功能。

(1)SELECT COUNT(*) FROM 成绩表

(2) SELECT SUBSTRING(姓名,1,2) FROM 学生表

(3)SELECT UPPER(‘kelly’) (小写字母->大写字母) (4)SEIECT Replicate(‘kelly’,3) (将“kelly”重复3次) (5) SELECT SQRT(分数) FROM 成绩表 WHERE 分数>=85 (SQRT()开根号) (6)SELECT 2,3,POWER(2,3) (乘方,即23) (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())

2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在学生表中,查询每个学生的学号、姓名、出生日期信息。 (2)查询学号为0002的学生的姓名和家庭住址。 (3)找出所有男同学的学号和姓名。 3.使用SELECT语句进行条件查询

(1)在成绩表中查找分数在80~90范围内的学生的学号和分数。 (2)在成绩表中查询课程编号为C003的学生的平均分。

SELECT AVG(分数) FROM 成绩表 WHERE 课程编号='C003' (3)在成绩表中查询学习各门课程的人数。

SELECT COUNT(*) FROM 成绩表 GROUP BY 课程编号

南京师范大学中北学院

1

数据库技术与应用实验 实验4 数据查询

(4)将学生按出生日期由大到小排序。

SELECT * FROM 学生表 ORDER BY 出生年月 DESC (5)查询所有姓“张”的学生的学号和姓名。

SELECT * FROM 学生表 WHERE 姓名 LIKE '张%' 4.嵌套查询

(1)在学生表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。 SELECT 姓名,出生年月 FROM 学生表

WHERE 性别= (SELECT 性别

FROM 学生表 WHERE 姓名='刘卫平')

(2)使用IN子查询查找所修课程编号为C002、C005的学生学号、姓名、性别。 SELECT 学号,姓名,性别 FROM 学生表

WHERE 学生表.学号 IN (SELECT 学号 FROM 成绩表

WHERE 课程编号 IN('C002','C005'))

(3)列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。

SELECT 课程编号,分数 FROM 成绩表

WHERE 学号='0001'AND 分数>ANY (SELECT 分数

FROM 成绩表 WHERE 学号='0002') (4)列出学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。

SELECT 课程编号,分数 FROM 成绩表

WHERE 学号='0001'AND 分数>(SELECT MAX(分数)

FROM 成绩表 WHERE 学号='0002')

南京师范大学中北学院 2

数据库技术与应用实验 实验4 数据查询

5.多表查询

(1)查询分数在80~90范围内的学生的学号、姓名、分数。 SELECT 学生表.学号,姓名,分数 FROM 学生表,成绩表

WHERE 学生表.学号=成绩表.学号 AND 分数 BETWEEN 80 AND 90 (2)查询学习“C语言程序设计”课程的学生的学号、姓名、分数。 SELECT 学生表.学号,姓名,分数

FROM 学生表 INNER JOIN 成绩表 ON 学生表.学号=成绩表.学号 INNER JOIN 课程表 ON 课程表.课程编号=成绩表.课程编号 WHERE 课程表.课程名称='C语言程序设计'

(3)查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。 SELECT 学生表.学号,姓名,课程名称,分数

FROM 学生表 INNER JOIN 成绩表 ON 学生表.学号=成绩表.学号 INNER JOIN 课程表 ON 课程表.课程编号=成绩表.课程编号 WHERE 学生表.性别='男'

(4)查询各门课程的最高成绩,要求列出课程编号、课程名称、分数。 SELECT b.课程编号,c.课程名称,MAX(b.分数)AS 最高分

FROM 成绩表 b INNER JOIN 课程表 c ON b.课程编号=c.课程编号 GROUP BY b.课程编号,c.课程名称

(5)查询所有学生的总成绩,要求列出学号、姓名、总成绩。 SELECT b.学号,姓名,SUM(b.分数)AS 最高分

FROM 学生表 a LEFT JOIN 成绩表 b ON a.学号=b.学号 GROUP BY b.学号,a.姓名 提示:使用左外连接。

(6)查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数。 SELECT b.课程编号,a.课程名称,COUNT(b.课程编号) AS 选修人数 FROM 课程表 a RIGHT JOIN 成绩表 b ON a.课程编号=b.课程编号 GROUP BY b.课程编号,a.课程名称 提示:使用右外连接。

南京师范大学中北学院 3

数据库技术与应用实验 实验4 数据查询

(7)查询所有没有选修课C002的学生信息,返回结果包括学号、姓名、性别。 SELECT 学号,姓名,性别 FROM 学生表

WHERE NOT EXISTS (SELECT * FROM 成绩表

WHERE 课程编号='C002' AND 学号=学生表.学号)

提示:使用条件运算符EXISTS。

(8)在学生表和成绩表之间实现交叉连接。 SELECT 学生表.学号,姓名,成绩表.课程编号,分数 FROM 学生表 CROSS JOIN 成绩表

(9)查询每个学生的所选课程的成绩,并列出学号生成分组汇总行(总成绩)和明细行(各课成绩)。

SELECT 学号,课程编号,分数 FROM 成绩表 ORDER BY 学号

COMPUTE SUM(分数)BY 学号

提示:使用SELECT语句的COMPUTE选项。

南京师范大学中北学院 4

联系合同范文客服:xxxxx#qq.com(#替换为@)