DB2302690梁猛.docx

上传人:b****7 文档编号:25270864 上传时间:2023-06-06 格式:DOCX 页数:18 大小:289.33KB
下载 相关 举报
DB2302690梁猛.docx_第1页
第1页 / 共18页
DB2302690梁猛.docx_第2页
第2页 / 共18页
DB2302690梁猛.docx_第3页
第3页 / 共18页
DB2302690梁猛.docx_第4页
第4页 / 共18页
DB2302690梁猛.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

DB2302690梁猛.docx

《DB2302690梁猛.docx》由会员分享,可在线阅读,更多相关《DB2302690梁猛.docx(18页珍藏版)》请在冰豆网上搜索。

DB2302690梁猛.docx

DB2302690梁猛

《数据库原理》实验报告

题目:

实验二

基本表的数据操作

学号

姓名

班级

日期

2014302690

梁猛

10021401

16/10/14

 

一、实验内容、步骤以及结果

1.在图形用户界面中对表中的数据进行更新。

(6分,每小题2分)

(1)按照实验一图2.1-图2.4中所示数据,输入SPJ数据库所含四张表中的数据。

(2)修改S表的任意一条数据

(3)删除S表的任意一条数据。

实验具体步骤:

(1)按照实验一图2.1-图2.4中所示数据,输入SPJ数据库所含四张表中的数据。

结果如图所示:

S表

P表

J表

SPJ表

(2)修改S表中任意一条数据

注意:

修改第一行数据(把天津改为上海)

结果如图所示:

(3)删除S表中任意一条数据

注意:

删除第一行数据(上海删除)

结果如图:

2.针对SPJ数据库,用SQL语句完成下面的数据更新。

(12分,每小题3分)

(1)第五版教材第三章第5题的8-11小题。

具体实验步骤:

第8:

把全部红色零件改为蓝色

代码如下:

updateP

setcolor='蓝'

wherecolor='红'

结果如图:

第9:

由s5供给J4的零件P6改为由S3供应

代码如下:

updateSPJ

setsno='S3'

wheresno='s5'andjno='J4'andpno='P6'

结果如图:

第10:

从供应商关系中删除S2的记录,并从相应的供应关系中删除相应的记录

代码如下:

delete

fromS

wheresno='s2'

delete

fromspj

wheresno='s2'

结果如图:

S表

SPJ表

3.针对SPJ数据库,用SQL语句完成下面的数据查询。

(52分,每小题4分)

(1)第五版教材第三章第4题。

(5道小题)

(2)第五版教材第三章第5题的1-7小题。

(7道小题)

(3)查询这样的工程:

供给该工程的零件P1的平均供应量大于供给工程J1的任何一种零件的最大供应量。

实验具体步骤:

(1)第五版教材第三章第4题。

(5道小题)

--1.求供应工程J1零件的供应商号码sno:

SQL代码:

selectdistinctsno

fromspj

wherejno='j1'

结果如图:

--2.求供应工程J1零件p1的供应商号码sno:

SQL代码:

selectsno

fromspj

wherejno='j1'andpno='p1'

结果如图:

--3.求供应工程j1零件为红色的供应商号码sno:

SQL代码:

selectspj.sno

fromspj,p

wherep.color='红'andp.pnO=spj.pnoandspj.jno='j1'

结果如图:

--4.求没有使用天津供应商生产的红色零件的工程号jno:

SQL代码:

selectdistinctspj.jno

fromspj

except

selectdistinctspj.jno

fromspj

whereEXISTS

(select*

fromS,P

whereS.city='天津'

andp.color='红'andspj.pno=p.pnoandspj.sno=s.sno

结果如图:

--5.求至少使用了供应商s1所供应的全部零件的工程号jno:

SQL代码:

selectdistinctjno

fromspjspjx

wherenotexists

(select*

fromspjspjy

wherespjy.sno='s1'andnotexists

select*

fromspjspjz

wherespjx.jno=spjz.jnoandspjz.pno=spjy.pno

结果如图:

(2)第五版教材第三章第5题的1-7小题。

(7道小题)

---1.找出全部供应商所在城市和姓名

代码如下:

selectsno,sname,city

fromS

结果如图:

--2.找出所有零件的名称颜色和重量

代码如下:

selectpno,pname,color,weight

fromp

结果如图:

--3.找出使用供应商S1所供应零件的工程号码

代码如下:

selectdistinctjno

fromspj

wherespj.sno='s1'

结果如图:

--4.找出工程项目J2使用的各种零件的名称及数量

代码如下:

selectpname,sum(qty)

fromspj,p

wherespj.jno='j2'andp.pno=spj.pno

groupbypname

结果如图:

--5.找出上海厂商所供应的所用零件的号码

代码如下:

selectpno

Fromspj

wherespj.snoin

(selectdistinctsno

froms

wheres.city='上海'

结果如图:

--6.找出使用上海产的零件的工程名

代码如下:

selectdistinctjname

fromspj,j

wherespj.jno=j.jnoandspj.snoin

(selectdistinctsno

froms

wheres.city='上海'

结果如下:

--7.找出没有使用天津产的零件的工程号码

代码如下:

selectjno

fromspj

except

selectdistinctjno

fromspj

wherespj.snoin

(selectdistinctsno

froms

wheres.city='天津'

结果如图:

(3)查询这样的工程:

供给该工程的零件P1的平均供应量大于供给工程J1的任何一种零件的最大供应量。

代码如下:

selectjno

fromspj

wherepno='p1'

groupbyjno

havingavg(qty)>

(selectmax(qty)

fromspj

wherespj.jno='j1'

结果如图:

4.针对Student数据库用SQL语句完成下面的数据查询。

(12分,每小题4分)

(1)查询不选修“C语言”课程的学生学号。

(2)查询每个学生已经获得的学分的总分(成绩及格表示获得该门课的学分),并按照所获学分由高到低的顺序输出学号,姓名,所获学分。

(3)查询这样的学生姓名:

该学生选修了全部课程并且其中一门课在90分以上。

具体实验步骤:

(1)求不选修C语言课程的学生学号。

代码如下:

selectsno

froms

except

selectsno

fromsc

wherecno=

(selectcno

fromc

wherecname='c语言'

结果如下:

(2)查询每个学生已经获得的学分的总分(成绩及格表示获得该门课的学分),并按照所获学分由高到低的顺序输出学号,姓名,所获学分。

代码如下:

SelectS.sno,sname,sum(ccredit)totalcredit

FromS,SC,C

where

S.sno=SC.snoandSC.cno=C.cnoandgrade>=60

groupbyS.sno,sname

orderbytotalcredit

结果如下:

(3)查询这样的学生姓名:

该学生选修了全部课程并且其中一门课在90分以上。

代码如下:

selectsname

froms

wheresnoin

(selectsno

fromsc

wheresnoin

(selectsno

froms

wherenotexists

(select*

fromc

wherenotexists

(select*

fromsc

wheresno=s.snoandcno=o

groupbysno

havingmax(grade)>90

结果如下:

没有结果

5.针对Student数据库用至少三种不同的SQL语句进行查询:

查询选修了课程名为“数据库原理”的学生学号和姓名,然后自己设计实验,用数据比较分析三种查询的效率。

(18分)

第一种:

 

 selectS.sno,snamefromS,SC,C

whereS.sno=SC.snoandSC.cno=C.cnoandcname='数据库'

第二种:

 

 selectS.sno,snamefromSwheresnoin(

selectsnofromSCwherecnoin(

selectcnofromCwherecname='数据库'

第三种:

 

selectdistinctS.sno,sname

fromS,SC,C

whereS.sno=SC.snoandSC.cnoin

selectcnofromCwherecname='数据库'

 

结论:

第二种效率最高。

二、实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)

(1)遇到的问题最让我难受的是数据库中表被修改后,找不到撤销的方法,只能重新还原或者重新输入修改。

还有就是表中列的属性后来修改老是弹出错误,提示不允许修改属性值,最后通过网络查询才解决了问题。

(2)SQL语言很符合人思考逻辑,但是这需要不断地练习才能举足轻重的编出代码,这次实验让我感受到了编程的多样化以及效率的提高。

(3)通过这次实验,使我加深了对数据库的兴趣,锻炼了动手操作能力。

希望在以后的实验课上经过努力是自己的数据库知识越来越丰富,能力越来越强。

批阅者:

批阅日期:

实验成绩:

批注:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

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

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