桂电七院数据库实验报告四

实验目的

1、熟练掌握SQL语句中集合查询的语法结构;
2、熟练掌握对视图的建立和删除操作;
3、熟练掌握对视图数据的更新,了解哪些视图不能更新;
4、掌握视图与表之间的区别与联系。

实验内容与步骤

在前面建立的数据库student000的表中进行如下操作:
1、查询选修了1号课程或2号课程的学生学号(用集合查询和OR操作实现,比较两种结果,分析两种查询方式
的区别);
集合查询:

use 自己的数据库名字
select sno from sc where cno='1'
union
select sno from sc where cno='2';
or操作:
use student1900710332
select distinct sno 
from sc 
where cno='1' or cno='2';

2、查询选修了1号课程但是没有选2号课程的学生学号;

use 自己的数据库名字
select sno
from  sc A
where A.cno = '1' and  sno  not in (
select  sno from sc
where  cno ='2' )

3、建立计算机系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生;

use 自己的数据库名字
go
create view CS_view
as
select sno,sname,sage
from Student
where sdept='计算机'
with check option;

4、建立一个反映学生出生年份的视图;

use 自己的数据库名字
go
create view BIRTH(sno,sname,sbirth)
as
select sno,sname,2021-sage
from Student

5、在计算机系学生的视图中查询年龄小于22岁的学生;

use 自己的数据库名字
go
create view CS_view2
as
select sno,sname,sage
from   CS_view
where  sage<22;

6、将计算机系学生视图中学号为95004的学生姓名改为“章立”。

use 自己的数据库名字
update CS_view
set sname='章立'
where sno='95004'

7、练习课本第9章P299~301页的授权与回收SQL语句:
1)在超级管理员的身份下,为新建的用户授予查询student表的权限:GRANT select ON student TO U1; 发现
没有用户U1,因此需要按步骤2)新建一个用户U1。
2)新建一个SQL Server登录名
在SQL Server Management Studio中,打开“安全性”选项的“登录名”,右键“新建登录名”在登录名选项
输入U1选中“SQL Server身份验证”输入密码U1(为方便实验,密码一般可选用跟登录名相同)取消“强制
实施密码策略”“默认数据库”选中自己的数据库在左侧选择页中选中“用户映射”勾选自己数据库的“映射”
选项点击确定。
3)改变服务器身份验证方式
在SQL Server Management Studio中,右键根节点选中最下方的“属性”在安全性一栏中将“服务器身份验证”改
为“SQL Server和Windows身份验证模式”确定。
4)切换身份重新登录数据库
在SQL Server Management Studio中,右键根节点选中“连接”在身份验证一栏改为“SQL Server身份验证”,
登录名和密码分别输入U1点击“连接”。注:如果无法登陆,请用“Windows身份验证”连接,在根节点右键“
重新启动”后再试一次。
5)检查新建用户身份的数据库操作权限
在新建用户U1的身份下,测试刚被授予的查询权限:SELECT * FROM student;再测试该用户U1是否可以查询
其他表,是否可以对student表做增加、删除和修改的操作,请说明原因。
8、练习以下授权与回收SQL语句,并说明权限控制的效果:
1)REVOKE select on student FROM U1;
2)GRANT select, insert ON course TO U1 WITH GRANT OPTION;
3)以用户U1登陆,GRANT select ON course(课程名,学分) TO U2;

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值