SQL语句复习题
设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。
图书表 (图书号,书名,作者,出版社,单价)
读者表 (读者号,姓名,性别,部门)
借阅表 (读者号,图书号,借出日期,归还日期)
试用SQL的查询语句表达下列查询:
(1)查询全体图书的图书号,书名,作者,出版社,单价。
(2)查询机械工业出版社图书的平均价格、最高价、最低价。
(3)查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。
(4)查询借阅图书本数超过2本的读者号、总本数。并按借阅本数值从大到小排序。
(5)查询’科学出版社’的图书中单价比’机械工业出版社’最高单价还高的的图书书名、单价。
(6)查询已被借阅过并已归还的图书信息。
(7)给图书表增加一列“ISBN”,数据类型为CHAR(10)
(8)向读者表加入一个新读者,该读者的信息为:
(‘200197’, ‘王小平’, ‘男’ , ’物理系’)
(9)完成读者’王小平’在借出一本图书10日后归还该书的归还日期的更新。
(10)当读者’王小平’按期归还图书时,删除借阅记录。
答案:
(1) SELECT 图书号,书名,作者,出版社,单价
FROM 图书
或者
SELECT * FROM 图书
(2) SELECT AVG(单价)AS‘平均价’,MAX(单价)AS‘最高价’, MIN(单价)AS‘最低价’
FROM 图书
WHERE 出版社=’机械工业出版社’
(3) SELECT 读者.读者号,姓名,书名,借出日期,归还日期
FROM 读者,图书,借阅
WHERE 读者.读者号 = 借阅.读者号 AND 图书.图书号=借阅.图书号
(4) SELECT 读者号,COUNT(图书号) AS ‘总本数’
FROM 借阅
GROUP BY 读者号
HAVING COUNT(*) > 2
ORDER BY COUNT(图书号) DESC
(5) SELECT 图书号,单价 FROM 图书
WHERE 出版社=’科学出版社’ AND 单价>(
SELECT MAX(单价) FROM 图书 WHERE 出版社=’机械工业出版社’)
或者
SELECT 图书号,单价 FROM 图书
WHERE 出版社='科学出版社' AND 单价>ALL (
SELECT 单价 FROM 图书 WHERE 出版社='机械工业出版社')
(6) SELECT * FROM 图书
WHERE 图书号 IN (SELECT 图书号 FROM 借阅 WHERE 归还日期 IS NOT NULL)
或者
SELECT * FROM 图书 B1
WHERE EXISTS (SELECT * FROM 借阅 B2
WHERE B1.图书号=B2.图书号 AND 归还日期 IS NOT NULL)
(7) ALTER TABLE 图书
ADD ISBN CHAR(10)
(8) INSERT INTO 读者
VALUES (‘200197’, ‘王小平’, ‘男’, ‘物理系’)
(9) UPDATE 借阅
SET 归还日期= 借出日期 + 10
WHERE 读者号=(SELECT 读者号 FROM 读者sql server 2000是一种 WHERE 姓名=’王小平’ )
(10) DELETE FROM 借阅
WHERE 读者号=(SELECT 读者号 FROM 读者
WHERE 姓名= ‘王小平’ )
三、判断题
1、能惟一标识元组的属性集称为主键。( √ )
2、触发器是属于某个表的。( √)
3、视图定义后,其中的数据就存储在视图中。( × )
4、恢复数据,可以在查询分析器中使用这样的命令:
BACKUP DATABASE database_name FROM backup ( × )
5、数据库系统的核心组成部分是数据库管理系统。( √ )
6、数据独立性是指数据之间相互独立。( × )
7、sql server2000是关系模型的数据库管理系统。( √)
8、数据库的保护涉及三个方面的问题,即数据库的私用性、安全性和完整性。( √ )
9、在创建表的SQL语句中,CHECK子句规定了一个规则,即一个表的一个列或多列的组合只能包含在这个规则定义的集合之内的值。( √ )
√
11、HAVING子句常用于在计算出聚集之后对行的查询进行控制。( √ )
12、能惟一标识元组的属性集称为外键。( × )
13、在SQL SERVER 2000中,执行备份操作时允许用户创建索引。( × )
14、数据库建立后只可以改变数据库文件的名称,不可以改变日志文件的名称。( × )
15、EXEC与EXECUTE在执行存储过程时是不同的。( × )
16、纯量函数是进行垂直方向计算的,产生的结果是一个单值。(× )
17、当一个用户登录到sqlserver上后,不一定可以建立数据库和表。
成功。( ( √ ))
18、GROUP BY 子句总是跟在WHERE 子句后面,当WHERE子句缺省时,不能出现GROUP BY子句。( × )
19、使用DROP语句撤销一个SQL模式时,其下属的基本表、视图等元素总是自动撤销。( ×)
20、触发器不能返回任何结果。( √ )
21、数据的不一致性可以分成以下四种类型:丢失修改、修改未提交的数据、脏数据的读取和不可重复读取。( √ )
22、网状模型的特点是在两个结点之间只能有一种联系,一个结点只可以有一个父结点。( × )
23、在 Transact-SQL 语句的WHERE子句中,“A BETWEEN B AND C”等价于“(A>=B AND A<=C)”。( √ )
24、每个存储过程向调用方返回一个整数返回代码。如果存储过程没有显式设置返回代码的值,则返回代码为 0,表示成功。( √ )
25、用户使用DML语句对数据进行操作时,实际上操作的是内模式的内部记录。( × )
26、在图书管理系统中,“图书”是一个类,“数据库应用技术”是“图书”类的一个实例。( √ )
27、数据库系统就是数据库管理系统即DBMS。( × )
28、在SQL SERVER 2000中,用户可以对系统文件直接进行各种操作。( × )
29、聚合函数“SUM(列名)”的结果是计算该列所有元素值的总和。( √ )
30、 对于一个表R(C1,C2,C3),要计算C3的最大值可使用如下SQL语句“SELECT C1,MAX(C3) FROM R”。( × )
16、每个SQL Server有两类数据库:系统数据库和( B )。
A、面向对象数据库 B、用户数据库
C、关系数据库 D、演绎数据库
17、关系R,S和T如下。关系T是由关系R和S经过哪种操作得到的?( A )
A、R S B、R-S C、R×S D、R∪S
18、若模式分解保持函数依赖性,则分解能够达到第几范式,但不一定达到第几范式。( C )
A、1NF,2NF B、2NF,3NF C、3NF,BCNF D、BCNF,4NF
1、下面给出三个关系模式:
(1)学生关系S(SNO,SName,SAge,SSex)
(2)课程关系C(CNO,CName,CTeacher)
(3)学习关系SC(SNO,CNO,Grade)
根据要求用T-SQL完成下列各题。
(1) 检索学习课程号为“C01001”的学生学号与姓名;
(2) 检索至少选修课程号为“C00101”和“C02341”的学生学号。
答:(1)SELECT S.S#,SNAME
FROM S,SC
WHERE S.S#=SC.S# AND C#=’C01001’
(2)SELECT X.S#
FROM SC AS X,SC AS Y
WHERE X.S#=Y.S# AND X.C#=’C00101’ AND Y.C#=’C02341’
2、图书管理数据库BookManager由以下四个关系模式组成,根据该结构用T-SQL完成以下各题。
(1)读者(借书证号,姓名,性别,出生日期)
(2)图书(ISBN,图书名称,作者,出版社,价格,数量)
(3)借阅(借书证号,ISBN,借出时间)
根据要求完成下列各题。
(1)创建一个名称为BookManager的数据库,其初始大小为10MB,最大为20MB,允许数据库自动增长;日志文件初始大小为2MB,最大为5MB。文件存储在目录D:\TEST下。
(2)编写一个存储过程,查询某读者当前的借书情况。
(3)创建一个触发器,如果在图书表中添加或更改数据,则向客户端显示一条信息。
3、设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SN
O,CNO,CN,G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各题:
(1)建立一个视图V_SSC(SNO,SN,CNO,CN,G),并按CNO升序排序;
(2)从视图V_SSC上查询平均成线在90分以上的SN、CN和G。
答:(1)CREATE VIEW V_SSC(SNO,SN,CNO,CN,G)
AS SELECT S.SNO,S.SN,CNO,SC.CN,SC.G
FROM S,SC
WHERE S.SNO=SC.SNO
ORDER BY CNO
(2) SELECT SN,CN,G
FROM V_SSC
GROUP BY SNO
HAVING AVG(G)>90
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论