收藏 分销(赏)

SQL图书管理系统.doc

上传人:二*** 文档编号:4608263 上传时间:2024-10-06 格式:DOC 页数:27 大小:232KB 下载积分:5 金币
下载 相关 举报
SQL图书管理系统.doc_第1页
第1页 / 共27页
本文档共27页,全文阅读请下载到手机保存,查看更方便
资源描述
. . 1、系统的功能模块图 开场 登录 身份认证 读者 管理员 借还图书 预约图书 图书信息查询 系统维护 预约信息管理 借阅信息管理 读者信息管理 图书信息管理 读者信息管理 2、系统E-R图 3、数据库逻辑构造设计 关系模式表〔红色表示主码,蓝色表示外码〕 读者类型表〔读者类型,可借阅天数,可借阅数量, 续借次数〕 读者〔XX,借阅证号,系别,读者类型,密码〕 管理员〔XX,工号,密码〕 书籍类型(书籍类型编号,书籍类型) 某类书籍(ISBN,书名,作者,编号,价格,出版时间,库存量,在馆数量,书籍类型编号) 书籍〔图书编号,ISBN,书名,书架编号,书籍状态,损坏程度〕〔ISBN相当于书籍类型编号〕 阅览室〔阅览室编号,阅览室名称,阅览室位置〕 书架〔书架编号,阅览室编号〕 预约〔借阅证号,ISBN,预约时间,预约到期时间〕 借阅表〔读者XX,图书编号,借出日期,实际归还日期,到期时间,超出还书天数,续借次数,罚款金额,实缴金额〕 〔编号,名称,联系人,地址,联系〕 管理员表 管理员表〔Administrator〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 工号 ANo Char(15) 主键 不为空 XX AName varChar(8) 密码 APwd Char(6) 000000 读者身份表 读者身份〔ReaderType〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 读者类型 ReaderType Char(4) “学生〞,〞教师〞 主码 借书上限 MaxBorNum Tinyint 0-10 6 不为空 最大续借次数 MaxBorcount TinyInt 0-2 2 最长借书时间 MaxBorTime Tinyint 2 单位是月 不为空 读者信息表 读者信息〔Reader〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 借阅证号 ReaderAccount Char(8) 主码 读者类型 ReaderType Char(4) “学生〞 ,〞教师〞 外码,外键参考读者身份表Readertype 不为空 读者XX ReaderName varChar(8) 读者密码 ReaderPwd Char(6) 000000 读者系别 ReaderSdept varChar(20) 书籍类型表 书籍类型〔BookType〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 书籍类型编号 BookTypeId varChar(10) 主键 不为空 书籍类型 BookType text 表 〔Press〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 编号 PressNo Char(10) 名称 PressName Text 联系人 contact Text 联系 Tele Char(12) 地址 addr text 某类书籍表〔BookSeries〕 某类书籍表〔BookSeries〕 列名 数据类型 空/非空 约束条件 表示含义 ISBN char(20) 非空 主键 ISBN BookName text 可以为空 无 书名 Author varchar(20) 可以为空 无 作者 PressNo varchar(20) 可以为空 外键,参考表的PressNo字段 编号 Price smallmoney 可以为空 无 价格 PublishTime datetime 可以为空 无 出版日期 BookNum int 可以为空 无 库存量 BookIn int 可以为空 无 在馆数量 SeriesId varchar(10) 可以为空 外键,参考书籍类型表SeriesId字段 书籍类型编号 阅览室表 阅览室表〔ReadingRoom〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 阅览室编号 RoomNum Char(20) 主键 不为空 阅览室名称 RoomName Text 阅览室位置 RoomLocal text 书架表 书架表〔Shelf〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 书架编号 Shelfnum Char(20) 主键 不为空 阅览室编号 roomnum Char(20) 外键,参考阅览室表的RoomNum字段 图书信息表 图书信息〔Book〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 图书编号 BookId varChar(20) 主键 不为空 ISBN ISBN Char(20) 外键,参考某类书籍表 书名 BookName text 书架编号 Shelfnum varChar(20) 外键,参考书架表 损坏程度 BookState varchar(20) 书籍状态 BookDamage smallint 读者借阅表 读者借阅表〔BorrowReturn〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 借阅证号 ReaderAcount Char(15) 主键,外码,参考读者表 不为空 ISBN ISBN Char(20) 主码,外码,参考某类书籍表 不为空 续借次数 BorCount Char(1) 0-2 借出日期 BorrowTime DateTime 不为空 实际归还日期 ReturnTime DateTime 不为空 到期时间 Deadline datetime 超出还书天数 ExceedingDays 罚款金额 Fine 实缴金额 PaidAmount 预约表 预约表〔Appointment〕 名称 别名 数据类型 取值围 默认值 说明 是否为空 借阅证号 ReaderAccount Char(15) 主键、外键参考读者表ReaderAccount字段 ISBN ISBN Char(20) 主键、外键参考图书表ISBN字段 预约时间 AppTime Datetime 截止时间 ExpirationTime datetime 4、SQL语句建库与建表 创立图书管理系统数据库 CREATEDATABASELibarySystem ON (NAME='library_Data', FILENAME='d:\sql\data\library.mdf', SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10%) LOGON (NAME='library_Log', FILENAME='d:\sql\data\library_Log.ldf', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB) GO 创立读者身份表 useLibarySystem GO createtableReaderType (ReaderTypechar(4) check (ReaderTypein('教师','学生'))primarykey, MaxBorNumtinyint, MaxBorTimetinyint, MaxBorCounttinyint ) GO 创立读者表 useLibarySystem GO createtableReader (ReaderAccountchar(8)primarykey, ReaderNamevarchar(8), ReaderPwdchar(6), ReaderSdeptvarchar(20), ReaderTypechar(4) foreignkeyreferencesReaderType(ReaderType) ) GO 创立管理员表 USELibarySystem GO CREATETABLEAdministrator( ANoCHAR(8)PRIMARYKEY, ANamevarCHAR(8), APwdCHAR(6), ); GO 创立书籍类型表 USELibarySystem GO CREATETABLEBookType( BookTypeIdvarCHAR(10)PRIMARYKEY, BookTypeTEXT); GO 创立阅览室表 USELibarySystem GO CREATETableReadingRoom( RoomNumCHAR(20), RoomNameTEXT, RoomLocalTEXT, PRIMARYKEY (RoomNum)); GO 创立书架表 USELibrarySystem GO CREATETABLEShelf( ShelfNumCHAR(20), RoomNumCHAR(20), PRIMARYKEY (ShelfNum), FOREIGNKEY (RoomNum)REFERENCESReadingRoom(RoomNum)); GO 创立表 useLibarySystem GO createtablePress (PressNoChar(10), PressNameText, ContactText, TeleChar(12), Addrtext, primarykey(PressNo), ) GO 创立某类书籍表 USELibarySystem GO CREATETableBookSeries( ISBNCHAR(20), BookNameTEXT, AuthorVARCHAR(20), PressNoVARCHAR(20), PageNumSMALLINT, PriceSMALLint, PublishTimeDATETIME, BookNumINT, BookInINT, SeriesIdVARCHAR(10), PRIMARYKEY (ISBN), FOREIGNKEY (SeriesId)REFERENCES BookType(BookTypeId)); GO 创立图书表 USELibarySystem GO CREATETableBook( BookIdVARCHAR(20), ISBNCHAR(20), BookNameTEXT, ShelfNumCHAR(20), BookStateVARCHAR(20), BookDamageSMALLINT, PRIMARYKEY (BookId), FOREIGNKEY (ISBN)REFERENCESBookSeries(ISBN), FOREIGNKEY (ShelfNum)REFERENCESShelf(ShelfNum)); GO 创立预约表 USELibarySystem GO CREATETableAppointment( ReaderAccountCHAR(8), ISBNCHAR(20), AppTimeDATETIME, ExpirationTimeDATETIME, PRIMARYKEY (ReaderAccount,ISBN), FOREIGNKEY (ReaderAccount)REFERENCESReader(ReaderAccount), FOREIGNKEY (ISBN)REFERENCESBookSeries(ISBN)); GO 创立借阅表 USELibarySystem CREATETableBorrowReturn( ReaderAccountCHAR(8), ISBNCHAR(20), BorrowTimeDATETIME, DeadlineDATETIME, ReturnTimeDATETIME, ExceedingDaysINT, BorCountINT, FineSMALLMONEY, PaidAmountSMALLINT, PRIMARYKEY (ReaderAccount,ISBN,BorrowTime), FOREIGNKEY (ISBN)REFERENCESBookSeries(ISBN), FOREIGNKEY (ReaderAccount)REFERENCESReader(ReaderAccount)); GO 5、对数据库记录进展操作 insert〔举一些例子,其他的那么用交互式SQL语句添加记录〕 ;往ReaderType表中添加记录 useLibarySystem; go insertinto ReaderType(ReaderType,MaxBorNum,MaxBorTime,MaxBorCount) values('学生',8,1,1); go insertinto ReaderType values('教师',10,2,2); go ;往Reader表中添加记录 useLibarySystem; go insertinto Reader(ReaderAccount,ReaderName,ReaderPwd,ReaderSdept,ReaderType) values('19120213','扬','888888','计算机科学与技术','学生'); go insertinto Reader values('20210211','一','888888','计算机科学与技术','教师'); go insertinto Reader values('20210212','二','888888','生物科学技术','教师'); go insertinto Reader values('20210213','三','888888','教育科学学院','教师'); go update ;将XX为20210211的读者系别更新为数学系 useLibarySystem; go updateReader setReaderSdept='数学' whereReaderAccount='20210211'; go delete ;删除XX为’20120102’的读者 useLibarySystem; go deletefrom Reader whereReaderAccount='20210212'; go select 〔单表查询〕 ;查找XX为‘20210213‘的读者信息 useLibarySystem; go select* fromReader whereReaderAccount='20210213'; go ;查询所有学生的信息 use LibarySystem; go select* from Reader where ReaderType='学生'; go ;查询书架1上的所有图书 use LibarySystem; go select* from Book where ShelfNum='1'; go 〔连接查询〕 ;查找读者预约信息 select Reader.ReaderAccount,ReaderName,ReaderSdept,ReaderType,ISBN,AppTime,ExpirationTime from Reader,Appointment where Reader.ReaderAccount=Appointment.ReaderAccount; ;查询读者的借阅信息 select Reader.ReaderAccount,ReaderName,ReaderSdept,ReaderType,ISBN,BorrowTime,Deadline from Reader,BorrowReturn where Reader.ReaderAccount=BorrowReturn.ReaderAccount; 〔嵌套查询〕 ;查找1号阅览室的所有书架上的书籍 select BookId,ISBN,BookName from Book where ShelfNum IN (select ShelfNum from Shelf where RoomNum='1'); ;查询书名为数据库的书籍详细信息 select* from BookSeries where ISBN IN (select ISBN FROM Book where BookName like'%数据库%'); ;根据输入的学号,列出该同学当前所借图书的详细信息 select* from BookSeries where ISBN in (select ISBN from BorrowReturn where ReaderAccount='19120213'); 〔集合查询〕 ;查询计算机专业的教师信息 select* from Reader where ReaderType='教师' intersect select* from Reader where ReaderSdept='计算机科学与技术'; ;查阅读者身份为教师或系别为计算机系的读者 select* from Reader where ReaderType='教师' union select* from Reader where ReaderSdept='计算机科学与技术'; ;查询在馆数量大于2或价格低于30的书籍信息 select* from BookSeries where BookIn>=2 union select* from BookSeries where price<=30; . .word.zl.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服