2、 图书管理系统的关系模式: 读者(编号,姓名,年龄,类型)
图书(图书号,书名,价格,出版社,图书类型) 借阅(编号,图书号,借书时间,还书时间,)
各关系模式之间的相互关系: 读者(编号,姓名,年龄,类型) 主键:编号
图书(图书号,书名,价格,出版社,图书类型) 主键:图书号
借阅(编号,图书号,借书时间,还书时间,) 主键:(编号,图书号) 外键:编号,图书号
3、基本表定义的sql语句(包含约束): create table type ( );
create table reader (
rdno char(10) not null primary key, rdname char(4), tpno char(2) not null, tpno char(2) primary key, tpname char(10), tpnum int
age int check( age<60 and age>18), );
create table book ( );
DROP TABLE book DROP TABLE jieyue create table booktype ( );
create table jieyue ( );
4、基本表查询的SELECT语句: --借书 insert
into jieyue(rdno,bkno,BorTime,Return)
rdno char(10), bkno char(10), BorTime datetime, RetTime datetime, Return bit,
primary key (rdno,bkno),
foreign key (rdno) references reader(rdno), foreign key (bkno) references book (bkno) bono char(3) primary key, boname char(10)
bkno char(10) not null primary key, bkname char(10), price int, Press char(20), bono char(5)
values ('1101','001','2015-6-14','0'); insert
into jieyue(rdno,bkno,BorTime,Return) values ('1101','003','2015-6-15','0'); insert
into jieyue(rdno,bkno,BorTime,Return) values ('1102','001','2015-6-13','0'); --还书 update jieyue
set RetTime='2015-6-15',Return='1' where rdno='1101' and bkno=001;
--5 查看某读者的当前借阅信息以及借阅历史记录。 select * from jieyue where rdno='1101';
--6 能查看某读者还能借阅的图书数。
select rdname name, type.tpnum-count(jieyue.rdno) num from reader,jieyue,type
where reader.rdno=jieyue.rdno and reader.tpno=type.tpno and reader.rdno='1101' and Return='0'
group by rdname,type.tpnum
--7 读者有多种类型,不同类型的读者能借阅的图书数量不同。 --8 统计图书借阅次数。 select * from jieyue where bkno='001'
group by rdno,bkno,BorTime,RetTime,Return --9 查看指定类型的图书情况。 select book.* from booktype,book
where booktype.bono=book.bono and boname='军事' --10 查询当前未借阅图书的读者信息。 select reader.* from reader
where reader.rdno not in ( )
--11 查看从没被借阅过的图书 select book.* from book where bkno not in ( )
--12 查看书名包含相关信息的图书的信息。 select book.* from book
where bkname like'战争%'
--13 查看借阅相关图书的读者的姓名。(两种方法) --(1)
select rdname,book.bkname from reader,jieyue,book
where reader.rdno=jieyue.rdno and book.bkno=jieyue.bkno and jieyue.bkno='001' --(2) select rdname from reader where rdno in(
select bkno from jieyue select rdno from jieyue