ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:143.82KB ,
资源ID:28544839      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28544839.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(上机练习.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

上机练习.docx

1、上机练习四、上机练习四上机练习1查询学生选课表中的全部数据。答:select * from SC2查询计算机系的学生的姓名、年龄。答:select sname,sage from student where sdept = 计算机系3. 查询成绩在7080分之间的学生的学号、课程号和成绩。答:select sno,cno,grade from sc on where grade between 70 and 801 查询计算机系年龄在1820之间且性别为“男”的学生的姓名、年龄。答:select sname,sage from student where sdept = 计算机系 and sa

2、ge between 18 and 20 and ssex = 男2 查询“C001”号课程的最高分。答:select max(grade) from sc where cno = C0016. 查询计算机系学生的最大年龄和最小年龄。答:select max(sage) as max_age, min(sage) as min_age from student where sdept = 计算机系7. 统计每个系的学生人数。答:select sdept,count(*) from student group by sdept8. 统计每门课程的选课人数和考试最高分。答:select cno,

3、count(*),max(grade) from sc group by cno9. 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。答:select sno,count(*), sum(grade) from sc group by sno order by count(*) asc10. 查询总成绩超过200分的学生,要求列出学号和总成绩。答:select sno,sum(grade) from sc group by sno having sum(grade) 20011. 查询选课门数超过2门的学生的学号、平均成绩和选课门数。答:select sno, avg(grade

4、), count(*) from sc having count(*) 212. 查询选了“C002”课程的学生的姓名和所在系。答:select sname,sdept from student s join sc on s.sno = sc.sno where cno = C00213. 查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。答:select sname,cno,grade from student s join sc on s.sno = sc.sno where grade 80 order by grade desc14. 查询计算机系男生修了“数据库基础

5、”的学生的姓名、性别和成绩。答:select sname,ssex,grade from student s join sc on s.sno = sc.sno join course c on o = owhere sdept = 计算机系 and ssex = 男 and cname = 数据库基础15. 查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。答:select s.sno,sname,cno,grade from student s left join sc on s.sno = sc.sno16. 查询哪些课程没有人

6、选,要求列出课程号和课程名。答:select o,cname from course c left join sc on o = owhere o is null17查询计算机系没有选课的学生,列出学生姓名。答:select sname from student s left join sc on s.sno = sc.sno Where sdept = 计算机系 and sc.sno is null18. 列出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。答:select top 3 s.sno, sname, sdept, grade from Student s

7、join SC on s.Sno = SC.Sno join Course c on c.Cno = SC.Cno where cname = 数据库基础 order by grade desc19查询VB考试成绩最低的学生的姓名、所在系和VB成绩。答:select top 1 with ties sname,sdept,grade from student s join sc on s.sno = sc.sno join course c on o = o where cname = VB order by grade asc 20. 查询有考试成绩的所有学生的姓名、修课名称及考试成绩,要求

8、将查询结果放在一张新的永久表中,假设新表名为new_sc。答:select sname, cname, grade into new_sc from student s join sc on s.sno = sc.sno join course c on o = o where grade is not null21. 分别查询信息管理系和计算机系的学生的姓名、性别、修课名称、修课成绩,并要求将这两个查询结果合并成一个结果集,并以系名、姓名、性别、修课名称、修课成绩的顺序显示各列。答:select sdept 系名, sname 姓名, ssex 性别, cname 修课名称, grade 修

9、课成绩 from student s join sc on s.sno=sc.sno join course c on o=o where sdept = 信息管理系UNIONselect sdept , sname, ssex, cname, grade from student s join sc on s.sno=sc.sno join course c on o=o where sdept = 计算机系22查询选了VB的学生学号、姓名、所在系和成绩,并对所在系进行如下处理: 当所在系为“计算机系”时,显示“CS”; 当所在系为“信息管理系”时,显示“IS”; 当所在系为“通信工程系”时

10、,显示“CO”;对其他系,均显示“OTHER”。答:select s.sno 学号,sname 姓名, case sdept when 计算机系 then CS when 信息系 then IS when 数学系 then CO else OTHER end as 所在系,grade 成绩 from student s join sc on s.sno = sc.sno join course c on o = o where cname = vb23. 用子查询实现如下查询:(1)查询选了“C001”课程的学生姓名和所在系。答:select sname,sdept from student

11、where sno in( select sno from sc where cno = C001)(2)查询通信工程系成绩80分以上的学生学号和姓名。答:select sno,sname from student where sno in( select sno from sc where grade 80) and sdept = 通信工程系(3)查询计算机系考试成绩最高的学生姓名。答:select sname from student s join sc on s.sno = sc.sno where sdept = 计算机系 and grade = (select max(grade)

12、 from sc join student s on s.sno = sc.snowhere sdept = 计算机系)(4)查询年龄最大的男生的姓名和年龄。答:select sname,sage from student Where sage = (select max(sage) from student and ssex = 男) and ssex = 男(5)查询“C001”课程的考试成绩高于“C001”课程的平均成绩的学生的学号和“C001”课程成绩。答:select sno,grade from sc where cno = C001 And grade (select avg(g

13、rade) from sc where cno = C001) 24. 创建一个新表,表名为test_t,其结构为:(COL1, COL 2, COL 3),其中:COL1:整型,允许空值。COL2:字符型,长度为10 ,不允许空值。COL3:字符型,长度为10 ,允许空值。试写出按行插入如下数据的语句(空白处表示空值)。COL1COL2COL3B11B2C22B3答:create table test_t ( COL1 int, COL2 char(10) not null, COL3 char(10) )insert into test_t values(NULL, B1, NULL)in

14、sert into test_t values(1, B2, C2)insert into test_t(COL1, COL2) values(2, B3)25. 将 “C001”课程的考试成绩加10分。 答:update sc set grade = grade + 10 where cno = C00126. 将计算机系所有选修了“计算机文化学”课程的学生成绩加10分,分别用子查询和多表连接形式实现。答:(1)子查询update sc set grade = grade + 10 where sno in( select sno from student where sdept = 计算机

15、系) and cno in(select cno from course where cname = 计算机文化学)(2)多表连接update sc set grade = grade + 10 from sc join student s on sc.sno = s.sno join course c on o = o where sdept = 计算机系 and canem = 计算机文化学27. 删除修课成绩小于50分的学生的选课记录。答:delete from sc where grade 5028. 删除信息管理系考试成绩小于50分的学生的该门课程的修课纪录,分别用子查询和多表连接形

16、式实现。答:(1) 用连接查询实现 delete from sc from sc join student s on s.sno=sc.sno where sdept = 信息管理系 and grade 50 (2)用子查询实现 delete from sc where sno in ( select sno from student where sdept = 信息管理系 ) and grade = 60 Group by sno2 利用第1题建立的视图,写出完成如下查询的SQL语句,并执行这些语句,查看执行结果。将查询语句和执行结果保存到一个文件中。(1) 查询考试成绩大于等于90分的学生

17、的姓名、课程名和成绩。答:Select sname,cname,grade From v2 where grade = 90(2) 查询选课门数超过3门的学生的学号和选课门数。答:Select * from v3 where total = 3(3) 查询计算机系选课门数超过3门的学生的姓名和选课门数。答:Select sname,total from v3 join student s on s.sno = v3.sno Where sdept = 计算机系 and total = 3(4) 查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。答:Select v4.sno,sn

18、ame,sdept,total_credit From v4 join student s on s.sno = v4.sno Where total_credit = 10(5) 查询年龄大于等于20岁的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。答:Select sname,sage,sdept,total_credit From v4 join student s on s.sno = v4.sno Where sage = 20 and total_credit = 103 修改第1题(4)定义的视图,使其查询每个学生的学号、总学分以及总的选课门数。答: Alt

19、er view v4 AsSelect sno,sum(credit) as total_credit,count(*) as total_cno From sc join course c on o = o Group by sno4 写出实现下列操作的SQL语句,执行这些语句,并在SSMS工具中观察语句执行结果。(1) 在Student表的Sdept列上建立一个按降序排序的非聚集索引,索引名为:Idx_Sdept。答:Create index Idx_Sdept on student(Sdept DESC)(2) 在Student表的Sname列上建立一个唯一的非聚集索引,索引名为:Idx

20、_Sname。答:Create unique index Idx_Sname on student(Sname)(3) 在Course表上为Cname列建立一个非聚集索引,索引名为: Idx_Cname答:Create index Idx_Cname on Course(Cname)(4) 在SC表上为Sno和Cno建立一个组合的非聚集索引,索引名为:Idx_SnoCno。答:Create index Idx_SnoCno on SC(Sno,Cno)(5) 删除在Sname列上建立的Idx_Sname索引。答:drop index Idx_Sname on Student一 设计题1 设有关

21、系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有唯一的课程名和学分。每个学生对每门课程有唯一的成绩。(1) 请指出此关系模式的候选码。(2) 写出该关系模式的极小函数依赖集。(3) 该关系模式属于第几范式?并简单说明理由。(4) 若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。答:(1)候选码:(学号,课程号)(2)学号姓名,学号所在系,学号性别,课程号课程名,课程号学分, (学号,课程号)成绩(3)属于第二范式,因为存在部分函数依赖:学号姓

22、名。(4)第三范式关系模式:学生(学号,姓名,所在系,性别)课程(课程号,课程名,学分)考试(学号,课程号,成绩),学号为引用学生的外码,课程号为引用课程的外码。2 设有关系模式:学生(学号,姓名,所在系,班号,班主任,系主任),其语义为:一个学生只在一个系的一个班学习,一个系只有一个系主任,一个班只有一名班主任,一个系可以有多个班。(1) 请指出此关系模式的候选码。(2) 写出该关系模式的极小函数依赖集。(3) 该关系模式属于第几范式?并简单说明理由。(4) 若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。解:(1)候选码:学号(2)学号姓名,学号所

23、在系,学号班号,班号班主任,所在系系主任(3)第二范式,因为有:学号班号,班号班主任,因此存在传递函数依赖:学号班主任(4)第三范式关系模式:学生(学号,姓名,所在系,班号),班号为引用班的外码,所在系为引用系的外码。班(班号,班主任)系(系名,系主任)3 设有关系模式:教师授课(课程号,课程名,学分,授课教师号,教师名,授课时数),其语义为:一门课程(由课程号决定)有确定的课程名和学分,每名教师(由教师号决定)有确定的教师名,每门课程可以由多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程有确定的授课时数。(1) 指出此关系模式的候选码。(2) 写出该关系模式的极小函数依赖集。(3

24、) 该关系模式属于第几范式?并简单说明理由(4) 若不属于第三范式,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。答:(1)候选码:(课程号,授课教师号)(2)课程号课程名,课程号学分,授课教师号教师名,(课程号,授课教师号)授课时数(3)属于第一范式。因为有:课程号课程名,因此存在部分函数依赖关系:(课程号,授课教师号)课程名(4)第三范式关系模式:课程(课程号,课程名,学分)教师(教师号,教师名)授课(课程号,教师号,授课时数),课程号为引用课程的外码,教师号为引用教师的外码。一 设计题1 将给定的E-R图转换为符合3NF的关系模式,并指出每个关系模式的主码和外码

25、。(1)图7-25所示为描述图书、读者以及读者借阅图书的E-R图。图7-25 图书借阅E-R图答:下列各关系模式中用下划线标识主码。图书(书号,书名,出版日期,作者名)读者(读者号,读者名,联系电话,所在单位)借阅(书号,读者号,借书日期,还书日期),书号为引用图书关系模式的外码,读者号为引用读者关系模式的外码。(2)图7-26所示为描述商店从生产厂家订购商品的E-R图。答:下列各关系模式中用下划线标识主码。商店(商店编号,商店名,联系电话)3NF商品(商品编号,商品名称,库存量,商品分类)3NF厂家(厂家编号,联系地址,联系电话)3NF订购(商店编号,厂家编号,商品编号,订购日期,订购数量)

26、,商店编号为引用商店关系模式的外码,厂家编号为引用厂家关系模式的外码,商品编号为引用商品关系模式的外码。3NF图7-26 商品订购E-R图(3)图7-27为描述学生参加学校社团的E-R图。图7-27 学生参加社团E-R图答:下列各关系模式中用下划线标识主码。 社团(社团号,社团名,电话,性质)3NF 学生(学号,姓名,性别,专业,社团号,参加日期),社团号为引用社团的外码。3NF2 设某工厂生产若干产品,每种产品由若干零件组成,同一种零件可用在不同的产品上。零件由不同的原材料制成,不同的零件所用的原材料可以相同。零件按所属产品的不同被分别存放在不同的仓库中,一个仓库可以存放多种不同的零件。原材

27、料按类别存放在若干仓库中,一个仓库也可以存放不同类别的材料。画出该工厂的E-R图(注:只画出实体和联系即可,不用标识属性)。答: 确定实体。本系统共有四个实体:产品、零件、材料、仓库。 因为只描述的是一个工厂的情况,因此不需要将工厂设为实体。 确定实体间的联系。 产品与零件:多对多联系,可将联系命名为“组成”。 零件与材料:多对多联系,可将联系命名为“制成”。 零件与仓库:多对多联系,可将联系命名为“存放”。 材料与仓库:多对多联系,可将联系命名为“存放”。 绘制E-R图3 设要建立描述顾客在商店的购物情况的数据库应用系统,该系统有如下要求:一个商店可有多名顾客购物,一个顾客可到多个商店购物,顾客每次购物有一个购物金额和购物日期。规定每个顾客每天在每个商店最多有一次购物,每次购物可购买多种商品。需要描述的“商店”信息包括:商店编号、商店名、地址、联系电话;需要描述的顾客信息包括:顾客号、姓名、住址、身份证号、性别。请画出描述该应用系统的E-R图,并注明各实体的属性、标识属性以及联系的种类。答:4 图7-28(a)(d)所示为某企业信息管理系统中的局部E-R图,请将这些局部E-R图合并为一个全局E

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1