+ -
当前位置:首页 → 问答吧 → 有点急,请各位高手大虾帮帮忙,,谢谢

有点急,请各位高手大虾帮帮忙,,谢谢

时间:2011-12-08

来源:互联网

以下各题要求都是在Exam数据库中作答。
Exam数据库介绍:该数据库包含了图书表、读者表和借书表,表名分别为:book、reader和borrow。表的结构和数据如下:
  CREATE TABLE book(
bno Char(4) PRIMARY KEY,
bname Char(20),
author Char(10),
publish Char(20),
pubdate Datetime
  )


CREATE TABLE reader(
rno Char(4) PRIMARY KEY,
rname Char(10)
  )

CREATE TABLE borrow(
borrowno Int PRIMARY KEY,
bno Char(4),
rno Char(4),
borrowdate Datetime
  )

GO

INSERT INTO book
VALUES('0001','数据库原理','李明','出版社A','2008-10-01')
INSERT INTO book
VALUES('0002','软件工程','张永','出版社B','2008-08-09')
INSERT INTO book
VALUES('0003','操作系统','赵明哲','出版社C','2009-03-06')
INSERT INTO book
VALUES('0004','数据结构','张辉','出版社D','2009-05-28')

INSERT INTO reader
VALUES('0001','李莎')
INSERT INTO reader
VALUES('0002','陈世杰')
INSERT INTO reader
VALUES('0003','吴忠')

INSERT INTO borrow
VALUES(1,'0001','0001','2010-03-15')
INSERT INTO borrow
VALUES(2,'0002','0001','2010-03-20')
INSERT INTO borrow
VALUES(3,'0002','0002','2010-03-30')
INSERT INTO borrow
VALUES(4,'0003','0002','2010-04-05')
INSERT INTO borrow
VALUES(5,'0003','0001','2010-04-12')
INSERT INTO borrow
VALUES(6,'0004','0001','2010-04-21')
GO


1 输入语句,查询没有被任何人借过的图书的图书编号、图书名称、作者。操作成功后,按系统提示目录进行保存,文件命名为T2-4.sql。

2. 输入语句,查询“出版社A”所出版图书每本的借阅次数,查询结果由“图书编号”和“借阅次数”两列组成。操作成功后,按系统提示目录进行保存,文件命名为T2-7.sql。

3. 输入语句,查询借阅次数最多图书的编号和名称。操作成功后,按系统提示目录进行保存,文件命名为T2-8.sql。

4. 输入语句,在“图书表”和“借书表”之间进行左外连接操作,连接条件是图书编号相等。操作成功后,按系统提示目录进行保存,文件命名为T2-9.sql。

5. 输入语句,创建以上3个基本表及主键,并插入表4、表5和表6所给数据。操作成功后,按系统提示目录进行保存,文件命名为T2-2.sql。
 
6. 输入语句,查询有过借书记录的读者的编号和名称。操作成功后,按系统提示目录进行保存,文件命名为T2-10.sql。

7. 输入语句,建立拥有一个参数的名为“bookproc”的存储过程,用来查询借阅次数大于该参数的图书编号,然后执行该存储过程,并将输入参数赋值为“2”。操作成功后,按系统提示目录进行保存,文件命名为T2-12.sql。

8. 输入语句,建立名为“newtrigger”的触发器,触发器规定更新借书表的借书日期列时,取消所有操作。操作成功后,按系统提示目录进行保存,文件命名为T2-13.sql。

9. 输入语句,删除上题建立的触发器“newtrigger”。操作成功后,按系统提示目录进行保存,文件命名为T2-14.sql。
10. 输入语句,查询“软件工程”的所有借书记录。操作成功后,按系统提示目录进行保存,文件命名为T2-5.sql。
 
11. 输入语句,利用游标循环遍历图书表的每条记录,然后关闭并释放游标。操作成功后,按系统提示目录进行保存,文件命名为T2-15.sql。

作者: wuwu10025   发布时间: 2011-12-08

重点是1 2 3 6 7 8 10 11

作者: wuwu10025   发布时间: 2011-12-08

SQL code
--4.
select * from 图书表 a left join 借书表 b on a.图书编号=b.图书编号
--9.
drop trigger newtrigger

作者: qianjin036a   发布时间: 2011-12-08

该自己做的题目,还是自己做做吧,死不了人的!
省点儿泡妞的时间做题,不然,等到了社会上,混不好,咋养家糊口哪!

作者: qianjin036a   发布时间: 2011-12-08

引用 3 楼 qianjin036a 的回复:

该自己做的题目,还是自己做做吧,死不了人的!
省点儿泡妞的时间做题,不然,等到了社会上,混不好,咋养家糊口哪!

呵呵,知道,,请问下第11题和第8题怎么做

作者: wuwu10025   发布时间: 2011-12-08

--9.
drop trigger newtrigger

作者: rucypli   发布时间: 2011-12-08

大家帮帮忙看看最后一题是这样的嘛??
DECLEAR @v_ bno char(4) , @ v_ bname char(20) , @ v_ author char(10), @ v_ publish char(20), @ v_ pubdate Datetime

DECLEAR book_cursor CURSOR
FOR SELECT bno,bname,author,publish,pubdate FROm book

OPEN book_cursor
WHILE @@FETCH_STATUS=0
BEGIN
FETCH NEXT FROM book_cursor INTO @v_ bno, @ v_ bname, @ v_ author, @ v_ publish, @ v_ pubdate 

END
CLOSE book_cursor
DEALLOCATE book_cursor

作者: wuwu10025   发布时间: 2011-12-08

SQL code

--1.
select * from book a where not exists(select 1 from borrow where bno=a.bno)
--2.
select a.bno,借阅次数=count(*) from (select * from book where rtrim(publish)='出版社A') a inner join borrow b on a.bno=b.bno group by a.bno

作者: pengxuan   发布时间: 2011-12-08