SQL图书管理系统

上传人:xian****hua 文档编号:147524472 上传时间:2022-09-02 格式:DOC 页数:15 大小:232.50KB
返回 下载 相关 举报
SQL图书管理系统_第1页
第1页 / 共15页
SQL图书管理系统_第2页
第2页 / 共15页
SQL图书管理系统_第3页
第3页 / 共15页
点击查看更多>>
资源描述
1、系统的功能模块图开始登录身份认证读者管理员借还图书预约图书图书信息查询系统维护预约信息管理借阅信息管理读者信息管理图书信息管理读者信息管理2、系统E-R图3、数据库逻辑结构设计关系模式表(红色表示主码,蓝色表示外码)读者类型表(读者类型,可借阅天数,可借阅数量, 续借次数)读者(姓名,借阅证号,系别,读者类型,密码)管理员(姓名,工号,密码)书籍类型(书籍类型编号,书籍类型)某类书籍(ISBN,书名,作者,出版社编号,价格,出版时间,库存量,在馆数量,书籍类型编号)书籍(图书编号,ISBN,书名,书架编号,书籍状态,损坏程度)(ISBN相当于书籍类型编号) 阅览室(阅览室编号,阅览室名称,阅览室位置)书架(书架编号,阅览室编号)预约(借阅证号,ISBN,预约时间,预约到期时间)借阅表(读者帐号,图书编号,借出日期,实际归还日期,到期时间,超出还书天数,续借次数,罚款金额,实缴金额)出版社(出版社编号,名称,联系人,地址,联系电话)管理员表管理员表(Administrator)名称别名数据类型取值范围默认值说明是否为空工号ANoChar(15)主键不为空姓名ANamevarChar(8)密码APwdChar(6)000000读者身份表读者身份(ReaderType)名称别名数据类型取值范围默认值说明是否为空读者类型ReaderTypeChar(4)“学生”,”老师”主码借书上限MaxBorNumTinyint0-106不为空最大续借次数MaxBorcountTinyInt0-22最长借书时间MaxBorTimeTinyint2单位是月不为空读者信息表读者信息(Reader)名称别名数据类型取值范围默认值说明是否为空借阅证号ReaderAccountChar(8)主码读者类型ReaderTypeChar(4)“学生”,”老师”外码,外键参考读者身份表Readertype不为空读者姓名ReaderNamevarChar(8)读者密码ReaderPwdChar(6)000000读者系别ReaderSdeptvarChar(20)书籍类型表书籍类型(BookType)名称别名数据类型取值范围默认值说明是否为空书籍类型编号BookTypeIdvarChar(10)主键不为空书籍类型BookTypetext出版社表出版社(Press)名称别名数据类型取值范围默认值说明是否为空出版社编号PressNoChar(10)名称PressNameText联系人contactText联系电话TeleChar(12)地址addrtext某类书籍表(BookSeries)某类书籍表(BookSeries)列名数据类型空/非空约束条件表示含义ISBNchar(20)非空主键ISBNBookNametext可以为空无书名Authorvarchar(20)可以为空无作者PressNo varchar(20)可以为空外键,参考出版社表的PressNo字段出版社编号Pricesmallmoney可以为空无价格PublishTimedatetime可以为空无出版日期BookNumint可以为空无库存量BookInint可以为空无在馆数量SeriesIdvarchar(10)可以为空外键,参考书籍类型表SeriesId字段书籍类型编号阅览室表阅览室表(ReadingRoom)名称别名数据类型取值范围默认值说明是否为空阅览室编号RoomNumChar(20)主键不为空阅览室名称RoomNameText阅览室位置RoomLocaltext书架表书架表(Shelf)名称别名数据类型取值范围默认值说明是否为空书架编号ShelfnumChar(20)主键不为空阅览室编号roomnumChar(20)外键,参考阅览室表的RoomNum字段图书信息表图书信息(Book)名称别名数据类型取值范围默认值说明是否为空图书编号BookIdvarChar(20)主键不为空ISBNISBNChar(20)外键,参考某类书籍表书名 BookNametext书架编号ShelfnumvarChar(20)外键,参考书架表损坏程度BookStatevarchar(20)书籍状态BookDamagesmallint读者借阅表读者借阅表(BorrowReturn)名称别名数据类型取值范围默认值说明是否为空借阅证号ReaderAcountChar(15)主键,外码,参考读者表不为空ISBNISBNChar(20)主码,外码,参考某类书籍表不为空续借次数BorCountChar(1)0-2借出日期BorrowTimeDateTime不为空实际归还日期ReturnTimeDateTime不为空到期时间Deadlinedatetime超出还书天数ExceedingDays罚款金额Fine实缴金额PaidAmount预约表预约表(Appointment)名称别名数据类型取值范围默认值说明是否为空借阅证号ReaderAccountChar(15)主键、外键参考读者表ReaderAccount字段ISBNISBNChar(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, FILEGROWTH=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) ,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 TEXT);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 LibarySystemGOcreate 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, BookNum 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), FOREIGN 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 Reader(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 (ReaderAccount,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);goinsert intoReaderTypevalues(教师,10,2,2);go;往Reader表中添加记录use LibarySystem;goinsert into Reader(ReaderAccount,ReaderName,ReaderPwd,ReaderSdept,ReaderType)values(19120123,杨扬,888888,计算机科学与技术,学生);goinsert intoReadervalues(20120101,刘一,888888,计算机科学与技术,教师);goinsert intoReadervalues(20120102,刘二,888888,生物科学技术,教师);goinsert intoReadervalues(20120103,刘三,888888,教育科学学院,教师);goupdate;将帐号为20120101的读者系别更新为数学系use LibarySystem;goupdate Readerset ReaderSdept=数学where ReaderAccount=20120101;godelete;删除帐号为20120102的读者use LibarySystem;godelete fromReaderwhere ReaderAccount=20120102;goselect(单表查询);查找帐号为20120103的读者信息use LibarySystem;goselect*from Readerwhere ReaderAccount=20120103;go;查询所有学生的信息use LibarySystem;goselect*from Readerwhere 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.ReaderAccount,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 BookSerieswhere ISBN IN(select ISBNFROM Bookwhere BookName like %数据库% );;根据输入的学号,列出该同学当前所借图书的详细信息select *from BookSerieswhere ISBN in(select ISBNfrom BorrowReturnwhere ReaderAccount=19120123);(集合查询) ;查询计算机专业的教师信息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;
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!