您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > 第8章--数据库上机题
第8章上机题一、附加数据库并对表进行管理1.附加“素材C”数据库2.对数据库中的四张表建立主键约束3.在“借阅信息”表中建立检查约束,使得还书日期大于借书日期。4.在“读者管理”表中建立唯一约束5.对这四张表建立关系图。关系图名为“SQL考试”。二、创建存储过程1.创建一个存储过程proc1,要求它带有三个参数,用于接受外界提供的初值,并输出最大值。试运行一次存储过程。2.创建一个无参存储过程proc2,功能是:返回读者“陈里媚”所借图书的名称、出版社、作者和在馆数量。3.创建一个带参数的存储过程proc3,要求:当用户输入一个读者姓名时,若该读者存在,就显示该读者的姓名、联系电话和家庭住址;若该读者不存在,则返回“查无此人”的提示信息。试运行一次存储过程。4.创建一个带参数的存储过程proc4,要求:当用户输入书籍的ID时,就对该书籍的在馆数量进行判断。当在馆数量大于10时,显示“库存满”;当在馆数量在5到10之间则显示“充裕”;当在馆数量小于5时,显示“库存不足,请尽快补货”。执行一次存储过程。三、创建触发器1.在“借阅信息”表创建一个after触发器,命名为:trig1。要求:对借书数量一列只能输入“1”,若输入其它,则提示“同一读者对同一本书只能借1本”,并不允许插入。2.在“书籍管理”表中创建一个after触发器,命名为:trig2,要求每当向“书籍管理”表中删除一条书籍记录时,就自动删除“借阅信息”表中该书籍的借阅记录。3.在“读者管理”表中创建After触发器,命名为:trig3,要求每当删除“读者管理”表中一条记录时,就检查该读者在“借阅信息”表是否有借阅书籍,若有,则回滚“读者管理”表被删记录,并显示提示信息。4.在借阅信息”表创建一个after触发器,命名为:trig4。要求每当向该表插入记录时,还书日期要大于借阅日期第二题:创建存储过程1.CREATEPROCEDUREproc1@aint,@bint,@cint,@maxintoutputASif@a@bset@max=@aelseset@max=@bif@c@maxset@max=@cGOdeclare@xintexecproc112,14,18,@xoutputprint@x2.CREATEPROCEDUREproc2ASselect书名,出版社,作者姓名,在馆数量from书籍管理,借阅信息,读者管理where书籍管理.书籍ID=借阅信息.书籍IDand借阅信息.读者ID=读者管理.读者IDand读者姓名='陈里媚'goexecproc23.CREATEPROCEDUREproc3@xchar(10)ASifexists(select*from读者管理where读者姓名=@x)select读者姓名,联系电话,家庭住址from读者管理where读者姓名=@xelseprint'查无此人'goexecproc3'林毅'4.CREATEPROCEDUREproc4@idintasdeclare@xintset@x=(select在馆数量from书籍管理where书籍ID=@id)printcasewhen@x10then'库存满'when@x=5then'充裕'else'库存不足,请尽快补货'endgoexecproc41001第三题:创建触发器1.CREATETRIGGERtrig1ON借阅信息AfterINSERTASifexists(select*frominsertedwhere借书数量1)beginprint'同一读者对同一本书只能借1本'rollbackendgo2.CREATETRIGGERtrig2ON书籍管理AfterdeleteASdeclare@idintselect@id=书籍IDfromdeleteddeletefrom借阅信息where书籍ID=@idgo3.CREATETRIGGERtrig3ON读者管理AfterdeleteASdeclare@idintselect@id=读者IDfromdeletedifexists(select*from借阅信息where读者ID=@id)beginprint'该读者有借阅书籍,不能删除'rollbackendgo4.CREATETRIGGERtrig4ON借阅信息AfterINSERTASifexists(select*frominsertedwhere还书日期=借阅日期)beginprint'还书日期要大于借阅日期'rollbackendgo
本文标题:第8章--数据库上机题
链接地址:https://www.777doc.com/doc-4204610 .html