SQL题目 帮忙做下..

本题用到下面三个关系表:
CARD 借书卡。 CNO 卡号(主键),NAME 姓名,CLASS 班级
BOOKS 图书。 BNO 书号(主键),BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数
BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下10个处理:
1.创建数据库test,创建三张表card,books,borrow,分别向每张表中添加至少五条记录。
要求:在创建每个表时,注意相应的主键约束和外键约束的定义。

2.找出借书超过5本的读者,输出借书卡号及所借图书册数

3.查询借阅了"数据结构"一书的读者,输出姓名及班级

4. 查询书名包括"数学"关键词的图书,输出该书的书号、书名、作者

5.查询现有图书中价格最高的图书,输出书名及作者

6.将"0701"班同学所借图书的还期都延长一周

7. 建立一个视图,显示"0701"班学生的借书信息(只要求显示姓名和书名)

8.假定在建BOOKS2表时没有定义主码,写出为BOOKS2表追加定义主码的语句

9.对CARD表做如下修改:
a. 将NAME最大列宽增加到10个字符(假定原为20个字符)。
b. 为该表增加1列dept(系名),最大20个字符

10.创建一个触发器,反映库存册数数量随借书增加而变化

第1个回答  推荐于2018-04-21
--创建数据库
create database test
go
--使用数据库
use test
go
--创建借书卡表
create table CARD
(
CNO int primary key,--卡号
NAME varchar(20),--姓名
CLASS int --班级
)
--创建图书表
create table BOOKS
(
BNO int primary key--书号
BNAME varchar(20),--书名
AUTHOR varchar(20),--作者
PRICE float,--单价
QUANTITY int--库存册数
)
--创建借书记录表
create table BORROW
(
CNO references CARD(CNO),--借书卡号
BNO references BOOKS(BNO),--书号
RDATE datetime--还书日期
)
--添加借书卡信息
insert into CARD values(10001,'关羽',0701)
insert into CARD values(10002,'张飞',0702)
insert into CARD values(10003,'赵云',0703)
insert into CARD values(10004,'马超',0704)
insert into CARD values(10005,'黄忠',0705)
--添加图书信息
insert into BOOKSvalues values(101,'孙子兵法','诸葛亮',49,5)
insert into BOOKSvalues values(102,'数据结构','诸葛亮',18,4)
insert into BOOKSvalues values(103,'青冥剑','诸葛亮',10,3)
insert into BOOKSvalues values(104,'数学','诸葛亮',10,2)
insert into BOOKSvalues values(105,'炎黄战靴','诸葛亮',50,0)
--添加借书记录信息
insert into BORROW values(10001,101,'1989-11-08')
insert into BORROW values(10002,102,'1987-6-30')
insert into BORROW values(10003,103,'1989-5-13')
insert into BORROW values(10004,104,'2010-11-03')
insert into BORROW values(10005,105,'2008-8-8')
--找出借书超过5本的读者,输出借书卡号及所借图书册数
select NAME,count(BNO),CNO from BORROW,CARD,BOOKS
where BORROW.CNO = CARD.CNO and BORROW.BNO = BOOKS.BNO
and count(BNO) >5
--查询借阅了"数据结构"一书的读者,输出姓名及班级
select Name,CLASS from CARD,BOOKS
where BOOKS.BNAME = '数据结构'
--查询书名包括"数学"关键词的图书,输出该书的书号、书名、作者
select BNO,BNAME,AUTHOR from BOOKS where BNAME like '%数学%'
--查询现有图书中价格最高的图书,输出书名及作者
select BNAME,AUTHOR,price from BOOKS order by PRICE desc
--将"0701"班同学所借图书的还期都延长一周
select * as '还书日期' from CARD where class = '0701' and RDATE = between '1989-11-08' and '1989-11-15'本回答被提问者和网友采纳