赞
踩
山东大学 2020级数据库系统 实验一
山东大学 2020级数据库系统 实验二
山东大学 2020级数据库系统 实验三
山东大学 2020级数据库系统 实验四
山东大学 2020级数据库系统 实验五
山东大学 2020级数据库系统 实验六
山东大学 2020级数据库系统 实验七
山东大学 2020级数据库系统 实验八、九
做数据库实验一定要静得下心来,才能发现其中的错误然后进行改正。同时,如果发现 SQL 语句总是报错,“一定是你错了,只是不知道错在哪里!”
其次,SQL 语句中较为复杂的点博主都进行了注释,希望大家一定要看懂思路后自己写一遍,而不是盲目的 Ctrl+C,Ctrl+V,切记切记!!
8-1
一、 实验内容
启动两个不同浏览器,firefox登录主账号userID、360浏览器登录备用账号userbID,测试提交和回退的作用,了解锁等待、授权知识。
二、 实验步骤
1. 使用主用户userID登入数据库,简称主窗口。
2. 使用备用用户userbID登入数据库,简称备用窗口。
3. 关闭自动提交复选框。
4. 主用户访问备用用户的表之前,需要在备用账号中将相应的表的相应的权限授权给主用户,这样主用户才可以查询操作备用用户的相应的表。
在主用户下可以执行select * from userbId.test8_00查询备用用户的表test8_00的数据,如果没有授权,则会提示表没有表找到。
如果备用用户执行grant select on test8_00 to userID,即授权表test8_00的select权限给用户userID,上面的查询语句就可以正确执行,并查询到相应的结果。
5. 常用的授权、命令:
grant select on test8_00 to userID授权表test8_00的select权限给用户userID。
grant update on test8_00 to userID授权表test8_00的update权限给用户userID。
grant insert on test8_00 to userID授权表test8_00的insert权限给用户userID。
grant delete on test8_00 to userID授权表test8_00的delete权限给用户userID。
grant all on test8_00 to userID授权表test8_00的all权限给用户userID。
revoke select on test8_00 from userID收回表test8_00的insert权限从用户userID。
6. 在备用用户下将pub.teacher复制到test8_00中,然后将其所有权限给主用户。
7. 按表中序号在相应窗口执行对应的命令(主用户访问备用用户表需要授权)。
表格详见《数据库系统实验大纲》
8. 假设数据中有张老师,通过上面的操作以后,他在每次查询的时候的年龄是多少?根据你的判断得出结果,然后按步骤进行实验验证,在主用户下创建一个表test8_10(test varchar(20),age numeric (3)),插入10行数据,分表存放10个结果。
避坑指南:
思路:
1. 按照实验步骤一步一步地进行实验即可;
结果1 88
结果2 90
结果3 90
结果4 86
结果5 90
结果6 90
结果7 86
结果8 86
结果9 76
结果10 86
create table test9_01 as
select *
from pub.student_11_1
where 1=0
create unique index sid_index on test9_01(sid)
insert into test9_01
select *
from pub.student
where sex = '女'
insert into test9_01
select *
from pub.student_11_1
where sex = '女'
and sid not in
(select sid
from test9_01)
insert into test9_01
select *
from pub.student_11_2
where sex = '女'
and sid not in
(select sid
from test9_01)
create table test9_02 as
select *
from pub.student_11_1
where 1=0
insert into test9_02
select *
from pub.student
where sex = '女'
and sid in
(select sid
from pub.student_course
where score < 60)
insert into test9_02
select *
from pub.student_11_1
where sex = '女'
and sid in
(select sid
from pub.student_course
where score < 60)
and sid not in
(select sid
from test9_02)
insert into test9_02
select *
from pub.student_11_2
where sex = '女'
and sid in
(select sid
from pub.student_course
where score < 60)
and sid not in
(select sid
from test9_02)
再次强调:一定是看懂思路之后自己实践哈~~
有问题还请斧正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。