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 页 -