有几道写命令代码的题,帮忙做做吧。
设计一个图书借阅数据库,对每个借阅者保存读者记录,包括:读者号,姓名,性别,地址,手机号。对每本书存有:书号,书名,作者,出版社,定价。对每本被借出的书存有读者号、借出日期和应还日期。
数据要求:读者号为5位数字;书号以一个大写英文字母打头,共8位数;书名不超过20个汉字;
借还书规则:每位读者最多只能借3本书;借阅周期不超过6个月,逾期不还者,每超过1个月增加罚款5元,不足一个月按一个月计算;凡有预期不还的图书不得借阅新书。丢失图书,按照定价的2倍赔偿。赔偿后方可借书。还书要有记录,罚款要有记录。
题目:
一、建立图书借阅数据库(命名为“图书借阅”)。
要求至少有一个主数据文件jieyue0.mdf,一个事务日志文件jieyue.ldf, 3个文件组:dat、act、els。
二、设计数据库各个表的结构(表名和列名以汉字或相应拼音命名),注意域完整性、参照完整性,合理设置主键。必要时建立索引和视图。
读者(读者号,姓名,性别,地址,手机号)。放入dat文件组;
书(书号,书名,作者,出版社,定价, 库存量)。放入dat文件组;
借书:只包含读者号,书号,借出日期,应还日期。放入act文件组;
还书:只包含读者号,书号,还书日期。放入act文件组;
罚款(读者号,书号,罚款原因,罚款金额)。放入els文件组。
三、输入5位读者信息。输入20本图书信息,输入5位借书信息。
四、设计触发器:
借书时自动填写借出日期(当前日期)、应还日期(当前日期后六个月),自动改写库存量、控制借书数量;(命名为jieshu)
还书时自动测试是否曾借本书、是否超期,自动填写还书日期(当前日期),必要时自动填写罚款信息。(命名为huanshu)
五、建立存储过程
1. 查询指定读者号的借书情况(命名为chaxunjieshu)。检查是否有超期图书,如有,提示超期、罚款等信息,并提示不能借阅新书;
2. 完成读者借书过程(命名为jieshuguocheng)
3. 完成读者还书过程(命名为huanshuguocheng)
4. 输入罚款信息(fakuanguocheng)
5. 查询罚款情况(命名为chaxunfakuan)
------解决方案--------------------
因为你的需求太多了,只能先给你写一点了:
--1.建库
create database 图书借阅
on primary
(
name = 'dat',
filename = 'c:\jieyue0.mdf'
),
(
name = 'act',
filename = 'c:\jieyue1.mdf'
),
(
name = 'els',
filename = 'c:\jieyue2.mdf'
)
log on
(
name = '图书借阅_log',
filename = 'c:\jieyue.ldf'
)
go
--2.建表
use 图书借阅
go
create table 读者(读者号 varchar(10),姓名 varchar(10),性别 varchar(10),地址 varchar(80),手机号 varchar(20)) on [dat];
create table 书(书号 varchar(10),书名 varchar(50),作者 varchar(50),出版社 varchar(30),定价 numeric(10,2), 库存量 int) on [dat];
create table 借书(读者号 varchar(10),书号 varchar(10),借出日期 datetime,应还日期 datetime) on [act];
create table 还书(读者号 varchar(10),书号 varchar(10),还书日期 datetime) on [act];
create table 罚款(读者号 varchar(10),书号 varchar(10),罚款原因 varchar(100),罚款金额 numeric(10,2)) on [els];