您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 实验三更新-视图-权限管理(22920132203774)
《数据库系统原理》实验三数据更新、视图、权限管理实验3.1数据更新1实验内容(1)使用INSERTINTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。(2)使用SELECTINTO语句,产生一个新表并插入数据。(3)使用UPDATE语句可以修改制定表中满足WHERE子句条件的元组,有三种修改的方式:修改某个元组的值;修改多个元组的值;带子查询的修改语句。(4)使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询的删除语句。2实验步骤在数据库School上按下列要求进行数据更新可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库UseSchoolgo(1)使用SQL语句向STUDENTS表中插入元组(编号:12345678名字:LiMingEMAIL:LM@gmail.com年级:2002)。insertintoSTUDENTS(sid,sname,email,grade)values('12345678','LiMing','LM@gmail.com',2002);select*fromSTUDENTS;(2)对每个课程,求学生的选课人数和学生的最高成绩,并把结果存入数据库。使用SELECTINTO和INSERTINTO两种方法实现。createtableSnumanMscore(cidchar(10),numint,maxscoreint);insertintoSnumanMscore(cid,num,maxscore)selectcid,COUNT(*),MAX(score)fromCHOICESgroupbycid;select*fromSnumanMscore;selectcid,COUNT(*)asnum,MAX(score)asmaxscoreintoSnumandMscore2fromCHOICESgroupbycid;select*fromSnumandMscore2;(3)在STUDENTS表中使用SQL语句将姓名为LiMing.的学生的EMAIL改为LM@qq.com。updateSTUDENTSsetemail='LM@qq.com'wheresname='LiMing';select*fromSTUDENTS;(4)在TEACHERS表中使用SQL语句将所有教师的工资翻倍。updateTEACHERSsetsalary=salary*2;select*fromTEACHERS;(5)将姓名为waqcj的学生的课程C++的成绩加10分。selectsidfromSTUDENTSwheresname='waqcj'selectcidfromCOURSESwherecname='C++'updateCHOICESsetscore=score+10wheresidin(selectsidfromSTUDENTSwheresname='waqcj')andcidin(selectcidfromCOURSESwherecname='C++');select*fromCHOICESwheresid='800005753'andcid='10005’(6)在STUDENTS表中使用SQL语句删除姓名为LiMing的学生信息。deletefromSTUDENTSwheresname='Liming';select*fromSTUDENTS;(7)删除所有选修课程C的选课记录。select*fromCHOICESwherecidin(selectcidfromCOURSESwherecname='C');deletefromCHOICESwherecidin(selectcidfromCOURSESwherecname='C');(8)对COURSES表做删去时间80的元组的操作,讨论该删除操作所受到的约束。deletefromCOURSESwherehour80;select*fromCOURSES;实验3.2视图操作1实验内容(1)使用CREATEVIEW命令建立视图。(2)对视图进行查询(3)更新视图(4)使用DROPVIEW命令删除视图。2实验步骤在数据库School上按下列要求进行视图的有关操作可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库UseSchoolgo(1)建立薪水大于3000的教师的视图t_view,并要求进行修改和插入操作时仍需保证该视图只有薪水大于3000的教师信息。useSchoolgocreateviewt_viewasselect*fromTEACHERSwheresalary3000withcheckoption;goselect*fromt_view;(2)在视图t_view中查询邮件地址为xibl@izd.edu的教师的相关信息。select*fromt_viewwhereemail='xibl@izd.edu';(3)向视图t_view中插入一个新的教师记录,其中教师编号为199999998,姓名为abc,邮件地址为abc@def.com,薪水为5000。insertintot_view(tid,tname,email,salary)values('199999998','abc','abc@def.com',5000);select*fromt_view;(4)在视图t_view中将编号为200010493的教师的薪水改为6000。updatet_viewsetsalary=6000wheretid='200010493';(5)删除视图t_view。dropviewt_view;实验3.3用户标识与鉴别1实验内容由系统提供一定的方式让用户标识自己的名字和身份。2实验步骤(1)在SSMS中,设置SQLServer的安全认证模式。(2)在SSMS中建立一个名为“张三”的登陆用户、School数据库用户。最后点击确定即可:(3)在SSMS中取消“张三”这个用户。点击登录名,找到张三,删除即可。(4)学习【参考命令】中的几个命令,了解利用命令实现上述步骤。A、建立一个名为“张三”的登陆用户、School数据库用户。execsp_addlogin'张三','123456','School'execsp_adduser'张三'B、取消“张三”这个用户。execsp_dropuser'张三'execsp_droplogin'张三'实验3.4自主存取控制1实验内容定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。2实验步骤(1)在SSMS中建立一个名为“张三”的登陆用户、School数据库的用户。参见实验3.3的试验步骤(2)execsp_addlogin'张三','123456','School'execsp_adduser'张三'(2)使用查询验证“张三”这个用户名是否具有对学生表的SELECT权限。selectSYSTEM_USERexecuteasUSER='张三'selectSYSTEM_USERselect*fromSTUDENTS;(3)将School数据库的操作权限赋予数据库用户张三。revertselectSYSTEM_USERgrantallprivilegesonSTUDENTSto张三grantallprivilegesonCHOICESto张三grantallprivilegesonCOURSESto张三grantallprivilegesonTEACHERSto张三executeasUSER='张三'selectSYSTEM_USERselect*fromSTUDENTS;实验3.5视图机制在自主存取控制上的应用1实验内容在视图机制上定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。2实验步骤(1)在数据库School上创建用户“张三”,具体操作参见实验3.3中的试验步骤(2)。execsp_addlogin'张三','123456','School'execsp_adduser'张三'(2)新建查询,用管理员身份登陆数据库。在choices表上创建视图ch_view,并显示其内容(选课课程号为10005)。printusercreateviewch_viewasselect*fromCHOICESwherecid='10005';goselect*fromch_view;(3)在视图ch_view上给用户张三赋予INSERT的权限。grantinsertonch_viewto张三(4)将视图ch_view上score列的权限赋予用户张三。grantallonch_view(score)to张三executeasuser='张三'printuserselectscorefromch_view;(5)以用户张三登陆查询分析器,对ch_view进行查询操作。revertselectSYSTEM_USERprintusergrantallonch_viewto张三executeasuser='张三'printuserselect*fromch_view(6)以用户张三登陆查询分析器,对no为500127998的学生的成绩进行修改,改为90分。selectscorefromch_viewwhereno=500127998updatech_viewsetscore=90whereno=500127998selectscorefromch_viewwhereno=500127998(7)收回对用户张三对视图ch_view查询权限的授权revertselectSYSTEM_USERrevokeselectonch_viewfrom张三executeasuser='张三'select*fromch_viewprintuserselect*fromch_view实验总结:在此次实验中我巩固了更新数据库,建立视图的各种命令,还学习了权限管理,并对此有了一定的理解。虽然在此过程中碰到了一些障碍,但最后都解决了。我觉得自己在实验中学到了许多东西。
本文标题:实验三更新-视图-权限管理(22920132203774)
链接地址:https://www.777doc.com/doc-4736200 .html