收藏 分销(赏)

上海大学数据库上机作业上机练习上课讲义.doc

上传人:a199****6536 文档编号:3786379 上传时间:2024-07-18 格式:DOC 页数:6 大小:57KB 下载积分:6 金币
下载 相关 举报
上海大学数据库上机作业上机练习上课讲义.doc_第1页
第1页 / 共6页
上海大学数据库上机作业上机练习上课讲义.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
上海大学数据库上机作业上机练习 精品文档 上海大数据库 《数据库系统与应用》上机习题************************************************************************************************* 第六部分、SQL高级应用 要求掌握:熟练掌握T-SQL语言,了解事务处理的相关语句,学会用游标方式对数据库进行操作。 一、 写出书上练习题10中第14、15、16、17题的结果,并上机验证。完成第20、21、22、23、24题 14. 给出下列程序的执行结果 USE school SELECT sno,cno,degree FROM score WHERE sno IN (103,105) ORDER BY sno COMPUTE AVG(degree) BY sno GO 15. 给出下列程序的执行结果 USE school GO SELECT teacher.tname AS '教师',student.sclass AS '班号',AVG(score.degree) AS '平均分' FROM student,course,score,teacher WHERE student.sno=score.sno AND o=o AND course.tno=teacher.tno GROUP BY teacher.tname,student.sclass WITH CUBE GO 16. 给出下列程序的执行结果 USE school GO BEGIN TRANSACTION Mytran --启动事务 INSERT INTO teacher VALUES(999,'张瑛','男','1960/03/05','教授','计算机系') --插入一个教师记录 SAVE TRANSACTION Mytran --保存点 INSERT INTO teacher VALUES(888,'胡丽','男','1982/8/04','副教授','电子工程系') ROLLBACK TRANSACTION Mytran COMMIT TRANSACTION GO SELECT * FROM teacher --查询教师表的记录 GO DELETE teacher WHERE tno='999' --删除插入的记录 GO 17. 编写一个程序,查询最高分的课程名 USE school SELECT cname FROM course,score WHERE o=o AND degree=(SELECT MAX(degree) FROM score) 二、 完成书上上机实验题5 1.1)进入企业管理器,展开数据库,单击“factory”,单击下方的“关系图”。 2)在数据库关系图中,选择要表示要从关系图中删除的关系的联接线。 3)右击关系线,并从快捷菜单中选择“从数据库中删除关系”。 4)出现一个消息框,提示确认删除。单击“是”按钮。 2.USE factory SELECT worker.职工号,worker.姓名,salary.工资 FROM worker,salary WHERE worker.职工号=salary.职工号 ORDER BY worker.职工号,worker.姓名 COMPUTE SUM(salary.工资) BY worker.职工号 3.USE factory SELECT worker.性别,depart.部门名,AVG(salary.工资) AS '平均工资' FROM worker,salary,depart WHERE worker.职工号=salary.职工号 AND worker.部门号=depart.部门号 GROUP BY worker.性别,depart.部门名 WITH CUBE ORDER BY worker.性别,depart.部门名 4.USE factory GO INSERT INTO worker VALUES(20,'陈立','女','55/03/08',1,'75/10/10',4) GO INSERT INTO depart VALUES(5,'设备处') GO SELECT worker.职工号,worker.姓名,depart.部门名 FROM worker FULL JOIN depart ON(worker.部门号=depart.部门号) ORDER BY worker.职工号 GO DELETE FROM worker WHERE 职工号='20' GO DELETE FROM depart WHERE 部门号='5' GO 5.USE factory SELECT worker.职工号,worker.姓名,depart.部门名,salary.日期,salary.工资 FROM worker,salary,depart WHERE worker.职工号=salary.职工号 AND worker.部门号=depart.部门号 AND salary.工资=(SELECT MAX(工资) FROM salary) 6.USE factory SELECT 部门名 FROM depart WHERE 部门号=(SELECT 部门号 FROM worker WHERE 职工号=(SELECT 职工号 FROM salary WHERE 工资=(SELECT MAX(工资) FROM salary ))) 7.USE factory SELECT 职工号,姓名 FROM worker WHERE 职工号 IN(SELECT 职工号 FROM salary GROUP BY 职工号 HAVING AVG(工资)<(SELECT AVG(工资) FROM salary )) 8.USE factory GO SET NOCOUNT ON --声明变量 DECLARE @dname char(10) --声明游标 DECLARE d_cursor CURSOR FOR SELECT 部门名 FROM depart WHERE 部门号= (SELECT 部门号 FROM worker WHERE 职工号= (SELECT 职工号 FROM salary WHERE 工资= (SELECT MAX(工资) FROM salary ) ) ) --打开游标 OPEN d_cursor --提取第一行数据 FETCH NEXT FROM d_cursor INTO @dname --打印表标题 PRINT '部门名' WHILE @@FETCH_STATUS =0 BEGIN --打印一行数据 PRINT @dname --提取下一行数据 FETCH NEXT FROM d_cursor INTO @dname END --关闭游标 CLOSE d_cursor --释放游标 DEALLOCATE d_cursor GO 9.USE factory GO SET NOCOUNT ON --声明变量 DECLARE @no int,@name char(10) --声明游标 DECLARE w_cursor CURSOR FOR SELECT 职工号,姓名 FROM worker WHERE 职工号 IN (SELECT 职工号 FROM salary GROUP BY 职工号 HAVING AVG(工资)<(SELECT AVG(工资) FROM salary )) --打开游标 OPEN w_cursor --提取第一行数据 FETCH NEXT FROM w_cursor INTO @no,@name --打印表标题 PRINT '职工号 姓名' WHILE @@FETCH_STATUS =0 BEGIN --打印一行数据 PRINT CAST(@no AS char(8))+@name --提取下一行数据 FETCH NEXT FROM w_cursor INTO @no,@name END --关闭游标 CLOSE w_cursor --释放游标 DEALLOCATE w_cursor GO 10.USE factory GO DECLARE @num int SELECT @num=COUNT(*) FROM worker PRINT '原职工人数:'+CAST(@num AS CHAR(3)) GO DECLARE @num int BEGIN TRANSACTION --启动事务 --插入一个职工记录 INSERT INTO worker VALUES(20,'陈立','女','55/03/08',1,'75/10/10',4) PRINT '插入一个职工记录' SELECT @num=COUNT(*) FROM worker PRINT '职工人数:'+CAST(@num AS CHAR(3)) ROLLBACK TRANSACTION --回滚事务 GO PRINT '回滚事务' DECLARE @num int SELECT @num=COUNT(*) FROM worker PRINT '职工人数:'+CAST(@num AS CHAR(3)) GO 收集于网络,如有侵权请联系管理员删除
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服