您的当前位置:首页正文

SQL Server 综合练习

2020-11-13 来源:易榕旅网
SQL Server 综合练习

本题用到下面三个关系表:

CARD 借书卡。 {CNO 卡号,NAME 姓名,CLASS 班级}

BOOKS 图书。{ BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 总册数 }

BORROW 借书记录。 {CNO 借书卡号,BNO 书号,RDATE 还书日期}

一、实现如下处理:

1.注册本地计算机为服务器;

2.建立名为TSGL的数据库(保存在以个人班级和姓名命名的文件夹中); 3.在数据库中创建以上三个表,字段名用拼音或英文,恰当地选择字段的数据类型,并定义主键和外键约束,每张表中输入五条记录(建表和输入记录时,请注意包含下面斜体字部分的内容);

4.在CARD表的姓名字段上建立唯一性索引(5’) 5.在文件夹中创建一个名为backup1的备份设备,然后对当前数据库作完全的备份。(5’);

6.建立一个视图,显示\"C01\"班学生的借书信息,只要求显示姓名和书名。 7.创建图书库存册r数视图,要求包含{BNO 书号,BNAME 书名, SAVEQUANTITY 库存册数};

8.创建存储过程p_books,要求带一个输入参数,功能是根据指定的书号查询图书信息;

9.创建一个AFTER触发器,当借出一本图书(借书记录增加一条)时,图书表中该书号的总册数减1。

create trigger trigg1 on borrow after insert as

update books

set quantity=quantity-1

where bno=(select bno from inserted)

二、进行如下查询(查询文档保存在以个人班级和姓名命名的文件夹中): 1. 找出借书超过5本的读者,输出借书卡号及所借图书册数。

select cno,count(cno) from borrow group by cno

having count (cno)>=5

1

2. 查询借阅了\"水浒\"一书的读者,输出姓名及班级。

--2.查询借阅了\"水浒\"一书的读者,输出姓名及班级。

select name,class from card,books

where bname='水浒传'

3. 查询书名包括\"网络\"关键词的图书,输出书号、书名、作者。

--3.查询书名包括\"网络\"关键词的图书,输出书号、书名、作者。 select cno,bname,author from card,books

where bname like '%网络%'

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

select bname,author from books

where price =(select max(price) from books)

5. 将\"C01\"班同学所借图书的还期都延长一周。

update borrow set

rdate = rdate+7

where cno in (select cno from card where class='c01')

use TSGL go

create table CARD (

CNO char(10) primary key not null, name nchar(10) not null, class char(10) not null

2

) go

insert card (cno,name,class)values ('01','张三','c01')

insert card (cno,name,class)values ('02','李四','c02')

insert card (cno,name,class)values ('03','张五','c03') insert card (cno,name,class)values ('04','张六','c04')

insert card (cno,name,class)values ('05','拉拉','c05')

create table books (

bno char(10)primary key not null, bname nchar(10) not null, author nchar(10)not null, price money not null, quantity char(10) not null ) go

insert books (bno,bname,author,price,quantity)values ('001','水浒传','施耐庵','300.00','10') insert books (bno,bname,author,price,quantity)values ('002','物理','空格看','50.00','30') insert books (bno,bname,author,price,quantity)values ('003','高数','新新你','60.00','80') insert books (bno,bname,author,price,quantity)values ('004','英语','眉心吗','30.00','90') insert books (bno,bname,author,price,quantity)values ('005','化学','小马看','30.00','90')

create table borrow (

cno char(10)primary key not null, bno char(10) not null, rdate datetime not null ) go

insert borrow(cno,bno,rdate)values('01','001','2021-6-22') insert borrow(cno,bno,rdate)values('02','004','2021-5-24') insert borrow(cno,bno,rdate)values('05','002','2021-4-25') insert borrow(cno,bno,rdate)values('03','003','2021-3-27')

insert borrow(cno,bno,rdate)values('04','005','2021-2-28')

3

因篇幅问题不能全部显示,请点此查看更多更全内容