2022年数据库图书管理系 .pdf
create database 图书管理系统on ( name = 图书管理系统, 图书管理系统 .mdf, size = 10 , maxsize =20 , filegrowth=5) log on ( name = lib_log, filename= c:lib_log.ldf, size = 5, maxsize = 25 , filegrowth =5 ) Create table 管理员信息表( 工作号varchar(10) primary key not null, 姓名varchar(10) , 性别varchar(10), 电话varchar(10) ); (2)书籍信息表的建立drop table 图书信息表create table 图书信息表( 图书编号varchar(20) primary key not null, 书名varchar(50) not null, 主编varchar(20) not null, 出版社varchar(20) not null, 作者varchar(20) not null); (3)读者信息表的建立create table 读者信息表( 读者学号varchar(10) primary key not null, 读者姓名varchar(10) not null, 联系电话varchar(10) not null, 读者性别varchar(5) not null, 所在院系varchar(10) ) (4)借阅关系表建立drop table 借阅表create table 借阅表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - ( 工作号varchar(10) primary key not null, 读者学号varchar(10) not null, 图书编号varchar(10) not null, 借书日期datetime not null, 还书期限datetime not null, 是否续借varchar(10) not null ) 2建立视图创建查询视图:create view 查询 _view( 读者学号 ,读者姓名 ,读者性别 ,所在院系 ,书名 ,借书日期 ) as select 借阅表 .读者学号 ,读者姓名 ,读者性别 ,所在院系 ,书名 ,借书日期from 读者信息表 ,图书信息表 ,借阅表where 读者信息表 .读者学号 =借阅表 .读者学号and 借阅表 .图书编号 =图书信息表 .图书编号3建立索引(1)为读者信息表创建索引。create unique index 读者信息 _pk on 读者信息表(读者学号 ); (2)为图书信息表创建索引create unique index 图书信息 _pk on 图书信息表(图书编号 ); (3)为管理员信息表创建索引create unique index 管理员信息 _pk on 管理员信息表(工作号 ); 4建立触发器(1)当修改读者信息表中的读者学号时,触发借阅表,修改相应的记录drop trigger r_ 修改create trigger r_修改on 读者信息表for update as declare old_读者学号varchar(10) declare new_读者学号varchar(10) set old_读者学号 =(select 读者学号from deleted) set new_读者学号 =(select 读者学号from inserted) update 借阅表set 读者学号 =new_读者学号where 读者学号 =old_读者学号(2)当修改图书信息表中的图书编号是,触发借阅表,修改相应的信息create trigger b_修改on 图书信息表for update as declare old_图书编号varchar(10) declare new_图书编号varchar(10) set old_图书编号 =(select 图书编号from deleted) set new_图书编号 =(select 图书编号from inserted) update 借阅表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - set 图书编号 =new_图书编号where 图书编号 =old_图书编号(3)当删除读者信息表中的某一读者信息时,触发借阅表,删除相应的记录create trigger r_删除on 读者信息表for delete as begin delete from 借阅表where 读者学号 =(select 读者学号from deleted) end (4)当删除图书信息表中的相关信息时,触发借阅表,删除相关信息create trigger b_删除on 图书信息表for delete as begin delete from 借阅表where 图书编号 =(select 图书编号from deleted) end 5.建立存储过程(1)建立录入读者信息存储过程create procedure proc_录入读者信息(读者学号varchar(10) ,读者姓名varchar(10),联系电话varchar(10),读者性别varchar(5),所在院系varchar(10) ) as insert into 读者信息表 (读者学号 ,读者姓名 ,联系电话 ,读者性别 ,所在院系 )values(读者学号,读者姓名 ,联系电话 ,读者性别 ,所在院系) (2)建立录入图书信息存储过程create procedure proc_录入图书信息(图书编号varchar(10), 书名varchar(10), 主编varchar(10),出版社varchar(10),作者varchar(10) as insert into 图书信息表(图书编号 ,书名 ,主编 ,出版社 ,作者 )values(图书编号 ,书名 ,主编,出版社 ,作者 ) (3)建立借阅信息存储过程create procedure proc_借阅信息 (工作号varchar(10), 读者学号varchar(10), 图书编号varchar(10),借书日期datetime,还书期限datetime,是否续借varchar(10) as insert into 借阅表 (工作号 ,读者学号 ,图书编号 ,借书日期 ,还书期限 ,是否续借 )values(工作号,读者学号 ,图书编号 ,借书日期 ,还书期限 ,是否续借 ) (4)建立管理员信息存储过程create procedure proc_ 管 理 员 信 息 ( 工 作 号varchar(10), 姓 名varchar(10), 性 别varchar(5),电话varchar(10) as insert into 管理员信息表 (工作号 ,姓名 ,性别 ,电话 )values(工作号 ,姓名 ,性别 ,电话 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - (5)建立一个查询学生所借阅的图书数目的存储过程,管理管理员只要输入相应学生的学号,系统自动显示其所借阅的图书数目create procedure proc_借书本数读者学号varchar(10) as select 读者学号 ,count(*) as 借书本数from 借阅表where 读者学号 =读者学号group by 读者学号数据测试阶段(1)插入数据1读者信息表插入数据:insert into 读者信息表values( 001,阿星 ,123456,男, 软件 ) insert into 读者信息表values( 002,欢哥 ,133456,男, 经管 ) insert into 读者信息表values( 003,大张 ,163456,男, 地科 ) insert into 读者信息表values( 004,本本 ,124456,男, 数据 ) insert into 读者信息表values( 005,杰杰 ,123956,男, 软件 ) insert into 读者信息表values( 006,林林 ,123446,男, 软件 ) 2.管理员信息表插入数据:insert into 管理员信息表values( 1111,张三 ,男,124536) insert into 管理员信息表values( 1112,李四 ,女,987564) insert into 管理员信息表values( 1113,王武 ,男,354728) insert into 管理员信息表values( 1114,周六 ,男,547896) insert into 管理员信息表values( 1115,郑起 ,男,632547) insert into 管理员信息表values( 1116,王玖 ,男,489756) 3.图书信息表插入数据:insert into 图书信息表values( 100,数学 ,周中性 ,人教 ,科技 ) insert into 图书信息表values( 101,近代史 ,张张 ,人教 ,历史 ) insert into 图书信息表values( 102,道德修养 ,张姐 ,人教 ,历史 ) insert into 图书信息表values( 103,英语 ,中国向 ,人教 ,文学 ) insert into 图书信息表values( 104,物理 ,周焕媛 ,人教 ,自科 ) insert into 图书信息表values( 105,数据库 ,熊换血 ,人教 ,软件 ) insert into 图书信息表values( 110,C 程序设计 ,夏雨 ,新东方 ,计算机 ) 4借阅表插入数据:Insert into 借阅表values(1111,001,100,1988-01-01,1988-01-15, 否) insert into 借阅表values(1112,002,101,1988-01-02,1988-01-16, 否) insert into 借阅表values(1113,003,102,1988-01-03,1988-01-17, 否) insert into 借阅表values(1114,004,103,1988-01-04,1988-01-18, 否) insert into 借阅表values(1115,005,104,1988-01-05,1988-01-19, 否) insert into 借阅表values(1116,006,105,1988-01-06,1988-01-20, 否) (2)具体操作语句:1查看各表中的信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 1.查看读者信息表中的内容:select * from 读者信息表where (读者学号 =006) select* from 读者信息表2.查看图书信息表中的内容:select* from 图书信息表3.查看管理员信息表中的内容:select* from 管理员信息表4.查看借阅表中的内容:select* from 借阅表2.查看视图信息:Select* from 查询 _view 3.存储过程的操作:1利用存储过程proc_录入用户信息录入相关的读者信息Exec proc_ 录入读者信息读者学号 =1111, 读者姓名 =管吓涛 , 联系电话 =123456789, 读者性别 =男, 所在院系 =软件 运行之后就为读者表插入了一条名为张章的读者信息2利用存储过程proc_录入图书信息录入新增的图书信息:Exec proc_录入图书信息图书编号 =1234, 书名 =C+ 程序设计 , 作者 =刘 hu, 出版社=邮电 , 类别 =软件 运行之后就为图书信息表插入了一条图书编号为1234的相关信息3利用存储过程proc_管理员信息录入管理员的相关信息:Exec proc_管理员信息工作号 =321, 姓名 =成为吵 ,性别 =男, 电话 =542136 运行之后就为管理员信息表插入了一条工作号为321 的管理员相关信息4利用存储过程proc_借阅信息操作相关的借书信息:Exec proc_借阅信息工作号 =1234, 读者学号 =321, 图书编号 =5421, 借书日期=2010-12-2, 还书期限 =2010-12-17, 是否续借 =否 运行之后自动为借阅表插入了一条由管理员号为1234的管理员受理的相关借书信息5利用存储过程proc_借书本数查询学生所借的图书数目Exec proc_借书本数读者学号 =001 程序执行之后查询出了学号为001 的同学所借阅的图书数目。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -