SQL数据库模拟题及答案
一、数据库设计题(共50分)
1、以“library”为名称创建一个数据库。该数据库中包含一个主数据文件tsdata.mdf,存放路径为“d:\data\”;一个事务日志文件tslog.ldf,存放路径为“d:\data\”。其他设置自定。(6分)
请截图(数据库文件属性):
2、在上题创建好的数据库中,按如下要求创建三张表。(每个表正确创建得8分,共24分)sql查询面试题及答案
表1 书籍表:用来存储书籍的基本信息
字段名称
数据类型
长度
是否为空
说明
序号
int
非空
初始值和增量均为1
图书编号
char
10
非空
主键
书名
varchar
50
非空
作者
varchar
20
非空
价格
Money
出版社
varchar
50
非空
出版日期
smalldatetime
库存量
int
非空
>=0
请截图(对象资源管理器,一直展开到“列”,有约束设置的展开至“键”和“约束”):
表2读者表:用来存储读者的基本信息
字段名称
数据类型
长度
是否为空
约束
借书证号
char
10
非空
主键
姓名
varchar
20
非空
性别
char
2
非空
默认值为“男”
单位
varchar
50
char
11
请截图(对象资源管理器,一直展开到“列”,有约束设置的展开至“键”和“约束”):
表3 借阅表:存储读者借阅的信息
字段名称
数据类型
长度
是否为空
约束
图书编号
char
10
非空
外键,参照书籍表
借书证号
char
10
非空
外键,参照读者表
借书日期
smalldatetime
非空
还书日期
smalldatetime
归还否
char
2
请截图(对象资源管理器,一直展开到“列”,有约束设置的展开至“键”和“约束”):
3、在“library”数据库中插入以下记录。(每小题4分,共12分)
(1)在书籍表中插入以下数据:
图书编号
书名
作者
价格
出版社
出版日期
库存量
J1
计算机基础
刘大石
29
机械工业出版社
2014/2/1
5
J2
数据库应用教程
李刚
32
电子工业出版社
2014/9/1
8
(2)在读者表中插入以下数据:
借书证号
姓名
性别
单位
10001
柯思扬
信息系
138********
10002
孙一明
管理系
139********
(3)在借阅表中插入以下数据:
图书编号
借书证号
借书日期
还书日期
归还否
J1
10001
2015/6/3
2015/12/3
J2
10001
2015/6/3
2015/12/3
请截图(打开数据表):
4、为读者表创建一个“姓名”列的非聚集索引文件。(4分)
请截图(索引属性):
5、创建“读者借阅信息”视图,包括借书证号、姓名、书名、还书日期等信息。(4分)
请截图(打开视图):
二、查询设计题(每小题5分,共25分)
1、在library数据库中查询“孙一明”的相关信息。
请粘贴T-SQL查询语句:
2、查询信息系或电子系的读者信息。
请粘贴T-SQL查询语句:
3、查书名以“计算机”打头的所有图书和作者。
请粘贴T-SQL查询语句:
4、查姓名为“柯思扬”借阅书本的书名。 
请粘贴T-SQL查询语句:
5、查询借书证号为“10001”所借书本的本数,显示借书证号和借书本数,并按借书证号升序排序。(4分)
请粘贴T-SQL查询语句:
三、填空题(每空2分,共10分)
1、读者还书存储过程:ReturnBook的创建,若读者没有借阅此书,则显示‘对不起,你没有借阅此书,故而无法进行此次还书操作,请核实!’信息。
use Library
go
create  _____________________
@no char(10),@bid char(10)
as
if not exists(_________________________________________________________)
begin
    print'对不起,你没有借阅此书,故而无法进行此次还书操作,请核实!'
end
2、在借阅表中创建一个触发器:tri_Book,若要借的书已无库存,则无法进行借书操作,即无法在‘借阅表’中插入记录。