1、数据库原理实验报告学号 姓名 班级 日期题目:实验二基本表的数据操作 2014302692 孟玉军 10011402 16.10.13一. 实验内容、步骤以及结果1 在图形用户界面中对表中的数据进行更新。(6 分,每小题 2分)(1) 按照实验一图 2.1-图 2.4中所示数据,输入 SPJ数据库所含四张表中的数据。S表:P表:J表:SPJ表:(2) 修改 S表的任意一条数据把 S表中 S1的 status数据进行了修改(3) 删除 S表的任意一条数据。删除了 S3的数据2 针对 SPJ数据库,用 SQL语句完成下面的数据更新。(12 分,每小题 3分)(1) 第五版教材第三章 第 5题的 8
2、-11小题。红色零件颜色修改为蓝色:UPDATE PSET COLOR=蓝WHERE SNO=红由 S5供给 J4的零件 P6改为由 S3提供:Update SPJSet sno=S3Where sno=S5and pno=P6and jno=J4从供应商关系中删除 S2的记录 ,从供应关系表中删除相应的记录:Delete From SWhere sno=S2Delete From SPJWhere sno=S211.请将(S2,J6,P4,200)插入供应情况关系:Insert into SPJValues (S2, P4,J6,200)3 针对 SPJ数据库,用 SQL语句完成下面的数据查
3、询。(52 分,每小题 4分)(1) 第五版教材第三章 第 4题。(5 道小题):select distinct sno from SPJwhere jno=J1:select distinct sno from SPJwhere jno=J1and pno=P1:select snofrom SPJ,Pwhere jno=J1and SPJ.pno=P.pno and color=红:select distinct jno from SPJwhere jno not in(select jno from SPJ,P,Swhere SPJ.sno=S.sno and city=天津and SP
4、J.pno=P.pno and color =红) :select jno from SPJwhere pno in (select pno from SPJ where sno=S1 )group by jnohaving count(pno)=(select count(pno) from SPJ where sno =J1)(2) 第五版教材第三章 第 5题的 1-7小题。(7 道小题):select sno,sname from S:select pname ,color ,weight from P :select distinct jno from SPJwhere sno=S1:
5、select pname,qtyfrom SPJ,Pwhere spj.pno=p.pno and jno=J2:select distinct pnofrom S,SPJwhere spj.sno=s.sno and city=上海:select distinct jnamefrom spj,j,swhere spj.sno=s.sno and s.city =上海and spj.jno=j.jno:select distinct jnofrom spj,swhere jno not in (select jno from spj,swhere spj.sno=s.sno and city=
6、天津)(3) 查询这样的工程:供给该工程的零件 P1的平均供应量大于供给工程 J1的任何一种零件的最大供应量:select spj.jno,jnamefrom j,spjwhere spj.jno=j.jno and pno=P1 and qty (select MAX(qty)from spjwhere spj.jno=J1)4 针对 Student数据库用 SQL语句完成下面的数据查询。(12 分,每小题 4分)(1) 查询不选修“C 语言”课程的学生学号。select distinct sno from sc where sno not in (select snofrom sc,cwh
7、ere cname=C语言 and o=o)(2) 查询每个学生已经获得的学分的总分(成绩及格表示获得该门课的学分),并按照所获学分由高到低的顺序输出学号,姓名,所获学分。select SC.sno,sname ,sum(ccredit) as ccredit_sumfrom C,S,SCwhere o=o and grade60 and sc.sno=s.snogroup by SC.sno,snameorder by ccredit_sum desc(3) 查询这样的学生姓名:该学生选修了全部课程并且其中一门课在 90分以上。select sc.sno,snamefrom sc ,swhe
8、re sc.sno=s.snogroup by sc.sno,snamehaving max(grade)90 and count(*)=(select count(*)from c)没有符合要求的数据项5 针对 Student数据库用至少三种不同的 SQL语句进行查询:查询选修了课程名为“数据库原理”的学生学号和姓名,然后自己设计实验,用数据比较分析三种查询的效率。(18 分)(1). 自然连接select sc.sno,snamefrom s,sc,cwhere s.sno=sc.sno and o=o and cname =数据库(2).嵌套子查询+自然连接select distinct
9、 sc.sno,sname from s,scwhere s.sno=sc.sno and sc.sno =(select sno from c,scwhere o=o and cname=数据库 )(3).嵌套查询select sno,sname from swhere sno in (select snofrom sc where cno in(select cnofrom cwhere cname =数据库) )结论:自然连接代码最短,但是速度最快嵌套查询速度次之 自然连接和嵌套查询结合慢二. 实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。1.熟悉了一些具体的操作,查询操作的一些注意事项2.掌握了利用 datediff函数求查询运行时间批阅者: 批阅日期:实验成绩: 批注: