tceic.com
学霸学习网 这下你爽了
赞助商链接
当前位置:首页 >> 基础医学 >>

数据库实验四作业及答案


实验 4
一、
1. 2. 3. 4. 5. 6. 7.

数据查询

实验目的
掌握使用 Transact-SQL 的 SELECT 语句进行基本查询的方法。 掌握使用 SELECT 语句进行条件查询的方法。 掌握嵌套查询的方法。 掌握多表查询的方法。 掌握 SELECT 语句的 GROUP BY 和 ORDER BY 子句的作业和使用方法。 掌握联合查询的操作方法。 掌握数据更新语句 INSERT INTO、UPDATE、DELETE 的使用方法。

二、
1. 2. 3. 4. 5. 6.

实验准备
了解 SELECT 语句的基本语法格式和执行方法。 了解嵌套查询的表示方法。 了解 UNION 运算符的用法。 了解 SELECT 语句的 GROUP BY 和 ORDER BY 子句的作用。 了解 IN、JOIN 等子查询的格式。 了解 INSERT INTO、UPDATE、DELETE 的格式与作用。

三、
0.

实验内容及步骤
创建 studentsdb 数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码

1. 在 studentsdb 数据库中,使用下列 SQL 语句将输出什么? (1) SELECT COUNT(*) FROM grade

(2)

SELECT SUBSTRING(姓名,1,2) FROM student_info

(3)

SELECT UPPER('kelly')

(4)

SELECT Replicate('kelly',3)

(5)

SELECT SQRT(分数) FROM grade WHERE 分数>=85

(6)

SELECT 2,3,POWER(2,3)

(7)

SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())

2. 在 studentsdb 数据库中使用 SELECT 语句进行基本查询。 (1) 在 student_info 表中,查询每个学生的学号、姓名、出生日期信息。
SELECT*FROMstudent_info

(2)

查询学号为 0002 的学生的姓名和家庭住址。

SELECT姓名,家庭住址FROMstudent_info WHERE 学号=0002

(3)

找出所有男同学的学号和姓名。

SELECT学号,姓名FROMstudent_info

WHERE性别='男'

3. 使用 SELECT 语句进行条件查询 (1) 在 grade 表中查找分数在 80~90 分为内的学生的学号和分数。
SELECT学号,分数FROMgrade WHERE分数BETWEEN 80 AND 90

(2)

在 grade 表中查询课程编号为 0003 的学生的平均分。

SELECTAVG(分数)AS平均分FROMgrade WHERE课程编号=0003

(3)

在 grade 表中查询学习各门课程的人数。

SELECT课程编号,COUNT(*)AS人数 FROMgrade GROUPBY课程编号

(4)

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

SELECT学号,姓名,出生日期 FROMstudent_info ORDERBY 出生日期 ASC

(5) 查询所有姓“张”的学生的学号和姓名。 SELECT 学号,姓名 FROM student_info WHERE 姓名 LIKE '张%'

4. 嵌套查询 (1) 在 student_info 表中查找与“刘卫平”性别相同的所有学生的姓名、出生日 期。 SELECT 姓名,出生日期 FROM student_info WHERE 性别= (SELECT 性别 FROM student_info WHERE 姓名='刘卫平')

(2)

使用 IN 子查询查找所修课程编号为 0002、0005 的学生学号、姓名、性别。

SELECT 学号,姓名,性别 FROM student_info WHERE student_info.学号 IN (SELECT 学号 FROM grade WHERE 课程编号 IN ('0002', '0005'))

(3) 列出学号为 0001 的学生的分数比 0002 号的学生的最低分数高的课程编号和分数。
SELECT课程编号,分数FROMgrade WHERE学号='0001'AND分数>ANY (SELECT分数FROMgrade WHERE学号='0002')

(4) 列出学号为 0001 的学生的分数比 0002 的学生的最高成绩还要高的课程编号和分数。
SELECT课程编号,分数 FROMgrade WHERE学号='0001'AND分数>ALL (SELECT分数 FROMgrade WHERE学号='0002')

5. 多表查询 (1) 查询分数在 80~90 范围内的学生的学号、姓名、分数。 SELECT student_info.学号,姓名,分数 FROM student_info,grade WHERE student_info.学号=grade.学号 AND 分数 BETWEEN 80 AND 90

(2)

查询学习“C 语言程序设计”课程的学生的学号、姓名、分数。 SELECT student_info.学号,姓名,分数 FROM student_info INNER JOIN grade ON student_info.学号=grade.学号 INNER JOIN curriculum ON 课程名称='C 语言程序设计'

(3)

查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。

selectstudent_info.学号,姓名,课程编号,分数 fromstudent_info leftouterjoingradeonstudent_info.学号=grade.学号 where性别='男'

(4)

查询每个学生的所选课程的最高成绩, 要求列出学号、 姓名、 课程名称、 分数。

selectgrade.学号,student_info.姓名,grade.课程编号,grade.分数 fromstudent_infoleftouterjoingradeonstudent_info.学号=grade.学号 wheregrade.分数>=(selectMAX(分数)fromgradeb whereb.学号=grade.学号)

(5)

查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学 生的总成绩为空。 提示:使用左外连接。

selectgrade.学号,姓名,sum(分数) fromstudent_infoleftouterjoingradeonstudent_info.学号=grade.学号 groupbygrade.学号,姓名

(6) 为 grade 表添加数据行:学号 0004、课程编号为 0006、成绩为 76。查询所有 课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum 表中没有的课程 列值为空。 提示:使用右外连接。
insertgradevalues('0004','0006','76') selectgrade.课程编号,课程名称,count(*)fromgraderightouterjoincurriculum ongrade.课程编号=curriculum.课程编号 groupbygrade.课程编号,课程名称

6. 使用 UNION 运算符将 student_info 表中姓“张”的学生的学号、姓名与 curriculum 表的课程编号、课程名称返回在一个表中,且列名为 u_编号、u_名称,如图 1-8 所示。 select 学号 u_编号,姓名 u_名称 from student_info where 姓名 like '张%' union select 课程编号,课程名称 from curriculum

图 1-8 联合查询结果集

7. 数据更新 (1) 创建 totalgrade 表,具有数据列:学号、姓名、总成绩。 CREATE TABLE totalgrade ( 学号 char(4) NOT NULL, 姓名 varchar(8) NULL, 总成绩 decimal(5,2) NULL ) (2) 使用 INSERT INTO 语句通过 student_info 表更新 totalgrade 表的学号、姓 名列数据。 INSERT INTO totalgrade SELECT 学号,姓名,总成绩=0 FROM student_info

(3)

使用 UPDATE 语句通过 grade 表更新 totalgrade 表的中成绩列数据,使 totalgrade 表中每个学生的总分成绩为 grade 表中该学生各成绩之和。 UPDATE totalgrade SET 总成绩= (SELECT SUM(分数) FROM grade WHERE totalgrade.学号=grade.学号) FROM grade (4) 删除 totalgrade 表中没有总成绩的学生记录。 delete from totalgrade where 总成绩 is null

四、

实验思考

1. 查询所有没有选修课程的学生信息,返回结果包括学号、姓名、性别。 2. 在 student_info 表和 grade 表之间实现交叉连接。 3. 查询每个学生的所选课程的成绩,并列出学号生成分组汇总(总成绩)和明细行 (各课成绩)。 提示:使用 SELECT 语句的 COMPUTE 选项。



推荐相关:

数据库实验二作业及答案

数据库实验作业及答案 - 实验 2 一、 实验目的 SQL Server 数据库的管理 1. 了解 SQL Server 数据库的逻辑结构和物理结构的特点。 2. 学会使用企业管理器...


数据库应用实验4

将实验报告的文件名设置为“学号 - 姓名 - 实验 4.doc ” ,提交到 ftp://211.71.149.21/ 付红萍 / 课程作业 / 数据库应用 / 班级 / 实验 4 文件夹...


数据库实验及作业部分参考答案

数据库实验及作业部分参考答案_计算机软件及应用_IT/计算机_专业资料。数据库实验...(tot_amt)<200000) order by sale_id 15-4 select sale_id from sales ...


MYsql数据库实训作业

MYsql数据库实训作业_计算机软件及应用_IT/计算机_专业资料。〉〉〉 练习以下...再其中创建一个表,其中包括 4 种类型的字段:int,float,varchar,datetime 往该...


数据库作业答案

数据库作业答案 - P74 5.设有一个 SPJ 数据库,包括 S,P,J,SPJ 四个关系模式: 1)求供应工程 J1 零件的供应商号码 SNO: πSno(σSno=‘J1’ (SPJ))...


数据库系统概论第五版课后习题答案王珊版

数据库系统概论第五版课后习题答案王珊版_理学_高等教育_教育专区。太原理工大学...(4) select * from S ,T where S.C=T.C; (5) select * from S ,T...


数据库实验三作业及答案

数据库实验作业及答案 - 实验 3 一、 1. SQL Server 数据表的管理 实验目的 学会使用企业管理器和 Transact-SQL 语句 CREATE TABLE 和 ALTE...


实验四、《数据库系统原理》课程大作业

实验名称: 实验四、 《数据库系统原理》课程大作业二、实验目的和环境:(一) 、实验目的 通过对本综合性实验的训练,学生能够比较熟练地掌握数据库的系统构成、关系...


数据库原理与应用实验作业参考答案

数据库原理与应用实验作业参考答案 - 数据库原理与应用实验报告参考答案 实验 1 数据库的建立修改与删除 实验 2 表结构的建立修改删除及完整性约束条件定义 实验 ...


数据库作业4

数据库作业4 - 《数据库应用基础》实验报告 创建自定义函数 一、实验目的 ⑴ 掌握 SQL Server 中函数的使用; ⑵ 掌握用户自定义函数的创建及应用。 二、实验...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com