实验6-数据更新与视图
dbo.Borrow ON dbo.Books.图书编号= dbo.Borrow.图书编号INNER JOIN
dbo.ReaderCategory ON dbo.BookCategory.种类编号= dbo.ReaderCategory.种类编号INNER JOIN
dbo.Readers ON dbo.BookCategory.种类编号= dbo.Readers.种类编号
5)将表P和SPJ的自然连接定义为一个视图;
6)对上面的视图进行查询----查询工程代码为J2的工程使用的所有零件的名称和数量;
3.导入“图书借阅”5张表的关系图;导入供应商等四张表的关系图。
四、实验结果与分析
1.
1)
CREATEVIEWONE
ASSELECT姓名,Books.图书编号,Books.图书名,借阅日期,应还日期
1)
I、新建一个与零件表P相同内容的视图FIVE_P:
CREATEVIEWFIVE_P
ASSELECT*
FROM零件表P
II、再通过UPDATE语句将通“红色”成“蓝色”:
UPDATEFIVE_P
SETColor='蓝色'
WHEREColorIN(SELECTColor
FROMFIVE_P
WHEREColor='红色')
4)原“通盛”出版社更名为“盛达”出版社,请在数据库中完成此操作;
2.对“供应”涉及的4张表,用SQL语句完成以下要求
1)把全部红色零件的颜色改为蓝色;
2)由S5供给J4的零件P1改为由S2供应;
3)从供应商关系中删除S2的纪录,并从供应零件关系中删除相应纪录;(注意语句的顺序)
4)将(S9,J8,P4,200)插入供应零件关系;(提示:需要不止一句语句完成)
FIVE_P.PN,FIVE_P.Pname,FIVE_P.Color,FIVE_P.Weight
FROMSIX_GongYingGuangXiSPJ,FIVE_P
WHERESIX_GongYingGuangXiSPJ.PN=FIVE_P.PN
6)
SELECTPname,QTY
FROMEINGTP_SPJ
2.预习在视图(表)中插入数据的方法:“INSERT INTO S( ) VALUES()”
3.预习在视图(表)中更新数据的方法:”UPDATESETWHERE”
4.预习在视图(表)中删除数据的方法:“DELETEFROMWHERE”
5.预习在视图(表)中查找数据的方法:“SELECTFROMWHERE”
《数据库原理及应用》课程实验报告
实验名称
数据更新与视图
实验序号
实验日期
姓名
院系
计算机科学与信息工程学院
班级
学号
专业
计算机科学与技术
指导教师
成绩
一、实验目的和要求
1.SQL对其他各种数据库的对象,如关系图的操作
2.对视图的操作
3.SQL更新操作命令
二、实验预习内容
1.预习用CREATE语句新建视图的方法:“CREATEVIEWASSELECTFROMWHERE”
FROMReaders,Books,Borrow
WHEREBooks.图书编号=Borrow.图书编号ANDReaders.读者编号=Borrow.读者编号
2)
CREATEVIEWTWO
ASSELECTDISTINCT图书编号,图书名,作者,出版社,BookCategory.种类名称,价格
FROMBooks,BookCategory
CREATEVIEWSEVENGongYingS
ASSELECT*
FROM供应表S
②在从视图SEVENGongYingS中删除供应商S2的信息:
DELETE
FROMSEVENGongYingS
WHERESN='S2'
4)
INSERTINTOSIX_GongYingGuangXiSPJ(SN,JN,PN,QTY)
SETSN='S5'
WHERESN='S2'ANDJN='J4'ANDPN='P1'
3)
I、首先从视图SIX_GongYingGuangXiSPJ中删除供应商S2的供应纪录:
DELETE
FROMSIX_GongYingGuangXiSPJ
WHERESN='S2'
II、
①新建一个与供应表S内容相同的视图SEVENGongYingS:
4)
I、新建一个与表Books完全一样的视图FOUR:
CREATEVIEWFOUR
ASSELECT*
FROMBooks
II、再通过UPDATE语句将通“盛改”成“盛达”:
UPDATEFOUR
SET出版社='盛达'
WHERE出版社IN(SELECT出版社
FROMFOUR
WHERE出版社='通盛')
2.
III、导入“供应商关系”4张表的关系图:
SELECT
FROM dbo.工程表J INNER JOIN
dbo.供应关系表SPJ ON dbo.工程表J.JN = dbo.供应关系表SPJ.JN INNER JOIN
dbo.零件表P ON dbo.供应关系表SPJ.PN = dbo.零件表P.PN CROSS JOIN
WHEREJN='J2'
Байду номын сангаас3.
I、首先处理“此数据库没有有效的所有者,因此无法安装数据库关系图支持对象”问题:
use[实验二]
EXECsp_changedbowner'sa'
II、导入“图书借阅”5张表的关系图:
SELECT
FROM dbo.BookCategory INNER JOIN
dbo.Books ON dbo.BookCategory.种类编号= dbo.Books.种类编号INNER JOIN
dbo.供应表S
注:空间不够,可以增加页码。
CREATEVIEWTHREE
ASSELECT*
FROMReaders
II、利用INSERT INTO S( ) VALUES()语句插入王小毛的数据到视图THREE中:
INSERTINTOTHREE(读者编号,姓名,种类编号,工作单位,住址,性别)
VALUES('1088','王小毛','2','上海应用技术学院','漕宝路号','男')
VALUES('S9','J8','P4','200')
5)
CREATEVIEWEINGTP_SPJ(SN,JN,QTY,PN,Pname,Color,Weight)
ASSELECTSIX_GongYingGuangXiSPJ.SN,SIX_GongYingGuangXiSPJ.JN,
SIX_GongYingGuangXiSPJ.QTY,
2)
I、新建一个与供应关系表SPJ相同内容的视图SIX_GongYingGuangXiSPJ:
CREATEVIEWSIX_GongYingGuangXiSPJ
ASSELECT*
FROM供应关系表SPJ
II、再通过UPDATE语句把由S5供给J4的零件P1改为由S2供应:
UPDATESIX_GongYingGuangXiSPJ
WHERE(价格=(SELECTMIN(价格)FROMBooks)ANDBooks.种类编号=BookCategory.种类编号)
OR(价格=(SELECTMAX(价格)FROMBooks)ANDBooks.种类编号=BookCategory.种类编号)
3)
I、新建一个与表Readers完全一样的视图THREE:
三、实验项目摘要
1.对“图书借阅”涉及的5张表,用SQL语句完成以下要求
1)创建一个视图View1,包括的信息有:读者姓名、图书编号和图书名,借阅日期和应还日期;
2)创建一个视图View2,内容是所有图书中最高定价和最低定价的图书的部分信息,包括:图书编号、图书名、作者、出版社、种类名称、价格;
3)加入一个新的读者信息:编号--1088,姓名--王小毛,种类--2,工作单位--上海应用技术学院,住址--漕宝路120号,性别--男,其它信息暂无;