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. 上网查询并写报告:数据库系统的发展。 课堂实践 2 1. 2. 3. 4. 选择 SQL Server 2005 企业版,上网查询安装该版本所需要的软硬件环境。 安装 SQL ...


数据库实验三作业及答案

数据库实验作业及答案_其它课程_初中教育_教育专区。实验 3 一、 1. SQL ...3. 学会使用 Transact-SQL 语句对表进行插入、修改和删除数据操作。 4. 了解 ...


数据库实验二作业及答案

数据库实验作业及答案_数学_自然科学_专业资料。实验 2 一、 实验目的 SQL ...在企业管理器中删除 studentsdb 数据库。 四、 实验思考 新数据库是否包含 SQL...


作业.实验四

数据库实验四作业及答案 8页 2财富值 实验四 作业调度 8页 2财富值 实验作业4 2页 2财富值 实验操作四 5页 免费 xml作业实验四 4页 2财富值喜欢...


数据库实验题目和答案

数据库实验题目和答案_IT认证_资格考试/认证_教育专区。厦门大学数据库实验题目和...数据库实验和参考答案 33页 4下载券 数据库上机实验题目和答... 5页 2下载...


数据库作业及部分答案

完全联接 3、数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 三者之间的关 ...数据库实验四作业及答案 8页 1下载券 数据库应用技术作业及答... 暂无评价...


数据库系统作业(实验1.4)

实验四 数据库和表的操作(... 4页 1财富值喜欢此文档的还喜欢 ...数据库系统作业(实验1.4) 隐藏>> 实验1.4 SQL 语言的应用 分享到: X 分享...


数据库作业实验4

数据库实验四作业及答案 8页 1下载券数​据​库​作​业​实​验​4 暂无评价|0人阅读|0次下载|举报文档1、 查询“手镯营销系统”数据库中“手镯...


数据库实验3答案

数据库实验作业及答案 4页 1下载券数​据​库​实​验​3​答​案 暂无评价|0人阅读|0次下载|举报文档 数​据​库​实​验​3​答...


数据库全部实验作业

数据库实验作业及答案 4页 2财富值 数据库原及其应用实验(作业... 27页 5财富值 数据库实验操作题 6页 1财富值 数据库上机作业 实验三 3页 免费 数据库...

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