SQL图书管理系统.docx

上传人:b****6 文档编号:14008362 上传时间:2023-06-20 格式:DOCX 页数:22 大小:127.77KB
下载 相关 举报
SQL图书管理系统.docx_第1页
第1页 / 共22页
SQL图书管理系统.docx_第2页
第2页 / 共22页
SQL图书管理系统.docx_第3页
第3页 / 共22页
SQL图书管理系统.docx_第4页
第4页 / 共22页
SQL图书管理系统.docx_第5页
第5页 / 共22页
SQL图书管理系统.docx_第6页
第6页 / 共22页
SQL图书管理系统.docx_第7页
第7页 / 共22页
SQL图书管理系统.docx_第8页
第8页 / 共22页
SQL图书管理系统.docx_第9页
第9页 / 共22页
SQL图书管理系统.docx_第10页
第10页 / 共22页
SQL图书管理系统.docx_第11页
第11页 / 共22页
SQL图书管理系统.docx_第12页
第12页 / 共22页
SQL图书管理系统.docx_第13页
第13页 / 共22页
SQL图书管理系统.docx_第14页
第14页 / 共22页
SQL图书管理系统.docx_第15页
第15页 / 共22页
SQL图书管理系统.docx_第16页
第16页 / 共22页
SQL图书管理系统.docx_第17页
第17页 / 共22页
SQL图书管理系统.docx_第18页
第18页 / 共22页
SQL图书管理系统.docx_第19页
第19页 / 共22页
SQL图书管理系统.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SQL图书管理系统.docx

《SQL图书管理系统.docx》由会员分享,可在线阅读,更多相关《SQL图书管理系统.docx(22页珍藏版)》请在冰点文库上搜索。

SQL图书管理系统.docx

SQL图书管理系统

1、系统的功能模块图

 

 

2、系统E-R图

3、数据库逻辑结构设计

关系模式表(红色表示主码,蓝色表示外码)

读者类型表(读者类型,可借阅天数,可借阅数量,续借次数)

读者(姓名,借阅证号,系别,读者类型,密码)

管理员(姓名,工号,密码)

书籍类型(书籍类型编号,书籍类型)

某类书籍(ISBN,书名,作者,出版社编号,价格,出版时间,库存量,在馆数量,书籍类型编号)

书籍(图书编号,ISBN,书名,书架编号,书籍状态,损坏程度)(ISBN相当于书籍类型编号)

阅览室(阅览室编号,阅览室名称,阅览室位置)

书架(书架编号,阅览室编号)

预约(借阅证号,ISBN,预约时间,预约到期时间)

借阅表(读者帐号,图书编号,借出日期,实际归还日期,到期时间,超出还书天数,续借次数,罚款金额,实缴金额)

出版社(出版社编号,名称,联系人,地址,联系电话)

 

管理员表

管理员表(Administrator)

名称

别名

数据类型

取值范围

默认值

说明

是否为空

工号

ANo

Char(15)

主键

不为空

姓名

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

不为空

读者姓名

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('19120123','杨扬','888888','计算机科学与技术','学生');

go

insertinto

Reader

values('20120101','刘一','888888','计算机科学与技术','教师');

go

insertinto

Reader

values('20120102','刘二','888888','生物科学技术','教师');

go

insertinto

Reader

values('20120103','刘三','888888','教育科学学院','教师');

go

update

;将帐号为20120101的读者系别更新为数学系

useLibarySystem;

go

updateReader

setReaderSdept='数学'

whereReaderAccount='20120101';

go

 

delete

;删除帐号为’20120102’的读者

useLibarySystem;

go

deletefrom

Reader

whereReaderAccount='20120102';

go

 

select

(单表查询)

;查找帐号为‘20120103‘的读者信息

useLibarySystem;

go

select*

fromReader

whereReaderAccount='20120103';

go

;查询所有学生的信息

useLibarySystem;

go

select*

fromReader

whereReaderType='学生';

go

;查询书架1上的所有图书

useLibarySystem;

go

select*

fromBook

whereShelfNum='1';

go

 

(连接查询)

;查找读者预约信息

selectReader.ReaderAccount,ReaderName,ReaderSdept,ReaderType,ISBN,AppTime,ExpirationTime

fromReader,Appointment

whereReader.ReaderAccount=Appointment.ReaderAccount;

 

;查询读者的借阅信息

selectReader.ReaderAccount,ReaderName,ReaderSdept,ReaderType,ISBN,BorrowTime,Deadline

fromReader,BorrowReturn

whereReader.ReaderAccount=BorrowReturn.ReaderAccount;

 

(嵌套查询)

;查找1号阅览室的所有书架上的书籍

selectBookId,ISBN,BookName

fromBook

whereShelfNumIN

(selectShelfNum

fromShelf

whereRoomNum='1');

;查询书名为数据库的书籍详细信息

select*

fromBookSeries

whereISBNIN

(selectISBN

FROMBook

whereBookNamelike'%数据库%');

;根据输入的学号,列出该同学当前所借图书的详细信息

select*

fromBookSeries

whereISBNin

(selectISBN

fromBorrowReturn

whereReaderAccount='19120123');

 

(集合查询)

;查询计算机专业的教师信息

select*

fromReader

whereReaderType='教师'

intersect

select*

fromReader

whereReaderSdept='计算机科学与技术';

;查阅读者身份为教师或系别为计算机系的读者

select*

fromReader

whereReaderType='教师'

union

select*

fromReader

whereReaderSdept='计算机科学与技术';

;查询在馆数量大于2或价格低于30的书籍信息

select*

fromBookSeries

whereBookIn>=2

union

select*

fromBookSeries

whereprice<=30;

饱食终日,无所用心,难矣哉。

——《论语•阳货》

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2