实验三更新,视图,权限管理(22920132203774).docx_第1页
实验三更新,视图,权限管理(22920132203774).docx_第2页
实验三更新,视图,权限管理(22920132203774).docx_第3页
实验三更新,视图,权限管理(22920132203774).docx_第4页
实验三更新,视图,权限管理(22920132203774).docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理实验三数据更新、视图、权限管理实验3.1 数据更新1 实验内容(1) 使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。(2) 使用SELECT INTO语句,产生一个新表并插入数据。(3) 使用UPDATE语句可以修改制定表中满足WHERE子句条件的元组,有三种修改的方式:修改某个元组的值;修改多个元组的值;带子查询的修改语句。(4) 使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询的删除语句。2 实验步骤在数据库School上按下列要求进行数据更新可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库Use Schoolgo(1) 使用SQL语句向STUDENTS表中插入元组(编号:12345678 名字:LiMing EMAIL: LM 年级:2002)。insert into STUDENTS (sid,sname,email,grade)values(12345678,LiMing,LM,2002);select * from STUDENTS ;(2) 对每个课程,求学生的选课人数和学生的最高成绩,并把结果存入数据库。使用SELECT INTO 和INSERT INTO 两种方法实现。create table SnumanMscore(cid char(10),num int,maxscore int);insert into SnumanMscore (cid,num,maxscore )select cid,COUNT(*),MAX(score)from CHOICES group by cid ;select * from SnumanMscore ;select cid,COUNT (*)as num,MAX(score) as maxscore into SnumandMscore2from CHOICES group by cid ;select * from SnumandMscore2 ;(3) 在STUDENTS表中使用SQL语句将姓名为LiMing.的学生的EMAIL改为LM。update STUDENTS set email =LMwhere sname =LiMing;select * from STUDENTS ;(4) 在TEACHERS表中使用SQL语句将所有教师的工资翻倍。update TEACHERS set salary =salary *2;select * from TEACHERS ;(5) 将姓名为waqcj的学生的课程C+的成绩加10分。select sid from STUDENTS where sname =waqcjselect cid from COURSES where cname =C+update CHOICES set score =score +10where sid in(select sid from STUDENTS where sname =waqcj)and cid in (select cid from COURSES where cname =C+);select * from CHOICES where sid=800005753and cid=10005(6) 在STUDENTS表中使用SQL语句删除姓名为LiMing的学生信息。delete from STUDENTS where sname =Liming;select * from STUDENTS ;(7) 删除所有选修课程C的选课记录。select * from CHOICES where cid in(select cid from COURSES where cname =C);delete from CHOICES where cid in (select cid from COURSES where cname =C);(8) 对COURSES表做删去时间80的元组的操作,讨论该删除操作所受到的约束。delete from COURSES where hour 80;select * from COURSES ;实验3.2 视图操作 1实验内容(1) 使用CREATE VIEW命令建立视图。(2) 对视图进行查询(3) 更新视图(4) 使用DROP VIEW命令删除视图。2实验步骤在数据库School上按下列要求进行视图的有关操作可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库Use Schoolgo(1) 建立薪水大于3000的教师的视图t_view,并要求进行修改和插入操作时仍需保证该视图只有薪水大于3000的教师信息。use Schoolgocreate view t_viewas select * from TEACHERS where salary 3000with check option;goselect * from t_view ;(2) 在视图t_view中查询邮件地址为的教师的相关信息。select * from t_view where email =;(3) 向视图t_view中插入一个新的教师记录,其中教师编号为199999998,姓名为abc,邮件地址为,薪水为5000。insert into t_view (tid,tname ,email ,salary )values(199999998,abc,,5000);select * from t_view ;(4) 在视图t_view中将编号为200010493的教师的薪水改为6000。update t_view set salary =6000where tid=200010493;(5) 删除视图t_view。drop view t_view ;实验3.3 用户标识与鉴别1实验内容由系统提供一定的方式让用户标识自己的名字和身份。2实验步骤(1) 在SSMS中,设置SQL Server的安全认证模式。(2) 在SSMS中建立一个名为“张三”的登陆用户、School数据库用户。最后点击确定即可: (3) 在SSMS中取消“张三”这个用户。点击登录名,找到张三,删除即可。(4) 学习【参考命令】中的几个命令,了解利用命令实现上述步骤。A、 建立一个名为“张三”的登陆用户、School数据库用户。exec sp_addlogin 张三,123456,Schoolexec sp_adduser 张三 B、 取消“张三”这个用户。exec sp_dropuser 张三exec sp_droplogin 张三 实验3.4 自主存取控制1实验内容定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。2实验步骤(1) 在SSMS中建立一个名为“张三”的登陆用户、School数据库的用户。参见实验3.3的试验步骤(2)exec sp_addlogin 张三,123456,Schoolexec sp_adduser 张三 (2) 使用查询验证“张三”这个用户名是否具有对学生表的SELECT权限。select SYSTEM_USERexecute as USER=张三select SYSTEM_USERselect * from STUDENTS ;(3) 将School数据库的操作权限赋予数据库用户张三。revert select SYSTEM_USERgrant all privileges on STUDENTS to 张三grant all privileges on CHOICES to 张三grant all privileges on COURSES to 张三grant all privileges on TEACHERS to 张三execute as USER=张三select SYSTEM_USERselect * from STUDENTS ;实验3.5 视图机制在自主存取控制上的应用1实验内容在视图机制上定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。2实验步骤(1) 在数据库School上创建用户“张三”,具体操作参见实验3.3中的试验步骤(2)。exec sp_addlogin 张三,123456,Schoolexec sp_adduser 张三(2) 新建查询,用管理员身份登陆数据库。在choices表上创建视图ch_view,并显示其内容(选课课程号为10005)。print usercreate view ch_viewasselect * from CHOICES where cid =10005;goselect * from ch_view;(3) 在视图ch_view上给用户张三赋予INSERT的权限。grant insert on ch_view to 张三(4) 将视图ch_view上score列的权限赋予用户张三。grant all on ch_view(score) to 张三execute as user=张三print userselect score from ch_view;(5) 以用户张三登陆查询分析器,对ch_view进行查询操作。revert select SYSTEM_USERprint usergrant all on ch_view to 张三execute as user=张三print userselect * from ch_view(6) 以用户张三登陆查询分析器, 对no为500127998的学生的成绩进行修改,改为90分。select score from ch_view where no=500127998update ch_view set score=90 where no=500127998select score from ch_view where no=500127998(7) 收回对用户张三对视图ch_view查询权

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论