create database 图书管理系统 on (
name = 图书管理系统,
filename ='c:\图书管理系统.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 借阅表
(
工作号 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 借阅表
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(@工作号,@姓名,@性别,@电话)
(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.查看各表中的信息
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’, @读者学号=3'21’, @图书编号=’5421’, @借书日期=’2010-12—2', @还书期限=’2010—12—17’, @是否续借='否'
运行之后自动为借阅表插入了一条由管理员号为’1234’的管理员受理的相关借书信息
5.利用存储过程proc_借书本数查询学生所借的图书数目 Exec proc_借书本数 @读者学号=’001'
程序执行之后查询出了学号为001的同学所借阅的图书数目。
因篇幅问题不能全部显示,请点此查看更多更全内容