存储过程、触发器练习
1、在学生选课数据库中,创建一存储过程deptmale,查询指定系的男生人数,其中系为输入参数,人数为输出参数。
create proc p_dept
@dept char(20),@mannum int output
as
select @allcre=count(sno) from student
where sdept=@dept and ssex='男'
declare @num int
exec p_dept '计算机系',@num output
print @num
2、在s_c数据库中,创建一个存储过程totalcredit,根据输入的学生姓名,计算其总学分。(使用输出参数)。并执行该存储过程。
create proc p_cou
@name char(10),@allcre int output
as
select @allcre=sum(ccredit) from student,course,sc
where student.sno=sc.sno and course.cno=sc.cno
and sname=@name group by sc.sno
declare @asum int
exec p_cou '刘晨',@asum output
print @asum
3、创建一更新触发器upd_grade,设置sc表的grade字段不能被更新,并显示信息学生成绩不能被修改,请与教务处联系
CREATE TRIGGER mes_sc
ON sc
FOR UPDATE
AS
IF UPDATE(grade)
BEGIN
ROLLBACK TRAN
PRINT '学生成绩不能被修改,请与教务处联系'
END
4、创建一个insert触发器uninsertstu,当在student表中插入一条新纪录时,如果是“计算机系”的学生,则撤销该插入操作,并返回“此系人数已满,不能再添加”信息。
create trigger unisnertstu
on student for insert
as
if exists (select * from inserted where sdept='计算机系')
begin
print '此系人数已满,不能再添加'
rollback transaction
end
4、创建一删除触发器tri_xs,功能是当某个学生从student表中被删除时,同时也删除sc表中
该学生的相关记录。
USE 学生选课
GO
CREATE TRIGGER tri_xs
ON student
FOR DELETE
AS
DELETE sc
WHERE sno IN (SELECT sno FROM DELETED)
GO
5、在学生选课数据库中,创建一学生表stu_info(id,sno,sname,address,phone)。其中id是自动编号。并向该表中插入一条记录(0611105,李雷,汉正街5号,1111111)。
6、在创建的stu_info表中,查是否有‘王梅梅’同学,如果没有,则在此表中添加该记录(0611108,王梅梅,人民路1号,22222222),编程实现将此信息添加到表中。
declare @id int
set IDENTITY_INSERT stu_info ON
if exists(select * from stu_info where sname='王梅梅')
begin
  print '此人已存在.'
end
else
begin
  select @id=max(id) from stu_info
  set @id=@id+1
  insert into stu_info(id,sno,sname,address,phone) values(@id,'0611108','王梅梅','人民路1号','22222222')
end

数据库安全单元测验
一、判断题
1.数据库的自动压缩仅当数据库关闭时进行。                  (  )
答案:
2.数据库修复可以修复数据库的所有错误。                    (  )
答案:×
3.数据库经过压缩后,数据库的性能更加优化。                (  )
答案:
4.Access不仅提供了数据库备份工具,还提供了数据库还原工具。  (  )
答案:×
5.数据库文件的MDB格式转换成MDE格式后,还可以再转换回来。  (  )
答案:×
6.数据库文件设置了密码以后,如果密码忘记,可通过工具撤消密码。(  )
答案:×
7.添加数据库用户的操作仅有数据库管理员可以进行。            (  )
答案:
8.一个用户可以修改自己的数据库密码。                      (  )
答案:
9.Access可以获取所有外部格式的数据文件。                  (  )
答案:×   
10.外部数据的导入与链接操作方法基本相同。                  (  )
答案:×
二、填空题
1.对数据库的压缩将重新组织数据库文件,释放那些由于    山粗记录    所造成的空白的磁盘空间,并减少数据库文件的      占用量。
答案:删除记录,磁盘
2.数据库打开时,压缩的是          。如果要压缩和修复未打开的 Access数据库,可将压缩以后的数据库生成      ,而原来的数据库     
答案:当前打开的数据库,副本文件,不变
3.使用“压缩和修复数数据库”工具不但完成对数据库的          ,同时还access数据库生成网页版        的一般错误。
答案:压缩工作,修复数据库
4.MDE 文件中的VBA代码可以      ,但无法再            ,数据库也像以往一样         
答案:继续运行,查看或编辑,继续正常工作
5.可以通过两种方法对数据库进行加密,一是设置            ,二是对数据库          。二者有所不同,数据库加密时                         
答案:数据库密码,进行加密其他软件不能正常阅读数据库中的数据
6.管理员通过用户权限的设置,可限制用户                      ,使数据库更加               
答案:对数据库的特定的操作,安全
7.外部数据导入时,则导入到Access表中的数据和原来的数据之间          。而链接的表时,一旦数据发生变化,直接反映到                       
答案:没有任何联系,其他应用程序或Access中
8.数据库的保护常用的方法有                                     
答案:数据库压缩与复制,数据库的备份下还原,同步复制数据,生成MDE文件
三、简答题
1.数据库保护常用的方法有哪些?
答案:熟练掌握压缩和修复数据库的操作方法;掌握数据库的备份及还原的操作方法;了解同步复制数据库的意义和操作步骤;掌握将数据库生成MDE文件的方法;掌握数据库加密和解密的方法;
2.MDE文件与MDB文件的主要区别是什么?
答案:生成MDE文件又称为打包,是对数据库系统进行编译、自动删除所有可编辑的VBA代码并压缩数据库系统的过程。将数据库保存为 MDE 文件以后,数据库可以继续正常工作,但隐藏了数据库中所包含VBA代码,使之无法查看、编辑或修改,起到了保护窗体和报表,提高了数据库系统的安全性的作用。
3.数据库同步复制与数据库有何不同?
答案:数据库备份文件是静态的,即对数据库进行更新操作时,其备份数据库文件的内容不会随之改变。而同步复制数据库则不一样:当源数据库的内容更改时,复制数据库的副本也同时更改,而当复制数据库副本更改时,源数据库也同时更改。即数据库副本与原数据库保持同步更新。这样当源数据库的数据出现问题时,可通过最新复制的数据库副本进行恢复。
4.数据库加密的常用方法有哪些?
答案:对数据库加密的方法有两种,一是设置数据库密码,二是对数据库进行加密。设置数据库密码是须知道密码的用户才可以访问数据库。但是对于一个普通的Access数据库文件,由于可以使用一些其他软件(如woed、Excel等)绕过它的密码直接读取里面的数据表,所
以必须有一种方法将这种数据库文件进行编码(又称加密),以避免非法的访问,这样这个数据库才能是安全的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。