实验四 数据更新与视图.docx
《实验四 数据更新与视图.docx》由会员分享,可在线阅读,更多相关《实验四 数据更新与视图.docx(13页珍藏版)》请在冰豆网上搜索。
实验四数据更新与视图
实验四数据更新与视图
一、实验目的
1、掌握数据更新语句的使用;
2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
二、预备知识
1.数据更新基本语句及其格式
(1)插入操作
SQL的数据插入语句INSERT有两种形式:
①插入单个元组,使用命令:
INSERTINTO基本表名(列名表)
VALUES(元组)
②插入子查询的结果:
INSERTINTO基本表名(列表名)
查询语句
(2)修改操作
当需要修改指定关系中元组的值时,可使用下列语句实现:
UPDATE基本表名
SET列名1=值表达式1[,列名2=值表达式2…]
[WHERE条件表达式]
(3)删除操作
删除关系中满足条件的元组语句格式如下:
DELETEFROM<表名>
Where<条件表达式>
三、实验内容
1.在实习二创建的“gongcheng”数据库中使用SQL语句完成以下操作:
(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:
供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。
代码:
insertintoS(Sno,Sname,City)
values('S9','英特尔','西安')
结果;
(2)请将北京供应商的供应数量加20
代码:
updateSPJsetQTY=QTY+20
whereSnoin
(selectSnofromSwhereCity='北京')
结果:
(3)零件P3已经停产,请将P3的相关信息从数据库中删除。
代码:
delete
fromSPJ
wherePno='p3'
delete
fromP
wherePno='p3'
结果:
(4)创建零件名为螺丝刀的供应情况的视图P_ls,包括供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY).
代码:
createviewP_ls
AS
selectSname,Pnsme,Weight,Jno,QTY
fromS,P,SPJ
wherePnsme='螺丝刀'andS.Sno=SPJ.Sno
结果:
(5)在视图P_ls中查询供应数量为500的供应商姓名。
代码:
selectSname
fromP_ls
whereQTY=500
结果:
2.在实习一创建的“学生选课管理”数据库中使用SQL语句完成以下操作:
(1)学生孙天要退学,请删除该学生的所有记录。
delete
fromSC
whereSnoin
(selectSnofromSwhere(Sname='孙天'));
delete
fromS
whereSname='孙天';
(2)将学号为09105103学生的所有课程成绩加10分。
代码:
updateSCsetGrade=Grade+10
whereSno='9105103'
执行前:
执行后:
(3)学校开了一门新课,课称号为056课程名为信息系统分析,请将此门课程的信息插入。
代码:
insertintoC(Cno,Cname)
values('056','信息系统分析')
结果:
(4)创建查询每个学生的修课学分的视图,要求列出学生学号及总学分。
代码:
createviewP_one(Sno,tCredit)
as
selectSno,sum(Credit)
fromC,SC
whereC.Cno=SC.Cno
groupbySno;
结果:
(5)在创建的视图中查询学生李丽所修的学分数。
代码:
createviewP_two(tCredit)
as
selectsum(Credit)
fromC,SC,S
whereC.Cno=SC.CnoandS.Sno=SC.SnoandS.Sname='李丽';
结果:
3.完成课本P127第5题(8)-(11)和第11题。
(8)代码:
updateP
setColor='蓝'
whereColor='红'
结果:
(9)
updateSPJ
setSno='S3'
whereSno='S5'andJno='J4'
(10)
deletefromSPJ
whereSno='S2'
deletefromS
whereSno='S2'
(11)
insertS(Sno)
values('S2')
insertSPJ(Sno,Jno,Pno,QTY)
values('S2','J6','P4',200)
11.
createviewthree(Sno,Pno,QTY)
as
selectSno,Pno,QTY
fromSPJ
(1)
createviewthree(Sno,Pno,QTY)
as
selectSno,Pno,QTY
fromSPJ,J
whereJ.Jno=SPJ.JnoandJ.Jname='三建'
(2)
selectdistinct*
fromthree
whereSno='S1'
实验总结
1,完成情况
这几次实验内容明显的比第一次实验要多,但我们事先写好代码,并且早去一会儿,晚走一会儿,基本可以在机房完成。
大部分题目可以自己独立完成,个别题目较难,但经过和同学讨论或问老师,最终把它做出来了。
2,相关基本理论:
用语句实现了数据的定义,数据的查询,数据更新与视图。
主要是SQl语句的应用与理解。
3,存在问题:
对于基本理论的理解还算可以,但是在实验过程中暴露出眼高手低的问题。
有些操作不熟悉,代码运用不灵活,一遇到嵌套试的代码就会出问题。
还有就是读题要细心,有时把表做出来了,突然发现不是题意要求的。
4,自我评价
对自己上机表现基本满意,每节课的时间都被充分利用,在紧张而充实中完成实验内容,练习了所学知识。
但有时会有漏掉个别语句的问题,说明还不够熟悉,需在课后多加练习。