数据库实验三 数据更新等

合集下载

数据库实验三数据更新等

数据库实验三数据更新等

实验五实验报告一、实验目的1.掌握实体完整性约束、参照完整性约束;2. 灵活应用完整性约束‘3. 了解触发器在的应用4. 理解索引的功能和运用并掌握索引的建立方法;二、实验内容5.1 实体完整性1)在数据库School中建立表Stu_Union,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录建立表Stu_Union,进行主键约束在没有违反实体完整性的前提下插入一条记录在没有违反实体完整性的前提下更新一条记录2)演示违反实体完整性的插入操作3)演示违反实体完整性的更新操作4)演示事务的处理,包括事务的建立,处理以及出错时的事务回滚,演示事务处理和批处理的区别。

提示:SQL2005相关语句为BEGIN TRANROLLBACK TRANCOMMIT TRAN可以这样演示:新建一个包含两条语句的事务,使第一条成功而第二条失败,然后查看整个事务是否回滚。

重要提示:SQL默认只回滚出错的语句,要回滚整个事务,需要预先执行以下语句:SET XACT_ABORT ONa.先执行如下SQL语句(可执行成功)b.再执行如下语句,此时为执行第一句insert语句成功,第二句insert语句失败c.查询事物是否回滚由上可知,表为b步骤即事物出错前的状态,所以整个事物回滚。

5)通过建立Scholarship表,插入一些数据。

演示当与现有的数据环境不等时,无法建立实体完整性以及参照完整性。

提示:即演示不能为表Scholarship生成主键和外键的情况。

a.b. 不能为表Scholarship生成主键c.不能为表Scholarship生成外键5.2参照完整性1)为演示参照完整性,建立表Course,令cno为其主键,并在Stu_Union中插入数据。

为下面的实验步骤做预先准备。

在Stu_Union中插入数据建立表Course,令cno为其主键2)建立表sc,另sno和cno分别为参照Stu_Union表以及Course表的外键,设定为级连删除,并令(sno, cno)为其主键。

实验3数据库的更新实验

实验3数据库的更新实验

实验3 数据库的更新实验1.实验目的本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。

2.实验时数2学时[相关知识]SQL Server提供了很多方法更新表中数据。

以插入记录为例,可以使用INSERT语句、V ALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC和DB-Library)中的函数进行数据插入等。

本实验主要掌握INSERT、UPDATE 和DELETE语句的基本用法。

●插入操作,其语句的一般格式为INSERTINTO table_or_view [(colum_list)]V ALUES (date_values);此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view中。

Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。

如果没有指定column_list,表或视图中的所有列都将接收数据。

如果column_list没有为表或视图中的所有列命名,将在列表中没有命名的任何列中插入一个NULL值(或者在默认情况下为这些列定义的默认值)。

在列的列表中没有指定的所有列都必须允许NULL值或者指定的默认值。

否则SQL Server将返回一个错误。

●修改操作语句的一般格式为UPDATE 表名SET <列名>=<表达式>[,<列名>=<表达式>]……[where <条件>];其功能是修改指定表中满足WHERE子句条件的元组。

其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。

如果省略WHERE子句,则表示要修改表中的所有元组。

●删除语句的一般格式为DELETEFROM <表名>[WHERE <条件>];其功能是从指定表中删除满足WHERE子句条件的所有元组。

实验3 数据更新与视图

实验3 数据更新与视图

实验三数据更新与视图一、实验目的1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。

二、实验内容1.在实验一创建的数据库STUDENT中使用SQL语句完成以下操作(4)将(101131,路前元,男,1993-11-8,网络工程)插入学生关系。

SQl语句:insert into Svalues('101131','路前元','男','1993-11-8','网络工程',null)select *from S(6)创建视图JSJ_VIEW,包括计算机专业学生的学号,姓名,其选修的课程名及成绩属性列。

SQL语句:create view JSJ_VIEWasselect S.Sno,Sname,Cname,Gradefrom S,C,SCwhere S.Sno=SC.Sno and Major='计算机'select *from JSJ_VIEW(7)创建查询每个学生的修课学分的视图XF_VIEW,要求列出学生学号及总学分。

SQL语句:create view XF_VIEWasselect Sno,SUM(Credit)from S,Cgroup by Snoselect *from XF_VIEW2.在实验二创建的Project数据库中使用SQL语句完成以下操作:(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库.SQl语句:insertinto s (sno, Sname ,city)values('s9','英特尔','西安')insertinto SPJ(sno,Pno,Jno,QTY) values('s9','p5','j7',600)insertinto SPJ(sno,Pno,Jno,QTY) values('s9','p4','j4',500)(7)创建零件名为螺丝刀的供应情况的视图P_ls,包括供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY)。

数据的更新实验报告(3篇)

数据的更新实验报告(3篇)

第1篇一、实验背景随着信息技术的快速发展,数据已经成为企业和组织的重要资产。

数据的更新和维护是保证数据质量和准确性的关键环节。

本实验旨在验证数据更新方法的有效性,并通过实际操作了解数据更新过程中的关键步骤和注意事项。

二、实验目的1. 掌握数据更新的基本方法;2. 了解数据更新过程中的关键步骤;3. 分析数据更新对数据质量的影响;4. 评估数据更新方法的效率和可靠性。

三、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 数据库连接工具:Navicat4. 实验数据:某公司员工信息表四、实验步骤1. 数据库连接使用Navicat连接到MySQL数据库,选择实验数据所在的数据库。

2. 数据查询在Navicat中执行以下SQL语句,查询实验数据表中的部分数据:SELECT FROM employee WHERE id BETWEEN 1 AND 10;3. 数据更新(1)使用UPDATE语句更新数据执行以下SQL语句,将id为2的员工的姓名修改为“张三”:UPDATE employee SET name = '张三' WHERE id = 2;(2)使用INSERT语句插入数据执行以下SQL语句,向实验数据表中插入一条新记录:INSERT INTO employee (id, name, age, department) VALUES (11, '李四', 25, '财务部');(3)使用DELETE语句删除数据执行以下SQL语句,删除id为3的员工记录:DELETE FROM employee WHERE id = 3;4. 数据验证执行以下SQL语句,查询更新后的数据表,验证数据更新是否成功:SELECT FROM employee;五、实验结果与分析1. 数据更新方法验证通过执行UPDATE、INSERT和DELETE语句,成功实现了数据的更新。

SQL实验三数据的更新操作和视图实验报告

SQL实验三数据的更新操作和视图实验报告

实验三数据的更新操作和视图本实验需要2学时。

一、实验目的1、掌握视图的创建、修改和删除操作。

2、掌握数据库数据更新(增加、修改、删除)操作。

二、实验内容和步骤1、视图(1)建立名为UV_SC的视图。

该视图可以让我们看到每个学生的姓名、选修课程名和成绩。

(2)利用UV_SC视图,查看平均成绩在80分以上的学生姓名。

(3)建立名为UV_Course的视图,该视图显示每门课的课程名和选修该课程的学生人数。

(4)修改视图UV_Course,在视图中增加一列,显示选修该课程所有学生的平均成绩。

(5)建立名为UV_IS_Depart的视图。

该视图可以用来查看“信息系”的学生的学号、姓名、年龄和系名。

并保证对该视图的修改满足系名为信息系的条件。

(6)建立名为UV_Student的加密视图。

该视图可以用来查看每个学生选修的课程门数和平均成绩。

(7)利用UV_Student视图,查询平均成绩在80分以上的学生学号。

(8)能否利用视图UV_Student,修改某个学生的平均成绩?(9)删除视图UV_Student。

2、数据更新(1)向STUDENT表增加如下记录:(2)将学号'95011',成绩80,以及课程表中的所有课程号插入到SC表中。

(3)建立与表STUDENT同结构的空表STUD。

然后利用INSERT命令把表STUDENT中年龄大于19的学生记录添加到表STUD。

(注意:可以使用select into语句实现同结构空表的创建,再使用insert命令插入记录;或者使用单条select into语句实现等同的功能)(4)为“95002”的学生增加选修“操作系统”和“数据结构”这两门课的选课记录。

(5)把课程名为“操作系统”的成绩从成绩表SC中删除。

(试用三种方式完成)(6)将女生的成绩提高10%。

(试用三种方式完成)(7)如果学生“张三”的数据结构的成绩低于65,则加上10分。

(8)将成绩最低的学生的成绩加上10分。

实验三 数据更新实验报告

实验三     数据更新实验报告

湖南第一师范学院信息科学与工程系实验报告课程名称:数据库技术与应用成绩评定:实验项目名称:实验三:数据更新指导教师:洪伟学生姓名:沈丽桃学号:10403080118 专业班级: 10教育1班实验项目类型:设计实验地点:科B201 实验时间:2012年 5 月 8 日一、实验目的与要求:1、掌握向表中插入数据;2、掌握修改表中的数据;3、掌握删除表中的数据;4、掌握创建视图、删除视图、查询视图与更新视图。

二、实验环境:(硬件环境、软件环境)1.硬件环境:奔ⅣPC。

2.软件环境:Windows2000 操作系统,SQL Server 2000。

三、实验内容:(原理、操作步骤、程序代码等)任务:对上次实验所建立的SC数据库,完成以下任务:1、将书上所列例题全部验证一遍;P115-1242、在SC数据库上完成以下操作:1)求每一个学生的平均成绩,并把结果存入数据库中;2)将所有女生的数据库成绩置0;3)删除20岁以上学生的数据结构的选课记录;4)创建一个课程及其平均成绩的视图;5)删除上题中创建的视图。

6)建立男学生的视图schoolboy,属性包括学号、姓名和年龄。

7)在视图schoolboy中查询年龄为19的学生学号与姓名。

8)将学号为002的年龄改为21。

9)向男学生视图schoolboy中插入一个新的男生记录,其中学号为S6,姓名为MING,年龄为20。

10) 删除视图schoolboy中学号为003的记录。

11) 建立女学生的视图,属性包括学号、姓名、选修课程名和成绩。

12) 在女学生视图中查询平均成绩大于80分的学生学号与姓名。

13)删除女学生视图。

具体操作步骤及程序代码为:1.create table sno_grade(sno char(10)avg_grade smallint);第2 行: 'avg_grade' 附近有语法错误。

(列与列之间应该用逗号格开)修改为:create table sno_grade(sno char(10),avg_grade smallint);Insertinto sno_grade(sno,avg_grade)select sno,avg(grade)from scgroup by sno;2.update scset grade=0where sno in(select snofrom swhere s.ssex='女' and cno in(select cnofrom cwhere ame='数据库'));3. deletefrom scwhere sno in(select snofrom swhere sc.sno=s.sno and s.sage>20 and cno in(select cno from cwhere o=o and ame='数据结构'));4. create view c_avggradeasselect ame,avg(grade) avg_gradefrom c,scwhere o=ogroup by ame5. drop view c_avggrade6. create view schoolboyasselect sno,sname,sagefrom swhere ssex='男'7. select schoolboy.sno,snamefrom schoolboywhere schoolboy.sage='19'8. update schoolboySet sage=’21’where sn=’002’9. insertinto schoolboyvalues('S6','MING','20');10. deletefrom schoolboywhere sno='003';11. create view schoolgirlasselect s.sno,s.sname,ame,sc.gradefrom s,c,scwhere s.sno=sc.sno and o=o and s.ssex='女'12. select schoolgirl.sno,sname,avg(grade)from schoolgirlgroup by schoolgirl.sno,snamehaving avg(grade)>80;13. drop viw schoolgirl四、实验体会(实验中碰到的问题及解决方法等)在试验验证过程中,发现教材P116例4有错误,列名Sdept与Avg_age之间少了逗号。

实验三 多表查询、数据更新、视图

实验三 多表查询、数据更新、视图
(5)将计算机系学生视图中学号为200215122的学生姓名改为“刘留”。
(6)向计算机系学生视图中插入一条新的学生记录,其中学号为200215126,姓名为李三,年龄为20岁,院系为IS,并分析下执行结果。
(7)删除计算机系学生视图中学号为200215121的记录,并查看Student表的变化,说明是为什么。
3、掌握子查询的表示和使用方法;
4、掌握对数据表的更新语法;
5、掌握视图的创建、查询和修改方法;
二、实验准备
1、理解Select语句的基本语法格式和执行方法;
2、理解连接查询的表示;
3、理解子查询的表示方法;
4、理解对数据表的插入、删除、更新语法;
5、理解视图的含义;
三、实验内容
1、基于Student_DB数据库中的三个表Student,Course,SC,进行如下的查询:
(7)查询选修了课程1或者选修了课程2的学生。
(8)求没有选修2号课程的学生姓名。
(9)查询选修课程1的学生集合与选修课程2的学生集合的交集。
(10)查询信息系的学生与年龄不大于19岁的学生的差集。
2、用SQL语句实现Student_DB数据库中数据表的更新(给出查询语句或截图):
(1)删除信息系所有学生的选课记录。
3、用SQL语句建立视图并对视图做相应的操作:
(1)建立计算机系学生所有信息的视图,并要求进行修改和插入操作时仍须保证该视图只有计算机系的学生。
(2)建立计算机系选修了’3’号课程且成绩在90分以下的学生视图,并对此视图进行查询。
(3)将学生的学号,姓名和平均成绩定义为一个视图。
(4)利用所建立的视图,查询选修了2号课程的计算机系的学生。

、实验ຫໍສະໝຸດ 过程实验过程、存在的问题及解决办法:

SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。

2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。

使用DISTINCT保留字消除重复行。

对查询结果排序和分组。

集合分组使用集函数进行各项统计。

连接查询笛卡儿连接和等值连接。

自连接。

外连接复合条件连接。

多表连接。

嵌套查询通过实验验证对子查询的两个限制条件。

体会相关子查询和不相关子查询的不同。

考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。

采用逻辑运算符AND或OR来实现集合交和减运算。

3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。

在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。

在表Reports中保存学生的选课记录和考试成绩。

1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。

查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。

积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。

考试成绩>=60。

查询学分是3或4的课程的名称。

查询所有课程名称中含有“算法”的课程编号。

查询所有选课记录的课程号。

统计所有老师的平均工资。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五实验报告
一、实验目的
1.掌握实体完整性约束、参照完整性约束;
2. 灵活应用完整性约束‘
3. 了解触发器在的应用
4. 理解索引的功能和运用并掌握索引的建立方法;
二、实验内容
5.1 实体完整性
1)在数据库School中建立表Stu_Union,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录
建立表Stu_Union,进行主键约束
在没有违反实体完整性的前提下插入一条记录
在没有违反实体完整性的前提下更新一条记录
2)演示违反实体完整性的插入操作
3)演示违反实体完整性的更新操作
4)演示事务的处理,包括事务的建立,处理以及出错时的事务回滚,演示事务处理和批处理的区别。

提示:SQL2005相关语句为
BEGIN TRAN
ROLLBACK TRAN
COMMIT TRAN
可以这样演示:新建一个包含两条语句的事务,使第一条成功而第二条失败,然后查看整个事务是否回滚。

重要提示:SQL默认只回滚出错的语句,要回滚整个事务,需要预先执行以下语句:SET XACT_ABORT ON
a.先执行如下SQL语句(可执行成功)
b.再执行如下语句,此时为执行第一句insert语句成功,第二句insert语句失败
c.查询事物是否回滚
由上可知,表为b步骤即事物出错前的状态,所以整个事物回滚。

5)通过建立Scholarship表,插入一些数据。

演示当与现有的数据环境不等时,无法建立实体完整性以及参照完整性。

提示:即演示不能为表Scholarship生成主键和外键的情况。

a.
b. 不能为表Scholarship生成主键
c.不能为表Scholarship生成外键
5.2参照完整性
1)为演示参照完整性,建立表Course,令cno为其主键,并在Stu_Union中插入数据。

为下面的实验步骤做预先准备。

在Stu_Union中插入数据
建立表Course,令cno为其主键
2)建立表sc,另sno和cno分别为参照Stu_Union表以及Course表的外键,设定为级连删除,并令(sno, cno)为其主键。

在不违反参照完整性的前提下,插入数据。

3)演示违反参照完整性的插入数据
4)在Stu_Union中删除数据,演示级连删除。

5)Course中删除数据,演示级连删除。

6)为了演示多重级连删除,建立Stu_Card表,令stu_id为参照Stu_Union表的外键,令card_id 为其主键,并插入数据。

7)为了演示多重级连删除,建立ICBC_Card表,令stu_card_id为参照Stu_Card表的外键,令bank_id为其主键,并插入数据。

8)通过删除stu_union表中的一条记录,演示三个表的多重级连删除。

未删除时
删除stu_union记录sno=10004
结果:
9)演示事务中进行多重级连删除失败的处理。

修改ICBC_Card表的外键属性,使其变为On delete No action, 演示事务中通过删除stu_union表中的一条记录,多重级连删除失败,整个事务回滚到事务的初始状态。

修改外键属性:
事务中多重级连删除失败
查询事务回滚
5.3索引的建立和作用
1.实验目的
学会在SQL SERVER中建立索引
通过本实验体会覆盖索引的作用,在以后的实践中,能适时地使用覆盖索引来提高数据库的性能。

通过实验体会聚簇索引的优缺点,学会根据具体情况创建聚簇索引
2.实验内容
1)STUDENTS(sid,sname,email,grade)在sname上建立聚簇索引,grade上建立非聚簇索引,并分析所遇到的问题
分析问题:1.Cluster后要ed
2.要删除本来存在的聚集索引,在删除前应先移除主键
2)数据库SCHOOL的选课表CHOICES有如下结构:
CHOICES(no,sid,tid,cid,score)
假设选课表集中用于查询分析,经常执行统计某课程修读的学生人数查询访问
要求:
A.首先执行没有索引的实验(设数据库CHOICES表在cid列上没有索引)
B.然后做有索引的实验
C.
D.对比试验结果,并进行分析
对比查询同一条指令占用时间可得,建立索引后查询快得多。

3)以数据库SCHOOL中CHOICES表为例,设建表时考虑到以后经常有一个用sid查询此学生所有选课信息的查询,考虑到一般学生不止选一门课,且要询问这些记录的所有信息,故在sid上建立索引,使相同sid的记录存在一起,取数据页面时能一起取出来,减少数据页面的存取次数
要求:
A.首先执行没有任何索引的情况
B.在sid上建有非聚簇索引的情况
C.在sid上建有聚簇索引的情况
D.对比实验结果,并进行分析
答:建立索引比没有建立索引查询要来得快,理论上聚簇索引应比非聚簇索引快,但由以上实验中,两者并无多大差别。

5.4 触发器的建立和使用
实验目的:通过实验使学生加深对数据完整性的理解,学会创建和使用触发器
实验内容:
1)创建Teacher(Tno,Tname,Tsex,Tage,Tdept)表,并自定义2个约束U1和U2,其中U1规定Tname字段唯一,U2规定Tage上限是28.为Teacher表建立触发器T1,当插入或更新表中的数据时,保证所操作的记录的Tage值大于0,并插入几条数据.
2)为Teacher表建立触发器T2,禁止删除编号s01的校长。

3)Teacher表中的人员的编号是唯一且不可变更的,创建触发器实现更新中编号的不可改变性。

4)设置一个触发器,该触发器仅允许“dbo”用户可以删除Teacher表内的数据,否则出错。

5)设置一个针对Teacher表的触发器,当有人更新Teachder表时,触发器将自动将该操作者的名称和操作时间记录在一张表内,以便追查。

三、实验总结
通过本次实验,我进一步理解掌握了关于实体整体性、参照整体性及触发器和索引的建立等知识。

实验问题总结:
1.在创建外键时最好自己定义constraint XX方便之后对外键的修改或删除。

2.在比较索引与无索引查询时间上忘了怎么调出查询时间,通过询问同学得以解决,下次应加强记忆。

相关文档
最新文档