实验报告实验课程:数据库系统概论学生姓名:xxxxxx学号:xxxxxxxx专业班级:xxxxxxx2014年 12 月 12 日南昌大学实验报告一一、实验项目名称数据库创建和单表查询二、实验目的熟悉基本表的建立和单表查询操作三、实验基本原理和内容1、创建SPJ数据库(举例,图为P表)2、找出所有供应商的姓名和所在城市select sname,cityfrom S3、找出所有零件的名称、颜色、重量select pname,color,weightfrom P4、找出使用供应商S1所供应零件的工程号码select jnofrom SPJwhere sno='s1'group by jno四、主要仪器设备及耗材PC机一台五、参考资料卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6南昌大学实验报告二一、实验项目名称多表查询二、实验目的熟悉连接查询, 嵌套查询三、实验基本原理和内容1、找出工程项目J2使用的各种零件的名称及数量select pname,sum(qty)as sumqtyfrom P,SPJwhere P.PNO=SPJ.PNO and JNO='j1'group by pname2、找出上海厂商供应的所有零件号码select pnofrom S,SPJwhere S.SNO=SPJ.SNO and s.city='上海'group by pno3、找出使用上海产的零件的工程名称Select jnamefrom Jwhere jno in (s elect jnofrom S,SPJwhere S.SNO=SPJ.SNO and s.city='上海'group by jno)4、找出没有使用天津产的零件的工程号码select jnofrom SPJwhere jno not in(select jnofrom S,SPJwhere S.SNO=SPJ.SNO and s.city='天津'group by jno)group by jno四、主要仪器设备及耗材PC机一台五、参考资料卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6南昌大学实验报告三一、实验项目名称增加、删除、修改数据库记录二、实验目的熟悉数据库增、删、改操作三、实验基本原理和内容1、把全部红色零件的颜色改为蓝色update Pset color='蓝'Where color='红'2、由S5供应的J4的零件改为由S3供应,请作必要的修改update SPJSet sno='S3'where sno in(select snofrom SPJwhere pno in (select pnofrom SPJWhere sno='s5' and jno='j4')group by sno)3、从供应商关系中删除S2的记录,并从供应商关系中删除相应的记录deletefrom swhere sno='s2'deletefrom SPJwhere SNO='s2'\4、请将(S2,J6,P4,200)插入供应情况关系insertinto spj(sno,pno,jno,qty)values('S2','J6','P4',200)四、主要仪器设备及耗材Pc机一台五、参考资料卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6南昌大学实验报告四一、实验项目名称视图创建和查询二、实验目的熟悉视图定义和使用视图查询三、实验基本原理和内容请为三建公司项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量.针对该视图完成下列查询:首先建立试图create view J_sanjian(Sno,Pno,Q ty)asselect Sno,Pno,Q tyfrom j,spjwhere j.jno=spj.jno and JNAME='三建'1、找出三建工程项目使用的各种零件代码及其数量select pno,sum(qty)from J_sanjiangroup by pno2、找出供应商S1的供应情况select sno,pno,qtyfrom J_sanjianwhere sno='s1'四、主要仪器设备及耗材PC机一台五、参考资料卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6南昌大学实验报告五一、实验项目名称数据库查询二、实验目的通过实验熟悉掌握数据库查询三、实验基本原理和内容一、有一个“学生-课程”数据库,数据库中包括三个表:(1)“学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为:Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2)“课程”表Course由课程号(Cno)、课程名(Cname)、q任课教师(Cteacher)、学分(Ccredit)四个属性组成,可记为:Course(Cno,Cname,Cteacher,Ccredit) Cno为关键字。
(3)“学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为:SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。
用SQL语句完成下列操作:1、建立一个“学生-课程”数据库,要求:表Student,表Course不少于4条记录。
(其中表Student要求输入包括考生本人姓名的记录一条)表SC不少于10条记录。
2、查询考试成绩不及格的学生的学号, 课程号,成绩。
select sno,cno,gradefrom SCwhereGrade<603、计算选修了1号课程的学生平均成绩,要求显示学号和平均成绩。
select sno,avg(grade)as avggradefrom SCwhere sno in(select snofrom SCwhere Cno='1')group by sno4、查询每个系年龄最大的学生的学号,年龄。
select Sno,sagefrom(select sdept,max(sage)as xsagefrom Studentgroup by sdept)as x,studentwhere x.Sdept=Student.Sdept and x.xsage=student.sageorder by sno5、查询没有选修过“李明”老师讲授课程的所有学生姓名。
select snamefrom studentwhere sno not in(select snofrom scwhere cno=(select cnofrom coursewhere cteacher='李明'))6、查询有二门以上(含两门)不及格课程的学生姓名select snamefrom student,(select Sno,COUNT(sno)as xfrom SCcwhere Grade<60group by sno)as ywhere y.sno=Student.Sno and y.x>=2(因所建表中并没有这种情况,故不截图)7、查询既学过“1”号课程,又学过“2”号课程的所有学生姓名select snamefrom Student,SCwhere student.sno=sc.sno and Cno='1'and Cno='2'8、查询选修的课程的成绩大于该课程的平均成绩的所有学生姓名select snamefrom studentwhere sno in(select snofrom SC,(select cno,A VG(grade)as xfrom SCgroup by cno)as ywhere o=o and SC.Grade>xgroup by sno)四、主要仪器设备及耗材PC机一台五、思考讨论题或体会或对改进实验的建议(1)在调试时,遇到什么问题?是怎样解决的?(2)通过实验,获得哪些收获、体会?六、参考资料卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6南昌大学实验报告六一、实验项目名称数据库编程二、实验目的通过实验熟悉存储过程使用三、实验基本原理和内容(1)建立一个存储过程,求某个货品的订单总额.Create procedure goods_ordersum@goodsname varchar(20),@ordersum int outputasselect@ordersum=sum(rprice)from orderswhere orders.gname=@goodsnamedeclare@ordersum intexec goods_ordersum'hub',@ordersum outputprint@ordersum(2)建立一个存储过程, 查询某个货品的订货情况. Create procedure goods_order@goodsname varchar(20)asselect gname,cuno,rnum,rpricefrom orderswhere orders.gname=@goodsnameexec goods_order'hub'四、主要仪器设备及耗材PC机一台五、参考资料卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6南昌大学实验报告七一、实验项目名称数据库编程二、实验目的通过实验熟悉触发器使用三、实验基本原理和内容(1)在Orders表上建立一个插入触发器,在添加一个订单时,减少Goods表相应货品记录中的库存量.create trigger ordersinserton ordersfor insertas beginupdate goodsset gqty=gqty-inserted.rnumfrom goods,insertedwhere goods.gname=inserted.gnameend;insertinto orders(gname,cuno,rnum,rprice,rno)values('MP3','605',2,500,'01')(2)在Goods表中上建立一个删除触发器, 实现Goods表和Orders表的级联删除. Create trigger goodsdeleteOn goodsAfter deleteAsDelete from ordersWhere gname in(select gnamefrom deleted)delete from goodswhere gname='hub'执行删除hub之后的表的情况四、主要仪器设备及耗材PC机一台五、参考资料卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6南昌大学实验报告八一、实验项目名称数据库的备份与恢复二、实验目的通过实验熟悉数据库的备份与恢复三、实验基本原理和内容建立一个学生STUDENT数据库的备份与恢复.(1)打开企业管理器,打开相应的数据库(这里以备份“shujuku”这个名称的数据库为例)(2)在数据库上右键->所有任务->备份数据库,如图所示(3)弹出备份窗口,填写备份文件的来源,这里是“shujuku”并根据需要修改存储属性及备份文件的名称,这里我们命名备份的数据库为“shujuku1”,存储与D盘。