教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

万常选数据库第3章参考答案

来源:网络收集 时间:2026-07-01
导读: 万常选数据库第3章参考答案 SET NOCOUNT ON SET DATEFORMAT YMD USE master GO --创建数据库BookDB IF EXISTS(SELECT * FROM sysdatabases WHERE name='BookDB') DROP DATABASE BookDB GO CREATE DATABASE BookDB GO USE BookDB GO --创建图书分类表BookClas

万常选数据库第3章参考答案

SET NOCOUNT ON
SET DATEFORMAT YMD
USE master
GO
--创建数据库BookDB
IF EXISTS(SELECT * FROM sysdatabases WHERE name='BookDB')
DROP DATABASE BookDB
GO
CREATE DATABASE BookDB
GO
USE BookDB
GO

--创建图书分类表BookClass
CREATE TABLE BookClass(
classNochar(3)PRIMARY KEY,/*分类号*/
classNamechar(20)NOT NULL/*分类名称*/
)
GO

--创建图书表Book
CREATE TABLE Book(
bookNochar(10)PRIMARY KEY,/*图书编号*/
classNochar(3)NOT NULL/*分类号*/
FOREIGN KEY REFERENCES BookClass,
bookNamevarchar(40)NOT NULL,/*图书名称*/
authorNamechar(8)NOT NULL,/*作者姓名*/
publishingName varchar(20) NOT NULL,/*出版社名称*/
publishingNo char(17)NOT NULL,/*出版号*/
pricenumeric(7,2) NOT NULL,/*单价*/
publishingDate datetimeNOT NULL,/*出版时间*/
shopDatedatetimeNOT NULL,/*入库时间*/
shopNumintNOT NULL/*入库数量*/
)
GO

--创建读者表Reader
CREATE TABLE Reader(
readerNochar(8)PRIMARY KEY,/*读者编号*/
readerNamechar(8)NOT NULL,/*姓名*/
sexchar(2)NOT NULL,/*性别*/
identitycard char(18)NOT NULL,/*身份证号*/
workUnitvarchar(50)NULL/*工作单位*/
)
GO

--创建借阅表Borrow
CREATE TABLE Borrow(
readerNochar(8)NOT NULL,/*读者编号*/
bookNochar(10)NOT NULL,/*图书编号*/
borrowDatedatetimeNOT NULL,/*借阅日期*/
shouldDatedatetimeNOT NULL,/*应归还日期*/
returnDatedatetimeNULL,/*归还日期*/
FOREIGN KEY(readerNo) REFERENCES Reader,
FOREIGN KEY(bookNo) REFERENCES Book,
PRIMARY KEY(readerNo,bookNo,borrowDate)
)
GO

--3.1 查询1991年出生的读者姓名、工作单位和身份证号。
SELECT readerName,workUnit,identitycard
FROM Reader
WHERE CONVERT(int,SUBSTRING(identitycard,7,4))=1991

--3.2 查询在信息管理学院工作的读者编号、姓名和性别。
SELECT readerNo,readerName,sex=CASE sex WHEN 'M' THEN '男' WHEN 'F' THEN '女' END
FROM Reader
WHERE workUnit='信息管理学院'

--3.3 查询图书名中含有“数据库”的图书的详细信息。
SELECT *
FROM Book
WHERE bookName LIKE '%数据库%'

--3.4 查询吴文君老师编写的单价不低于40元的每种图书的图书编号、入库数量。
SELECT bookNo,shopNum
FROM Book
WHERE authorName='吴文君'
AND price>=40

--3.5 查询在2005——2008年之间入库的图书编号、出版时间、入库时间和图书名称,并按入库时间排序输出。
SELECT bookNo,bookName,publishingDate,shopDate
FROM Book
WHERE YEAR(shopDate) BETWEEN 2005 AND 2008
ORDER BY shopDate

--3.6 查询借阅了001~000029图书编号的读者编号、图书编号、借书日期。
SELECT readerNo,bookNo,borrowDate
FROM Borrow
WHERE CONVERT(int, bookNo) BETWEEN 1 AN
D 29

--3.7 查询没有借阅图书编号以001开头的读者编号和姓名。
SELECT readerNo,readerName
FROM Reader
WHERE readerNo NOT IN(
SELECT readerNo
FROM Borrow
WHERE bo

万常选数据库第3章参考答案

okNo LIKE '001%'
)

--3.8 查询读者马永强借阅的图书编号、图书名称、借书日期和归还日期。
SELECT Book.bookNo,bookName,borrowDate,returnDate
FROM Book,Borrow
WHERE Book.bookNo=Borrow.bookNo
AND readerNo IN(
SELECT readerNo
FROM Reader
WHERE readerName='马永强'
)

--3.9 查询会计学院没有归还图书的读者编号、读者姓名、图书名称、借书日期和应归还日期。
SELECT Reader.readerNo,readerName,bookName,borrowDate,shouldDate
FROM Reader,Borrow,Book
WHERE Reader.readerNo=Borrow.readerNo
AND Borrow.bookNo=Book.bookNo
AND workUnit='会计学院' AND returnDate IS NULL

--3.10 查询借阅了清华大学出版社出版的图书的读者编号、读者姓名、图书名称、借书日期和归还日期。
SELECT Reader.readerNo,readerName,bookName,borrowDate,returnDate
FROM Reader,Borrow,Book
WHERE Reader.readerNo=Borrow.readerNo
AND Borrow.bookNo=Book.bookNo
AND publishingName='清华大学出版社'

--3.11 查询借书时间在2007——2008年之间的读者编号、姓名、图书编号、图书名称。
SELECT Reader.readerNo,readerName,Book.bookNo,bookName
FROM Reader,Borrow,Book
WHERE Reader.readerNo=Borrow.readerNo
AND Borrow.bookNo=Book.bookNo
AND YEAR(borrowDate) BETWEEN 2007 AND 2008

--3.12 查询在2005-2008年之间没有归还图书的读者编号、读者姓名、读者工作单位。
SELECT readerNo,readerName,workUnit
FROM Reader
WHERE readerNO IN(
SELECT readerNo
FROM Borrow
WHERE YEAR(borrowDate) BETWEEN 2005 AND 2008
AND returnDate IS NULL
)

--3.13 查询没有借书的读者姓名(分别使用IN子查询和存在量词子查询表达)。
--use IN
SELECT readerName
FROM Reader
WHERE readerNo NOT IN(
SELECT readerNo
FROM Borrow
WHERE returnDate IS NULL
)
--use EXISTS
SELECT readerName
FROM Reader
WHERE NOT EXISTS(
SELECT *
FROM Borrow
WHERE Reader.readerNo=Borrow.readerNo
AND returnDate IS NULL
)

--3.14 查询既借阅了“离散数学”图书又借阅了“数据库系统概念”两本书的读者编号、读者姓名、借书日期和图书名称。
SELECT Reader.readerNo,readerName,borrowDate,bookName
FROM Reader,Borrow,Book
WHERE Reader.readerNo=Borrow.readerNo
AND Borrow.bookNo=Book.bookNo
AND Reader.readerNo IN(
SELECT readerNo
FROM Borrow
WHERE bookNo IN(
SELECT bookNo
FROM Book
WHERE bookName='离散数学'
)
) AND Reader.readerNo IN(
SELECT readerNo
FROM Borrow
WHERE bookNo IN(
SELECT bookNo
FROM Book
WHERE bookName='数据库系统概念'
)
)

--3.15 查询没有借阅图书的读者编号、读者姓名和工作单位(分别使用IN子查
询和存在量词子查询表达)。
--与3.13重复

--3.16 查询没有借阅“经济管理”类图书的读者编号、读者姓名和出生日期(分别使用IN子查询和存在量词子查询表达)。
--use IN
SELECT readerNo,readerName,SUBSTRING(ident …… 此处隐藏:6541字,全部文档内容请下载后查看。喜欢就下载吧 ……

万常选数据库第3章参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1110195.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)