- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE9
PAGE
信息工程学院
信息工程学院
实验报告
实验报告
课程名称数据库原理
实验序号3
实验项目数据更新和创建登录及用户
实验地点
实验学时实验类型验证性
指导教师实验员
专业班级
学号 姓名
年月日
成绩:A
教师评语
该学生的实验报告格式正确,步骤详细,内容丰富,具体地展示了自己的思考过程,实验结果正确,很好地把课堂所学知识应用于实际操作中。
一、实验目的及要求
1、掌握SQL数据更新的方法;
2、了解和掌握视图的修改方法;
3、掌握创建用户、授权和回收用户权限的方法。
二、实验原理与内容
1、SQL的数据更新包括插入(insert)、修改(update)和删除(delete)数据三条语句。
(1)插入数据的格式为
insert
into表名[(属性列1[,属性列2...])]
select子查询语句
(2)修改数据的格式为
update表名
set列表名1=表达式1[,列表名2=表达式2...]
[where条件]
(3)删除数据的格式为
Delete
From表名
[where条件]
2、视图
视图是关系数据库系统提供给用户以多种角度观察数据库中数据的一种重要方法。视图是从一个或几个基本表(或视图)导出的一个虚拟表。视图一经定,就可以和基本表一样被查询、被删除,也可以在若干视图之上再定义新的视图,当然,视图完成数据的更新(增加、删除、修改)操作有一定的限制。其规则主要有以下三条
如果一个视图是从多个表使用连接操作导出的,那么不允许对这个视图执行更新操作。
如果在导出视图的过程中使用了分组和集函数,也不允许对这个视图执行更新操作。
如果一个视图是从单个基本表使用选择和投影,操作导出且视图的属性集包含了基本表的一个候选键,这种视图称为“行列子集视图”,那么允许对这个视图执行更新操作。
3、SQL控制用户对数据的存取权限,DBMS提供了以下功能:
1)由DBA创建允许访问数据库的用户(登录名)。
2)由DBA为每个登录名赋予恰当的角色和成员身份并指定可以连接的数据库。
3)由DBA把可访问的数据对象和操作权限授予指定用户,这个过程称为授权。可用sQL的GRANT命令来完成。若要撤销某个用户的权限,可用REVOKE命令实现。
4)DBMs把授权或撤销权限的结果存入数据字典。
5)当用户提出操作请求时,DBMS进行授权情况检查,以决定是否执行用户的操作请求。
三、实验软硬件环境
装有MicrosoftSQLServer2008ManagementStudio的电脑
四、实验过程(实验步骤、记录、数据、分析)
1、实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验。下面分别为depts表、students表、courses表、reports表。
2、数据的更新:插入数据、修改数据、删除的数据
3、视图的定义、查询和更新
4、创建用户、授权和收回权限
五、测试/调试及实验结果分析
1、数据更新
(1)插入数据
1.1数据库中已有一个关系History_Student,其关系模式与Students完全一样,试将关系Students中的所有元组插入到关系History_Student中去,其SQL命令为:
insert
intohistory_student
select*
fromstudents
运行结果如右图,首先要新建一个空的名为history_student的表,然如执行查询命令。
(2)修改数据
2.1将学号为“S03”的学生年龄改为22岁,即要修改满足条件的一个元组的属性值。其命令为
updatestudents
setsage=22
wheresno=s03
执行select*fromstudents,运行结果如右图
2.2将所有学生的年龄增加1岁。即要修改多个元组的值。其命令为
updatestudents
setsage=1+sage
执行上述命令后,执行select*fromstudents,运行结果如右图,与上一题对比,每个学生的年龄都增加了1岁。
2.3将数学系所有学生的成绩置零.其命令为
updatereports
setgrade=0
whered01=
(selectdno
fromstudents
wherestudents.sno=r
文档评论(0)