数据库系统原理-实验04-数据更新和视图
- 格式:doc
- 大小:116.00 KB
- 文档页数:10
嘉应学院计算机学院一、实验目的通过实验掌握数据库更新的方法和完整性约束的概念以及视图建立和操作方法。
掌握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.熟练使用INSERT/DELETE/UPDATE语句进行表的更新操作。
2. 理解视图的定义、视图的优点与视图的工作原理。
掌握在企业管理器和查询分析器中创建、修改及删除视图。
能够熟练掌握利用视图向表中插入、删除和修改数据。
二、实验原理1.数据更新操作只能针对一个表进行,即每次只能在一个表中插入、删除和修改数据。
用INSERT语句可以通过使用V ALUES关键字一次只向一个表插入一条记录,也可以通过子查询向一个表中插入若干条记录;当使用DELETE和UPDATE语句实现表的删除和更改时,若题目中涉及多个表的信息,可以使用子查询来挑选出部分数据,以作为删除或更改的条件,也可以在语句中用FROM 子句给出题目中涉及的所有表,而在WHERE子句中给出多个表之间的连接条件。
2. 利用CREATE VIEW、ALTER VIEW 、DROP VIEW语句创建、修改及删除视图。
由于视图是虚表,通过视图向表中添加数据时必须满足一定的条件。
如果视图引用了多个数据表,那么在通过视图向数据表中添加数据时,这个语句只能指定同一个表中的字段。
如果通过一个引用了多个数据表的视图向这些数据表中添加数据时,必须书写多个INSERT语句。
通过使用多个表的视图对数据表进行更新也需要书写多个UPDATE语句,另外适用于INSERT操作的许多限制同UPDATE操作。
使用DELETE语句可以通过视图将数据表中的数据删除。
但如果视图应用了两个或两个以上的数据表,则不允许删除视图中的数据。
另外,通过视图删除的记录,不能违背视图定义的WHERE子句中的条件限制。
三、实验设备安装有SQL SERVER 2005的计算机。
四、实验内容凡是能用多种方法实现的,请用多种方法实现。
1、为各表添加若干条记录,必须符合实验二中设定的各种约束。
2、将每个员工的薪水上调10%。
3、删除sales表中作废的订单(其发票号码为‘I000000004’),其订货明细表中的数据也一并删除。
实验四数据更新与视图操作一、实验目的(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商店的商店名改为五星。
大连海事大学数据库原理课程实验大纲实验名称:实验四数据更新实验学时: 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基本语句(修改所有记录的某些列的值)。
计算机与网络工程学院实验报告课程名称:数据库原理实验名称:实验4:数据更新实验专业/班级:2018级计算机四班学号:姓名:实验地点:实验日期:2020.10.23实验目的与要求:熟悉通过 SQL 语句完成表的数据更新操作(插入数据,修改数据,删除数据)。
实验环境:MS SQL Server2008实验内容:完成 S-C-T 数据库中 STUDENT 表,COURSE 表,SC 表上(附件作业)《数据库查询作业》第三部分的数据更新操作(插入数据,修改数据,删除数据)。
实验步骤:用 SQL 更新语句表达对“教学”数据库中 3 个基本表 S“学生”、C“课程”和 SC “学习”的各个更新操作。
(1)向基本表“学生”中插入一个学生元组(‘S009’,‘吴’,18)INSERT INTO S(SNO,SNAME,AGE)VALUES('S009','吴',18);(2)在基本表“学生”中查询每一门课程成绩都大于等于80 分的学生学号、姓名和性别,并把查询到的值送往另一个已存在的基本表“结果”(学号,姓名,性别)中。
SELECT DISTINCT(Student.SNO),Sname,SEXFROM SC,StudentWHERE Student.SNO=SC.SNO AND SC.SNO NOT IN(SELECT DISTINCT(SNO) FROM SCWHERE SC.GRADE<80);(3)在基本表“学习”中删除尚无成绩的元组。
DELETE FROM SCWHERE GRADE IS NULL;(4)把王乐同学在“学习”基本表中的课程和成绩全部删除。
DELETE FROM SCWHERE SNO IN(SELECT SNO FROM SWHERE SNAME='王乐');(5)把修读Java 课不及格的成绩全改为空值。
UPDATE SCSET GRADE=NULLWHERE GRADE<60 AND CNO IN(SELECT CNOFROM C表WHERE CNAME='JAVA');(6)把低于总平均成绩的女同学成绩提高 5%。
实验四数据更新与视图一、实验目的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的相关信息从数据库中删除。
实验四数据更新与视图北京师范大学珠海分校信息技术学院12计算机1班一、数据更新使用相应SQL语句,完成如下操作:(1)根据订单信息更新order表中的payment(订单总金额)字段的值。
update"order"set"order".payment=a.totalfrom(select orderid,sum(price*quantity)as totalfrom book,orderbookwhere bookid=bidgroup by orderid)awhere"order".oid=a.orderidselect oid,paymentfrom"order"(2)新建图书订购情况统计表bookstas(包含图书编号、图书名称、图书类别、图书价格和订购册数,数据类型自定),并根据数据库的订单情况将社科类图书的订购情况插入表中。
图书订购情况统计表bookstas表bsid btitle bcategory bprice ordersell 图书编号图书名称图书类别图书价格订购册数int varchar(50)int float int Primary keycreate table bookstas(bsid int primary key,btitle varchar(50),bcategory int,bprice float,ordersell int);insertinto bookstas(bsid,btitle,bcategory,bprice,ordersell)select bid,title,category,price,sum(quantity)from orderbook,bookwhere category='2'and bookid=bidgroup by bid,title,category,price;select bookstas.*from bookstas;(3)新建用户订购统计表userstas(包含用户编号、用户名、订单数量、总金额,数据类型自定),并根据数据库的订单情况将活跃用户(正常使用、锁定)的情况插入表中。
GDOU-B-11-112广东海洋大学学生实验报告书实验名称实验5:数据更新和视图课程名称数据库原理及应用成绩学院(系)软件学院专业软件工程班级学生姓名学号实验地点实验日期实验目的:1.掌握视图的创建语法2.使用视图更新数据3.掌握数据操纵语句(insert delete update)实验内容针对GlobalToyz和Recruitement,Student数据库,按要求完成下列题目。
1.创建一个视图,包含Toys表中的品牌id为’001’的玩具信息,要求限制用户对该视图的更新只能是该品牌的玩具。
CREATE VIEW ToyBrand1 ASSELECT * FROM ToysWHERE cBrandId = '001'WITH CHECK OPTION;2.对上述视图进行插入操作,新增一个品牌为’002’的玩具,插入的内容请按照数据类型给出合理的值。
观察结果并说明原因。
INSERT INTO [ToyBrandView]V ALUES ('000040', 'Name', 'Description', '001', 10.0, '002', NULL, 10, 5, 15, 10, NULL);3.对于GlobalToyz数据库,创建一个视图名为vwOrderdetailToys,其中包含了订单的代码,订购的玩具编号,订购的玩具名称,订购的附言,玩具的花费信息。
CREATE VIEW vwOrderdetailToys ASSELECT OrderDetail.cOrderNo, OrderDetail.cToyId, Toys.vToyName,OrderDetail.vMessage, OrderDetail.mToyCostFROM OrderDetail, ToysWHERE OrderDetail.cToyId = Toys.cToyId;4.对于第3题中创建的视图vwOrderdetailToys进行更新,修改订单代码为‘000001’的订单,更改cToyId为’000007’的玩具名称,改为’Lego Spider’,并修改对应的附言内容为‘Happiness’。
1.报告格式和内容要求:
a. 内容和格式整齐。
大标题采用黑体四号字加粗,小标题采用小四号字加粗。
正
文采用五号宋体,单倍行距。
b. 贴图时请剪裁到适当大小,要保证打印时可以看清,但也不要太大以免“越界”。
c. 不要在报告中写与实验无关的话,内容要有条理、完整、并能突出重点,要将
遇到的主要问题说明。
2.文件格式要求:
a. 将实验成果放入一个文件夹中,文件夹的内容包括:本实验报告、分离后的数
据库、如有查询代码(.sql文件)和其它文件也一并放入。
b. 文件夹以“学号姓名_S5”为文件名。
其中,S3表示这是实验3的报告,S大写,
以后的实验报告以类似方法编号顺延,注意:你的学号放在姓名前。
c. 注意:所有文件保存后关闭,然后再打包成RAR文件,以免提交的内容丢失或
打不开。
3.提交方式和时间:一周内完成。
可以将文件包发到我邮箱*******5@。
4.主动查阅资料,坚持自己亲手完成实验,弄清每个步骤和相关原理。
2011-2012学年第二学期课程实验报告课程名称:数据库系统原理实验名称:数据更新和视图姓名班级学号实验台编号同组同学实验课表现出勤、表现得分25% 25 实验报告得分50% 实验总分操作结果得分25% 25实验目的1.学会熟练使用INSERT语句对数据表进行数据插入操作。
2.学会使用UPDATE语句对数据表中的数据进行修改操作。
3.学会使用DELETE语句对数据表中的数据进行删除操作。
4.了解使用视图的目的与好处,掌握视图与基本表的关系。
5.掌握如何使用SQL语句创建、修改、删除和查询视图。
实验内容(实验步骤和实验结果的简单描述,方便同学自己以后阅读)一、数据的插入、删除和修改1.创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自定),然后使用SELECT子句向表XS1中插入多行数据(专业为“电子”的学生数据)。
2.修改XS1表的结构,增加1个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。
3.将XS表中计算机专业的学生的总学分增加10分。
4.将XS表中学号为“4102101”的同学的总学分增加4分,备注改为“提前修完一门课程”。
5.将XS_KC表中学号为“4102101”的同学的“计算机基础”课程的成绩增加10分。
6.修改XS1表的结构,增加1个“总学分”字段,并使其值为该学生所学各门功课的学分之和。
7.将XS1表中总学分小于10分的学生数据删除。
8.将XS_KC表中“数据库”课程的所有成绩信息删除。
9.将XS_KC表中其学号在XS表中不存在或其课程号在KC表中不存在的学生的成绩信息删除。
10.删除XS1表中前两个同学的基本信息。
11.删除XS1表中的所有数据。
12.删除XS1表。
二、视图操作1.使用SQL语句创建视图V_SCORE1,使其显示计算机专业学生的所有基本信息,并保证以后对该视图的修改都要满足专业为“计算机”这个条件。
2.使用SQL语句创建视图V_SCORE2,显示计算机专业每个学生的学号、姓名、选修的课程名称及其成绩。
实验四 SQL语言的数据更新和视图(设计型,2学时)一、实验目的与要求1.利用SQL语言提供的INSERT语句、UPDATE语句和DELETE语句对建立基本表STUDENT、COURSE和SC表进行插入、修改和删除操作;2.利用SQL语言提供的CREATE VIEW定义视图;利用DROP VIEW、SELECT和UPDATE 操作语句对所定义的视图进行删除、查询和修改操作;3.熟练掌握以上各种操作语句。
二、实验环境SQL SERVER2000三、实验预习与准备掌握以下操作语句的一般格式:1.INSERT INTO <表名>[(<属性列1>[,<属性列2>…]VALUES(<常量1>[,<常量2>…]或INSERT INTO<表名> [(<属性列1>[,<属性列2>…] 子查询2.UPDATE <表名>SET< 列名>=<表达式>[,<列名>=<表达式>]…[WHERE<条件>];3.DELETEFROM <表名>[WHERE<条件>];4. CREATE VIEW<视图名>[(<列名>[,<列名>]…)]AS <子查询> [WITH CHECK OPTION];5.DROP VIEW <视图名>[CASCADE];四、实验内容和步骤1.验证教材提供的操作语句;2.验证课堂教学中提供的操作语句;3.根据要求设计操作语句完成相应功能:(1)将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。
(2)对每一个系,求学生的平均年龄,并把结果存入数据库,需创建表Dept_age (sdept,Avg_age)。
实验四:SQL Serve中的嵌套查询、数据更新和视图一、实验目的:1.掌握SQL语言的核心语句--SELECT语句的使用,具体为在SQL Server2005环境下采用Transact-SQL实现嵌套查询。
2.掌握采用Transact-SQL实现数据更新。
3.掌握采用Transact-SQL实现视图的定义、删除、查询与更新。
二、实验内容按照《数据库系统概论》P82页中的学生课程数据库和P75页中的SPJ数据库完成以下查询(一)嵌套查询中的存在量词1.查询还没有给任何工程供应过零件的供应商号sno和供应商名称sname,用带EXISTS谓词的子查询或相关联子查询实现。
select sno,sname from s where not exists(select*from spj where spj.sno = s.sno)2.查询使用了全部零件的工程号JNO,用带EXISTS谓词的子查询实现。
select jno from j where not exists(select*from p where not exists(select *from spj where p.pno = spj.pno and j.jno = spj.jno))3.查询至少选修了’1’号和’2’号课程的学生学号, 用带EXISTS谓词的子查询或自身连接查询实现。
(1)select sno from sc where sno in(select sno from sc where cno='1') and cno='2'(2)select sno from sc where cno='1'intersect select sno from sc where cno='2'(3) select sno from sc sc1 where exists(select*from sc sc2 where sc1.sno = sc2.sno and o ='1'and o ='2')附加题:查询至少用了供应商S1所供应的所有零件的工程号JNO,用带EXISTS谓词的子查询实现。
实验四视图索引及数据更新一、实验目的:熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,熟练掌握数据插入、修改和删除的使用,为后继学习作准备。
二、实验属性(验证性)1.了解并掌握SQL查询分析器及企业管理器的使用;2.掌握基本表的定义、删除与修改。
三、实验仪器设备及器材1.安装有window操作系统计算机。
2.安装有Oracle11g和SQLServer的计算机。
3.安装有和Java编译器(eclipe、Netbean等)的编译器。
4.计算机具备网络环境。
四、实验要求(预习、实验前、实验中、实验后等要求)1.预习教材第三章,熟悉SQL语句。
2.熟悉.net、Java和Delphi开发环境。
3.能够熟练掌握.net、Java和Delphi环境下的数据库的编程。
4.掌握建立索引的二种方法,即在基本表中建立和用命令方式建立。
5.掌握删除索引的方法。
6.掌握ql视图建立、修改和删除;7.掌握ql视图查询。
8.掌握ql数据插入、修改和删除语句的一般格式及使用方法。
五、实验原理SQL语言应用。
六、实验步骤:(1)启动Oracle的SQLDeveloper或者SQLPlu,或者SQLServer查询分析器;(2)对于Oracle11g的SQLPlu需要进行登录,对于Oracle11g的SQLDeveloper需要进行建立连接。
如果选择SQLSERVER查询分析器,需要选择数据库;1建立索引建立唯一索引:例3.1为学生选课数据库中的Student,Coure,SC三个表建立索引。
其中Student表按Sname升序建唯一索引,Coure表按Cname升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
createuniqueinde某turing.myInde某onturing.Student(Sname);查看自己建立的索引:SQL>decdba_inde某e[或者SQL>decall_inde某e,SQL>decuer_inde某e]electinde某_name,inde某_type,table_nameFromuer_inde某eWhereinde某_name=’YOUR_INDE某_NAME’;electt.column_name,t.Inde某_name,i.inde某_typefromdba_ind_columnt,dba_inde某eiwhere(t.inde某_name=i.inde 某_name)and(t.table_name=i.table_name)and(t.table_name='STUDENT')建立位图索引:(选做,理解位图索引的意义,什么情况下才使用位图索引)例3.2为学生选课数据库中的Student的e某列上建立位图索引。
2011-2012学年第二学期课程实验报告课程名称:数据库系统原理实验名称:数据更新和视图姓名班级学号实验台编号同组同学实验课表现出勤、表现得分25% 25 实验报告得分50% 实验总分操作结果得分25% 25实验目的1.学会熟练使用INSERT语句对数据表进行数据插入操作。
2.学会使用UPDATE语句对数据表中的数据进行修改操作。
3.学会使用DELETE语句对数据表中的数据进行删除操作。
4.了解使用视图的目的与好处,掌握视图与基本表的关系。
5.掌握如何使用SQL语句创建、修改、删除和查询视图。
实验内容(实验步骤和实验结果的简单描述,方便同学自己以后阅读)一、数据的插入、删除和修改1.创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自定),然后使用SELECT子句向表XS1中插入多行数据(专业为“电子”的学生数据)。
2.修改XS1表的结构,增加1个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。
3.将XS表中计算机专业的学生的总学分增加10分。
4.将XS表中学号为“4102101”的同学的总学分增加4分,备注改为“提前修完一门课程”。
5.将XS_KC表中学号为“4102101”的同学的“计算机基础”课程的成绩增加10分。
6.修改XS1表的结构,增加1个“总学分”字段,并使其值为该学生所学各门功课的学分之和。
7.将XS1表中总学分小于10分的学生数据删除。
8.将XS_KC表中“数据库”课程的所有成绩信息删除。
9.将XS_KC表中其学号在XS表中不存在或其课程号在KC表中不存在的学生的成绩信息删除。
10.删除XS1表中前两个同学的基本信息。
11.删除XS1表中的所有数据。
12.删除XS1表。
二、视图操作1.使用SQL语句创建视图V_SCORE1,使其显示计算机专业学生的所有基本信息,并保证以后对该视图的修改都要满足专业为“计算机”这个条件。
2.使用SQL语句创建视图V_SCORE2,显示计算机专业每个学生的学号、姓名、选修的课程名称及其成绩。
3.使用T-SQL语句修改视图V_SCORE2,使其显示每个专业、每门课程的平均成绩,结果格式为:专业课程名平均成绩………………4.通过V_SCORE2查看计算机专业每门课程的平均成绩。
5.通过V_SCORE2查看各个专业所有课程的平均成绩,结果格式为:专业平均成绩…………6.使用视图V_SCORE1向其基表XS表中输入数据(数据自定),并观察什么样的数据可以插入,什么样的数据不可以插入,并解释为什么。
7.使用SQL语句删除视图V_SCORE1、V_SCORE2。
select*from xsselect*from kcselect*from xs_kcselect*from xs1--1.创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自定),然后使用SELECT子句向表XS1中插入多行数据(专业为“电子”的学生数据)。
create table xs1(学号char(7)not null primary key,姓名char(8)not null,性别bit default(1)not null,出生日期datetime)insert into xs1select学号,姓名,性别,出生日期from xswhere专业='电子'select*from xs1--2.修改XS1表的结构,增加个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。
alter table xs1add平均成绩char(100)update xs1set平均成绩=(select avg(成绩)from xs_kc where xs_kc.学号=xs1.学号group by学号)select*from xs1--3.将XS表中计算机专业的学生的总学分增加分。
update xs set总学分=总学分+10where专业='计算机'select*from xs--4.将XS表中学号为“”的同学的总学分增加分,备注改为“提前修完一门课程”。
update xs set总学分=总学分+4,备注='提前修完一门课程'where学号='4102101'select*from xs--5.将XS_KC表中学号为“”的同学的“计算机基础”课程的成绩增加分。
update xs_kc set成绩=成绩+10where学号='4102101'and课程号=(select课程号from kc where kc.课程名='计算机基础')--6.修改XS1表的结构,增加个“总学分”字段,并使其值为该学生所学各门功课的学分之和。
alter table xs1add总学分char(100)update xs1set总学分=(select sum(学分)from kc,xs_kc where xs_kc.学号=xs1.学号and kc.课程号=xs_kc.课程号group by学号)select*from xs1--7.将XS1表中总学分小于分的学生数据删除。
delete from xs1where总学分<10select*from xs1--8.将XS_KC表中“数据库”课程的所有成绩信息删除。
delete from xs_kcwhere课程号=(select课程号from kc where kc.课程名='数据库')select*from xs_kc--9.将XS_KC表中其学号在XS表中不存在或其课程号在KC表中不存在的学生的成绩信息删除。
delete from xs_kcwhere not exists(select xs.学号from xs_kc,xs where xs_kc.学号=xs.学号or not exists(select kc.课程号from xs_kc,kc where xs_kc.课程号=kc.课程号))select*from xs_kc--10.删除XS1表中前两个同学的基本信息。
delete top(2)from xs1select*from xs1--11.删除XS1表中的所有数据。
delete from xs1select*from xs1--12. 删除XS1表。
drop table xs1--1.使用SQL语句创建视图V_SCORE1,使其显示计算机专业学生的所有基本信息,并保证以后对该视图的修改都要满足专业为“计算机”这个条件。
create view v_score1asselect*from xswhere专业='计算机'with check optionselect*from v_score1--2.使用SQL语句创建视图V_SCORE2,显示计算机专业每个学生的学号、姓名、选修的课程名称及其成绩。
create view v_score2(学号,姓名,课程名,成绩)asselect xs.学号,姓名,课程名,成绩from xs,kc,xs_kcwhere xs.学号=xs_kc.学号and kc.课程号=xs_kc.课程号and专业='计算机'select*from v_score2--3.使用T-SQL语句修改视图V_SCORE2,使其显示每个专业、每门课程的平均成绩,结果格式为:--专业课程名平均成绩--…… …………alter view v_score2asselect专业,课程名,avg(成绩)平均成绩from xs,kc,xs_kcwhere xs.学号=xs_kc.学号and kc.课程号=xs_kc.课程号group by专业,课程名select*from v_score2--4.通过V_SCORE2查看计算机专业每门课程的平均成绩。
select平均成绩from v_score2where专业='计算机'--5.通过V_SCORE2查看各个专业所有课程的平均成绩,结果格式为:--专业平均成绩--…………select专业,平均成绩from v_score2--6.使用视图V_SCORE1向其基表XS表中输入数据(数据自定),并观察什么样的数据可以插入,什么样的数据不可以插入,并解释为什么。
insert into V_SCORE1values ('10010300xx','xxx',1,'1994-04-29','电子',0,null)insert into v_score1values ('10010300xx','xxx',1,'1994-04-29','计算机',0,null)--只有专业为计算机的同学的数据可以插入,因为在创建视图时有规定视图V_SOCRE1要满足专业='计算机'的条件--7.使用SQL语句删除视图V_SCORE1、V_SCORE2。
drop view v_score1,v_score2实验过程中遇到的问题以及如何解决的?(可以写多条,是否认真填写将影响实验成绩)本次实验的体会(可以写多条,是否认真填写将影响实验成绩)1.思考题1.总结INSERT、UPDATE和DELETE语句的用法。
Insert into <表名>【(<属性列1>【,<属性列2>…)】Values(<常量1>【,<常量2>】… );Update <表名> set <列名>=<表达式>【,<列名>=<表达式>】…【Where<条件>】;Delete from<表名>【Where<条件>】;2.比较基本表(TABLE)与视图(VIEW)的相同点与不同点。
表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。
用CREATE TABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。
视图是一个或多个表中的数据的简化描述,用户可以将视图看成一个存储查询或一个虚拟表。
查询仅仅存储在oracle数据字典中,实际的数据没有存放在任何其它地方,所以建立视图不用消耗其他的空间。
视图也可以隐藏复杂查询,比如多表查询,但用户只能看见视图。
视图可以有与他所基于表的列名不同的列名。
用户可以建立限制其他用户访问的视图。
表存放实际数据,视图基于表,视图不存放实际数据。
视图的作用有:查询的方便,保障数据的安全性教师评价实验态度 A. 很认真 B. 认真 C. 比较认真 D. 不认真独立完成情况 A. 很好 B. 好 C. 比较好 D. 不好收获和体会 A. 多 B. 比较多 C. 少 D. 很少思考题回答情况 A. 很好 B. 好 C. 比较好 D. 不好评阅教师:日期:。