《SQL图书管理系统(共16页).doc》由会员分享,可在线阅读,更多相关《SQL图书管理系统(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1、系统的功能模块图开始登录身份认证读者管理员借还图书预约图书图书信息查询系统维护预约信息管理借阅信息管理读者信息管理图书信息管理读者信息管理2、系统E-R图3、数据库逻辑结构设计关系模式表(红色表示主码,蓝色表示外码)读者类型表(读者类型,可借阅天数,可借阅数量, 续借次数)读者(姓名,借阅证号,系别,读者类型,密码)管理员(姓名,工号,密码)书籍类型(书籍类型编号,书籍类型)某类书籍(ISBN,书名,作者,出版社编号,价格,出版时间,库存量,在馆数量,书籍类型编号)书籍(图书编号,ISBN,书名,书架编号,书籍状态,损坏程度)(ISBN相当于书籍类型编号) 阅览室
2、(阅览室编号,阅览室名称,阅览室位置)书架(书架编号,阅览室编号)预约(借阅证号,ISBN,预约时间,预约到期时间)借阅表(读者帐号,图书编号,借出日期,实际归还日期,到期时间,超出还书天数,续借次数,罚款金额,实缴金额)出版社(出版社编号,名称,联系人,地址,联系电话)管理员表管理员表(Administrator)名称别名数据类型取值范围默认值说明是否为空工号ANoChar(15)主键不为空姓名ANamevarChar(8)密码APwdChar(6)读者身份表读者身份(ReaderType)名称别名数据类型取值范围默认值说明是否为空读者类型ReaderTypeChar(4)“学生”,”老师”
3、主码借书上限MaxBorNumTinyint0-106不为空最大续借次数MaxBorcountTinyInt0-22最长借书时间MaxBorTimeTinyint2单位是月不为空读者信息表读者信息(Reader)名称别名数据类型取值范围默认值说明是否为空借阅证号ReaderAccountChar(8)主码读者类型ReaderTypeChar(4)“学生”,”老师”外码,外键参考读者身份表Readertype不为空读者姓名ReaderNamevarChar(8)读者密码ReaderPwdChar(6)读者系别ReaderSdeptvarChar(20)书籍类型表书籍类型(BookType)名称别
4、名数据类型取值范围默认值说明是否为空书籍类型编号BookTypeIdvarChar(10)主键不为空书籍类型BookTypetext出版社表出版社(Press)名称别名数据类型取值范围默认值说明是否为空出版社编号PressNoChar(10)名称PressNameText联系人contactText联系电话TeleChar(12)地址addrtext某类书籍表(BookSeries)某类书籍表(BookSeries)列名数据类型空/非空约束条件表示含义ISBNchar(20)非空主键ISBNBookNametext可以为空无书名Authorvarchar(20)可以为空无作者PressNo v
5、archar(20)可以为空外键,参考出版社表的PressNo字段出版社编号Pricesmallmoney可以为空无价格PublishTimedatetime可以为空无出版日期BookNumint可以为空无库存量BookInint可以为空无在馆数量SeriesIdvarchar(10)可以为空外键,参考书籍类型表SeriesId字段书籍类型编号阅览室表阅览室表(ReadingRoom)名称别名数据类型取值范围默认值说明是否为空阅览室编号RoomNumChar(20)主键不为空阅览室名称RoomNameText阅览室位置RoomLocaltext书架表书架表(Shelf)名称别名数据类型取值范围
6、默认值说明是否为空书架编号ShelfnumChar(20)主键不为空阅览室编号roomnumChar(20)外键,参考阅览室表的RoomNum字段图书信息表图书信息(Book)名称别名数据类型取值范围默认值说明是否为空图书编号BookIdvarChar(20)主键不为空ISBNISBNChar(20)外键,参考某类书籍表书名 BookNametext书架编号ShelfnumvarChar(20)外键,参考书架表损坏程度BookStatevarchar(20)书籍状态BookDamagesmallint读者借阅表读者借阅表(BorrowReturn)名称别名数据类型取值范围默认值说明是否为空借阅
7、证号ReaderAcountChar(15)主键,外码,参考读者表不为空ISBNISBNChar(20)主码,外码,参考某类书籍表不为空续借次数BorCountChar(1)0-2借出日期BorrowTimeDateTime不为空实际归还日期ReturnTimeDateTime不为空到期时间Deadlinedatetime超出还书天数ExceedingDays罚款金额Fine实缴金额PaidAmount预约表预约表(Appointment)名称别名数据类型取值范围默认值说明是否为空借阅证号ReaderAccountChar(15)主键、外键参考读者表ReaderAccount字段ISBNISB
8、NChar(20)主键、外键参考图书表ISBN字段预约时间AppTimeDatetime截止时间ExpirationTimedatetime4、SQL语句建库与建表创建图书管理系统数据库CREATE DATABASE LibarySystemON(NAME=library_Data, FILENAME=d:sqldatalibrary.mdf, SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10%)LOG ON(NAME=library_Log, FILENAME=d:sqldatalibrary_Log.ldf, SIZE=2MB, MAXSIZE=5MB, FILE
9、GROWTH=1MB)GO创建读者身份表use LibarySystemGOcreate table ReaderType(ReaderType char(4)check (ReaderType in (教师,学生) primary key,MaxBorNum tinyint ,MaxBorTime tinyint ,MaxBorCount tinyint )GO创建读者表use LibarySystemGOcreate table Reader(ReaderAccount char(8) primary key,ReaderName varchar(8) ,ReaderPwd char(6)
10、 ,ReaderSdept varchar(20) ,ReaderType char(4)foreign key references ReaderType(ReaderType)GO创建管理员表USE LibarySystemGOCREATE TABLE Administrator( ANo CHAR(8) PRIMARY KEY, AName varCHAR(8), APwd CHAR(6), );GO创建书籍类型表USE LibarySystemGOCREATE TABLE BookType( BookTypeId varCHAR(10) PRIMARY KEY, BookType TE
11、XT);GO创建阅览室表USE LibarySystemGOCREATE Table ReadingRoom( RoomNum CHAR(20), RoomName TEXT, RoomLocal TEXT, PRIMARY KEY (RoomNum);GO创建书架表USE LibrarySystemGOCREATE TABLE Shelf(ShelfNum CHAR(20), RoomNum CHAR(20), PRIMARY KEY (ShelfNum), FOREIGN KEY (RoomNum) REFERENCES ReadingRoom(RoomNum);GO创建出版社表use L
12、ibarySystemGOcreate table Press(PressNoChar(10),PressNameText,ContactText,TeleChar(12),Addrtext,primary key(PressNo),)GO创建某类书籍表USE LibarySystemGOCREATE Table BookSeries(ISBN CHAR(20), BookName TEXT, Author VARCHAR(20), PressNo VARCHAR(20), PageNum SMALLINT, Price SMALLint, PublishTime DATETIME, Book
13、Num INT, BookIn INT, SeriesId VARCHAR(10), PRIMARY KEY (ISBN), FOREIGN KEY (SeriesId) REFERENCES BookType(BookTypeId);GO创建图书表USE LibarySystemGOCREATE Table Book(BookId VARCHAR(20), ISBN CHAR(20), BookName TEXT, ShelfNum CHAR(20), BookState VARCHAR(20), BookDamage SMALLINT, PRIMARY KEY (BookId), FORE
14、IGN KEY (ISBN) REFERENCES BookSeries(ISBN), FOREIGN KEY (ShelfNum) REFERENCES Shelf(ShelfNum);GO创建预约表USE LibarySystemGOCREATE Table Appointment(ReaderAccount CHAR(8),ISBN CHAR(20), AppTime DATETIME,ExpirationTime DATETIME, PRIMARY KEY (ReaderAccount,ISBN), FOREIGN KEY (ReaderAccount) REFERENCES Read
15、er(ReaderAccount), FOREIGN KEY (ISBN) REFERENCES BookSeries(ISBN);GO创建借阅表USE LibarySystemCREATE Table BorrowReturn(ReaderAccount CHAR(8),ISBN CHAR(20),BorrowTime DATETIME,Deadline DATETIME,ReturnTime DATETIME,ExceedingDays INT,BorCount INT,Fine SMALLMONEY,PaidAmount SMALLINT, PRIMARY KEY (ReaderAcco
16、unt,ISBN,BorrowTime), FOREIGN KEY (ISBN) REFERENCES BookSeries(ISBN), FOREIGN KEY (ReaderAccount) REFERENCES Reader(ReaderAccount); GO5、对数据库记录进行操作insert(举一些例子,其他的则用交互式SQL语句添加记录);往ReaderType表中添加记录use LibarySystem;goinsert into ReaderType(ReaderType,MaxBorNum,MaxBorTime,MaxBorCount)values(学生,8,1,1);go
17、insert intoReaderTypevalues(教师,10,2,2);go;往Reader表中添加记录use LibarySystem;goinsert into Reader(ReaderAccount,ReaderName,ReaderPwd,ReaderSdept,ReaderType)values(,杨扬,计算机科学与技术,学生);goinsert intoReadervalues(,刘一,计算机科学与技术,教师);goinsert intoReadervalues(,刘二,生物科学技术,教师);goinsert intoReadervalues(,刘三,教育科学学院,教师);
18、goupdate;将帐号为的读者系别更新为数学系use LibarySystem;goupdate Readerset ReaderSdept=数学where ReaderAccount=;godelete;删除帐号为的读者use LibarySystem;godelete fromReaderwhere ReaderAccount=;goselect(单表查询);查找帐号为的读者信息use LibarySystem;goselect*from Readerwhere ReaderAccount=;go;查询所有学生的信息use LibarySystem;goselect*from Reade
19、rwhere ReaderType=学生;go;查询书架1上的所有图书use LibarySystem;goselect*from Bookwhere ShelfNum=1;go(连接查询);查找读者预约信息select Reader.ReaderAccount,ReaderName,ReaderSdept,ReaderType,ISBN,AppTime,ExpirationTimefrom Reader,Appointmentwhere Reader.ReaderAccount=Appointment.ReaderAccount;;查询读者的借阅信息select Reader.ReaderA
20、ccount,ReaderName,ReaderSdept,ReaderType,ISBN,BorrowTime,Deadlinefrom Reader,BorrowReturnwhere Reader.ReaderAccount=BorrowReturn.ReaderAccount;(嵌套查询);查找1号阅览室的所有书架上的书籍select BookId,ISBN,BookNamefrom Bookwhere ShelfNum IN(select ShelfNumfrom Shelfwhere RoomNum=1);;查询书名为数据库的书籍详细信息select *from BookSerie
21、swhere ISBN IN(select ISBNFROM Bookwhere BookName like %数据库% );;根据输入的学号,列出该同学当前所借图书的详细信息select *from BookSerieswhere ISBN in(select ISBNfrom BorrowReturnwhere ReaderAccount=);(集合查询) ;查询计算机专业的教师信息select *from Readerwhere ReaderType=教师 intersectselect *from Readerwhere ReaderSdept=计算机科学与技术;;查阅读者身份为教师或系别为计算机系的读者select *from Readerwhere ReaderType=教师 unionselect *from Readerwhere ReaderSdept=计算机科学与技术;;查询在馆数量大于2或价格低于30的书籍信息select *from BookSerieswhere BookIn=2unionselect *from BookSerieswhere price=30;欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求专心-专注-专业