实验四 数据更新
实验四数据库更新,视图和数据控制

嘉应学院计算机学院一、实验目的通过实验掌握数据库更新的方法和完整性约束的概念以及视图建立和操作方法。
掌握SQL SERVER的数据控制和安全性设计的基本方法, 存储过程的建立和使用方法。
二、实验原理1、插入数据INSERTINTO<表名〉[<属性列1〉[,<属性列2〉...)]VALUES(<常量1>[,<常量2>]...)2、修改数据UPDATE <表名>SET<列名〉=<表达式〉[,<列名〉=<表达式〉]...[WHERE<条件〉]3. 删除数据DELETEFROM<表名>[WHERE<条件>4. 建立视图CREATE VIEW <视图名〉[(列名〉[,(列名〉]...AS <子查询〉[WITH CHECK OPTION]5. 授权GRANT<权限>[,<权限>]...ON<对象类型〉<对象名>]TO<用户> [,<用户>]...[WITH GRANT OPTION]三、实验环境操作系统:Windows Server 2003 、Windows 7编译环境:SQL Server Enterprise Manager数据库管理系统:Microsoft SQL Server 2005四、实验步骤及内容(一)数据库更新1. 在school数据库中,确保表之间已经建立关系,用企业管理器建立数据库的Diagrams2. 在course 表中删除cno=1的记录,有什么结果?未删除前course表的内容如下:执行删除操作后,结果如下:3. 在Diagrams中编辑course表和 sc表之间的关系,选择cascade delete related records执行级联删除操作前,三个表之间的关系如图:在SC表中的属性关系里选择级联删除相关记录,如图:再查看三表之间的关系:重复2的操作,观察course 表和 sc表的变化,有什么结果,为什么?可观察到:Course表与sc表中的cno=‘1’的记录都删除了。
实验四 数据更新

实验四数据更新一、实验目的1、掌握SQL语言的数据更新操作。
2、掌握创建索引的目的和方法。
二、实验预习1、INSERT语句格式:INSERTINTO<表名>[(<属性列1>[,<属性列2>]……)]VALUES(<常量1>[,<常量2>]…);2、UPDATE语句格式:UPDATE<表名>SET <列名>=<表达式>[,<列名>=<表达式>]…[WHERE<条件>];3、DELETE语句格式:DELETEFROM<表名>[WHERE<条件>];三、实验内容及要求1、插入数据(1)在学生表Student中插入数据:Sno:9512102 Sname:刘晨 Ssex:男 Sage:20 Sdept:计算机系INSERTINTO studentVALUES('9512102','刘晨','男','20','计算机系');(2)在课程表Course中插入数据:Cno:C06 Cname:数据结构Ccredit:5 Semster:4 INSERTINTO courseVALUES('C06','数据结构','5','4',NULL);(3)在选课表SC中插入95211班学生选修C04的选课信息。
提示:多行数据插入,插入的数据的sno从student表中查询而来,插入的cno为“C04”INSERTINTO sc(sno,cno)SELECT sno,'C04' FROM student WHERE sno LIKE '95211%';2、修改数据(1)将所有学生的年龄增加1岁。
数据库实验报告四

姓名:学号:专业班级:日期:实验四数据更新、视图的创建与修改一、实验目的1、学会使用INSERT、UPDA TE、DELETE等SQL语句进行数据更新;2、学会使用CREATE、DROP等SQL语句创建和删除视图。
二、实验内容1、在sql server2008中使用INSERT、UPDATE、DELETE语句进行数据更新。
2、在sql server2008中使用CREATE、DROP语句创建和删除视图。
三、实验步骤1、在数据库S-C的三个表中分别插入以下数据:学生表student:课程表course:成绩表sc:2、在sql server2008中:(1) 选择数据库S-C,用INSERT语句向学生表student中插入一个新生记录(学号:95020;姓名:陈东;性别:男;所在系:IS;年龄:18)。
(2) 在数据库S-C中建立一个新表deptage,其中一个字段存放系名,另一个字段存放相应得学生平均年龄;然后对学生表student按系分组求平均年龄,再把系名和平均年龄存入新表中。
3、在sql server2008用UPDA TE语句更改表中数据。
(1) 将所有学生的年龄都增加1岁。
(2) 将IS系全体学生的成绩置零。
(3) 分别运行SQL语句,观察运行结果。
4、在sql server2008中用DELETE语句删除表中数据。
(1) 删除学号为“95020”的学生记录。
(2) 删除IS系所有学生的成绩记录。
(3) 分别运行SQL语句,观察运行结果。
5、在sql server2008中用CREATE语句建立视图。
(1) 建立IS系学生的视图IS_student。
(2) 建立IS系选修了1号课程的学生的视图IS_s1。
(3) 建立IS系选修了1号课程且成绩载90分以上的学生的视图IS_s2。
(4) 分别运行SQL语句,观察运行结果。
6、在查询分析器中用DROP语句删除视图IS_student,并观察结果。
[小学]实验四数据更新、视图
![[小学]实验四数据更新、视图](https://img.taocdn.com/s3/m/8b2d7cceac51f01dc281e53a580216fc700a5333.png)
实验四SQL Serve的数据更新、视图一、实验目的:1)掌握采用Transact-SQL实现嵌套查询。
2)掌握采用Transact-SQL实现数据更新。
3)掌握采用Transact-SQL实现视图的定义、删除、查询与更新。
二、实验内容(一)数据更新1)插入一个学生:张红,女,200215135,信息系,20岁2)插入一个选课录:200215135,1,成绩未定3)将计算机系所有学生的年龄加1岁4)删除所有200215130学生的选课记录5)删除所有姓张的同学的信息6)请自行设计案例对学生-课程数据库的数据更新,并观察是否有违反数据的完整性约束。
(二)视图1)创建一个学生成绩统计视图,包括学号,姓名,选课门数,平均分,最高分,最低分2)利用上题所建视图实现:(1)查询成绩高于自己平均成绩的选课记录(2)查询每个同学获得最高分的选课记录3)请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图完成下列查询:①找出三建工程项目使用的各种零件代码及其数量;②找出供应商S1的供应情况;三、实验要求(1)写出正确的Transact-SQL命令。
(2)无须记录正确的查询结果。
但要求记录实验过程中发生的有学习意义的错误及错误信息。
四、实验小结(一)数据更新1) 插入一个学生:张红,女,200215135,信息系,20岁insertinto student(sname,ssex,sno,sdept,sage)values('张红','女','200215135','IS','20');2) 插入一个选课录:200215135,1,成绩未定insertinto sc(sno,cno)values('200215135','1');3) 将计算机系所有学生的年龄加1岁select sno,sname,ssex,sage+1,sdeptfrom studentwhere sdept='CS';4) 删除所有200215130学生的选课记录deletefrom scwhere sno='200215130';5) 删除所有姓张的同学的信息deletefrom scwhere sc.sno in(select student.snofrom studentwhere sname like '张%')godeletefrom studentwhere sname like '张%'goselect * from studentselect * from sc6)请自行设计案例对学生-课程数据库的数据更新,并观察是否有违反数据的完整性约束。
数据库原理 实验四 数据更新与视图操作

实验四数据更新与视图操作一、实验目的(1)掌握向表中插入一个或多个元组的方法。
(2)掌握删除表中一个或多个元组的方法。
(3)掌握修改表中一个或多个元组的方法。
(4)掌握视图的创建、查询和更新操作。
二、实验环境Windows XP+SQL Server 2000三、实验内容1.插入数据(1)插入一行数据例:将新商店(s05,沃尔玛,上海)插入到Shop表中。
(2)插入多行数据例:创建与表Shop具有相同结构与相同数据的新表Shop1。
2.修改数据(1)修改一行数据例:将商店s02的商店名改为红五星。
(2)修改多行数据例:将所有商品的价格增加100元。
3.删除数据(1)删除一行数据例:删除s05商店的基本信息。
(2)删除多行数据例:删除苏果商店的所有销售记录。
4.视图的基本操作(1)创建视图①行列子集视图的创建。
例:创建北京地区所有商店的基本信息视图V1。
②带WITH CHECK OPTION的视图创建。
例:创建北京地区所有商店的基本信息视图V2,要求基于该视图进行更新操作时只能涉及北京地区的商店。
③基于多个基本表的视图创建。
例:创建北京地区所有商店的销售记录视图V3。
④基于视图的视图创建。
例:创建北京地区、销售量大于100的销售记录视图V4。
⑤分组视图的创建。
例:创建各商店平均销售量的视图V5。
(2)查询视图①基于非分组视图的查询。
例:查询北京地区、商店名为联华的商店信息。
②基于非分组视图和基本表的查询。
例:查询北京地区、销售了p01商品的商店。
③基于分组视图的查询。
例:查询平均销售量大于100的商店名和平均销售量。
(3)更新视图①视图上插入数据。
例:向视图V1中插入新商店(s05,农工商,北京)的信息。
例:向视图V1中插入新商店(s06,家乐福,上海)的信息。
例:向视图V2中插入新商店(s07,德尚,上海)的信息。
②视图上删除数据。
例:删除视图V1中商店号为s04的记录。
③视图上修改数据。
例:将视图V1中s02商店的商店名改为五星。
实验四 数据更新与视图

实验四数据更新与视图一、实验目的1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
二、预备知识1.数据更新基本语句及其格式(1)插入操作SQL的数据插入语句INSERT有两种形式:①插入单个元组,使用命令:INSERT INTO 基本表名(列名表)V ALUES (元组)②插入子查询的结果:INSERT INTO 基本表名(列表名)查询语句(2)修改操作当需要修改指定关系中元组的值时,可使用下列语句实现:UPDATE 基本表名SET 列名1=值表达式1[,列名2=值表达式2…][WHERE 条件表达式](3)删除操作删除关系中满足条件的元组语句格式如下:DELETE FROM <表名>Where <条件表达式>三、实验内容1.在实习二创建的“gongcheng”数据库中使用SQL语句完成以下操作:(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。
代码:insert into S(Sno,Sname,City)values('S9','英特尔','西安')结果;(2)请将北京供应商的供应数量加20代码:update SPJ set QTY=QTY+20where Sno in(select Sno from S where City='北京')结果:(3)零件P3已经停产,请将P3的相关信息从数据库中删除。
代码:deletefrom SPJwhere Pno='p3'deletefrom Pwhere Pno='p3'结果:(4)创建零件名为螺丝刀的供应情况的视图P_ls,包括供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY).代码:create view P_lsASselect Sname,Pnsme,Weight,Jno,QTYfrom S,P,SPJwhere Pnsme='螺丝刀'and S.Sno=SPJ.Sno结果:(5)在视图P_ls中查询供应数量为500的供应商姓名。
数据库实验报告数据更新

大连海事大学数据库原理课程实验大纲实验名称:实验四数据更新实验学时: 2适用专业:智能科学与技术实验环境: SQL Server Management Studio 1实验目的(1)掌握SQL数据更新语句的基本使用方法,如UPDATE、DELETE、INSERT。
(2)掌握更新语句条件中的嵌套查询使用方法。
2实验内容2.1 掌握SQL更新语句的基本使用方法(1)INSERT基本语句。
(2)UPDATE基本语句。
(3)DELETE基本语句。
2.2 掌握SQL更新语句的高级使用方法(1)INSERT批量插入语句。
(2)UPDATE语句使用嵌套子查询。
(3)DELETE语句使用嵌套子查询。
3实验要求(1)深入复习教材第三章SQL有关更新语句。
(2)根据书上的例子,针对TPCH数据库模式设计各种更新语句,每种类型更新语句至少要设计一个,描述清楚数据更新要求,运行你所设计的更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
也可以按照附1所列示例查询做实验。
(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
4实验步骤4.1 掌握SQL更新语句的基本使用方法(1)INSERT基本语句(插入全部列的数据)。
插入一个新顾客的记录,要求每列都给一个合理的值SET SEARCH_PA TH TO SALES,PUBLIC;INSERTINTOCUSTOMER(CUSTKEY,NAME,ADDRESS,NATIONKEY,PHONE,ACCTBAL,MKTSEGMENT,C OMMENT)V ALUES('28','陆奕诚',’江苏','40','140',2,'1市区','我');(2)INSERT基本语句(插入部分列的数据,要求随机生成某些数字列或者字符列的数据)。
插入一条订单记录,可以只给出必要的几个字段的值,其中数值字段可以用RANDOM函数随机生成数值INSERTINTO ORDERS(ORDERKEY,CUSTKEY,TOTALPRICE,SHIPPRIORITY)V ALUES(2600,17,1000000*RANDOM(),10000*RANDOM());(3)UPDATE基本语句(修改所有记录的某些列的值)。
数据库实验报告实验四数据更新与视图

实验四数据更新与视图一、实验目的1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
二、预备知识1.数据更新基本语句及其格式(1)插入操作SQL的数据插入语句INSERT有两种形式:①插入单个元组,使用命令:INSERT INTO 基本表名(列名表)V ALUES (元组)②插入子查询的结果:INSERT INTO 基本表名(列表名)查询语句(2)修改操作当需要修改指定关系中元组的值时,可使用下列语句实现:UPDA TE 基本表名SET 列名1=值表达式1[,列名2=值表达式2…][WHERE 条件表达式](3)删除操作删除关系中满足条件的元组语句格式如下:DELETE FROM <表名>Where <条件表达式>三、实验内容1.在实习二创建的“gongcheng”数据库中使用SQL语句完成以下操作:(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。
SELECT * FROM JPSSELECT * FROM SINSERT INTO S (SNO,SNAME,Ctiy) V ALUES('S9','英特尔','西安')INSERT INTO jps (SNO,PNO,JNO,QTY) V ALUES('S9','P5','J7',600)INSERT INTO jps (SNO,PNO,JNO,QTY) V ALUES('S9','P4','J4',500)(2)请将北京供应商的供应数量加20UPDA TE JPS SET QTY=QTY+20 WHERE JNO IN(SELECT JNO FROM J WHERE Ctiy='北京')(3)零件P3已经停产,请将P3的相关信息从数据库中删除。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四数据更新
一、实验目的
1、掌握SQL语言的数据更新操作。
2、掌握创建索引的目的和方法。
二、实验预习
1、INSERT语句格式:
INSERT
INTO<表名>[(<属性列1>[,<属性列2>]……)]
VALUES(<常量1>[,<常量2>]…);
2、UPDATE语句格式:
UPDATE<表名>
SET <列名>=<表达式>[,<列名>=<表达式>]…
[WHERE<条件>];
3、DELETE语句格式:
DELETE
FROM<表名>
[WHERE<条件>];
三、实验内容及要求
1、插入数据
(1)在学生表Student中插入数据:
Sno:9512102 Sname:刘晨 Ssex:男 Sage:20 Sdept:计算机系INSERT
INTO student
VALUES('9512102','刘晨','男','20','计算机系');
(2)在课程表Course中插入数据:
Cno:C06 Cname:数据结构Ccredit:5 Semster:4 INSERT
INTO course
VALUES('C06','数据结构','5','4',NULL);
(3)在选课表SC中插入95211班学生选修C04的选课信息。
提示:
多行数据插入,插入的数据的sno从student表中查询而来,插入的cno为“C04”INSERT
INTO sc(sno,cno)
SELECT sno,'C04' FROM student WHERE sno LIKE '95211%';
2、修改数据
(1)将所有学生的年龄增加1岁。
UPDATE student
SET sage=sage+1;
(2)修改“9512101”的“C01”课程成绩为85。
UPDATE sc
SET grade=85
WHERE sno='9512101' AND cno='C01';
(3)修改“王大力”的“计算机导论”课程成绩为70。
UPDATE sc
SET grade=70
WHERE sno IN(
SELECT sno
FROM student
WHERE sname='王大力' AND cno IN(
SELECT cno
FROM course
WHERE cname='计算机导论'
)
);
(4)将所有平均分为75分以上的学生的各门课成绩在原来基础上加5分。
UPDATE sc
SET grade=grade+5
WHERE sno IN(SELECT sno FROM (SELECT sno FROM sc GROUP BY sno HAVING AVG(grade)>75)AS a);
(5)修改“高等数学”课程倒数三名成绩,在原来分数上减5分。
UPDATE sc
SET grade=grade-5
WHERE cno IN(SELECT cno FROM course WHERE cname='高等数学')
AND grade IS NOT NULL
ORDER BY grade LIMIT 3;
3、删除数据
(1)删除“9531102”学生“C05”课程的成绩记录
DELETE FROM sc
WHERE sno='9531102' AND cno='C05';
(2)删除“张海”的所有成绩记录
DELETE FROM sc
WHERE sno IN(SELECT sno FROM student WHERE sname='张海');
(3)删除“数据库基础”的全部记录(包括课程信息,成绩信息)
DELETE FROM sc WHERE cno=(
SELECT cno FROM course
WHERE cname='数据库基础');
DELETE FROM course WHERE cname='数据库基础';
4、创建索引
导入rental表数据,在customer_id上建立普通索引(通过语句或表设计器均可)查询customer_id=367的记录,记录查询时间:
有索引情况下的执行时间: 0.001s
CREATE INDEX customer_id_a ON rental(customer_id)
SELECT * FROM rental WHERE customer_id='367';
无索引情况下的执行时间: 0.001s
DROP INDEX customer_id_a ON rental
SELECT * FROM rental WHERE customer_id='367';
四、实验小结
解释说明“删除“数据库基础”的全部记录”的实现过程。
答:由于有外码约束,所以必须先删除成绩记录,再删除课程记录。
五、评阅成绩。