数据库上机实验题(七、八、九)Word下载.docx
- 文档编号:6463922
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:6
- 大小:20.96KB
数据库上机实验题(七、八、九)Word下载.docx
《数据库上机实验题(七、八、九)Word下载.docx》由会员分享,可在线阅读,更多相关《数据库上机实验题(七、八、九)Word下载.docx(6页珍藏版)》请在冰点文库上搜索。
IFEXISTS(SELECT*FROMsysobjects
WHEREname='
Sum'
ANDtype='
FN'
)--如果存在这样的函数则删除之
DROPFUNCTIONSum
CREATEFUNCTIONSum(@nint)--输入参数
RETURNSint
AS
BEGIN
DECLARE@sint,@iint
SET@s=0
SET@i=1
WHILE@i<
=@n
BEGIN
SET@s=@s+@i
SET@i=@i+1
END
RETURN(@s)
END
PRINT'
1+2+...+60='
+CAST(dbo.Sum(60)ASchar(10))
(2)对应的参考程序如下:
IFEXISTS(SELECT*FROMsysobjects--如果存在这样的函数则删除之
WHEREname='
nbook'
AND(type='
IF'
ORtype='
TF'
))
DROPFUNCTIONnbook
CREATEFUNCTIONnbook(@dnamechar(16))--建立函数nbook
RETURNSTABLE --返回表,没有指定表结构,这是内联表值函数的特征
RETURN
(
SELECTs.学号,s.姓名,s.班号,b.图书名,bor.借书日期
FROMstudents,departsc,borrowbor,bookb
WHEREs.班号=sc.班号ANDs.学号=bor.学号ANDb.图书编号=bor.图书编号ANDsc.系名=@dname
)
SELECT*
FROMnbook('
计算机系'
ORDERBY学号
(3)对应的参考程序如下:
pbook'
DROPFUNCTIONpbook
CREATEFUNCTIONpbook() --建立函数pbook
RETURNS@stTABLE
(
系名char(16),
平均价格decimal(4,1)
)
BEGIN
INSERT@st --向@st中插入满足条件的记录
SELECTsc.系名AS'
系名'
AVG(b.定价)AS'
平均价格'
FROMdepartsc,students,bookb,borrowbor
WHEREs.班号=sc.班号ANDs.学号=bor.学号ANDb.图书编号=bor.图书编号
GROUPBYsc.系名
RETURN
END
SELECT*FROMpbook()
(4)对应的参考程序如下:
--若存在存储过程proc1,则删除之
IFEXISTS(SELECT*FROMsysobjectsWHEREname='
proc1'
ANDtype='
P'
DROPPROCEDUREproc1
--创建存储过程proc1
CREATEPROCEDUREproc1
SELECT图书名AS'
书名'
COUNT(*)AS'
数目'
FROMbook
GROUPBY图书名
EXECproc1
(5)对应的参考程序如下:
--若存在存储过程proc2,则删除之
proc2'
DROPPROCEDUREproc2
--创建存储过程proc2
CREATEPROCEDUREproc2(@bnchar(16))
DECLARE@ptchar(16)
SET@pt='
%'
+RTRIM(@bn)+'
SELECTs.学号,s.姓名,s.班号,b.图书名
FROMstudents,bookb,borrowbor
WHEREs.学号=bor.学号ANDb.图书编号=bor.图书编号
ANDb.图书名LIKE@pt
ORDERBYs.班号
EXECproc2'
数'
上机实验题8
第15章。
通过本实验,掌握触发器的设计和使用方法。
(1)在borrow上建立一个触发器,完成如下功能:
如果读者借阅的书名是“网络工程”,就将该借书记录保存在borrow1表中(borrow1表结构同borrow相同)。
(2)在borrow上建立一个触发器,完成如下功能:
当删除borrow表中任何记录时,将该记录保存保存在borrow1表中(borrow1表结构同borrow相同)。
(3)删除前面创建的触发器。
--若不存在borrow1表,则通过复制创建表borrow1
IFNOTEXISTS(SELECTnameFROMsysobjects
WHEREname='
borrow1'
U'
SELECT*INTOborrow1FROMborrow
DELETEborrow1
CREATETRIGGERtrig1ONborrow
FORINSERT,UPDATE
IF@@ROWCOUNT>
INSERTborrow1SELECTi.*
FROMinsertedi,bookb
WHEREi.图书编号=b.图书编号ANDb.图书名='
网络工程'
INSERTINTOborrowVALUES('
11'
'
20090'
2014-4-15'
SELECT*FROMborrow1
说明:
在本实验完成后,请将borrow表中新插入的记录删除,仍保持数据不变。
CREATETRIGGERtrig2ONborrow
FORDELETE
INSERTborrow1SELECT*FROMdeleted
DROPTRIGGERtrig1
DROPTRIGGERtrig2
上机实验题9
第16章。
通过本实验,掌握使用T-SQL语句进行SQLServer安全管理的方法。
(1)创建一个登录账号liblog,其密码为“123456”。
(2)为liblog登录账号在Library数据库中创建一个数据库用户账号liblog。
(3)将Library数据库中建表的权限授予libuser数据库用户账号,然后收回该权限。
(4)将Library数据库中表student上的INSERT、UPDATE和DELETE权限授予libuser数据库用户账号,然后收回该权限。
(5)删除前面创建的登录账号liblog和数据库用户账号libuser。
CREATELOGINliblogWITHPASSWORD='
123456'
CREATEUSERlibuserFORLOGINliblog
GRANTCREATETABLETOlibuser
REVOKECREATETABLEFROMlibuser
GRANTINSERT,UPDATE,DELETEONstudentTOlibuser
REVOKEINSERT,UPDATE,DELETEONstudentFROMlibuser
DROPLOGINliblog
DROPUSERlibuser
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 上机 实验