SQL期末考试大题.docx
《SQL期末考试大题.docx》由会员分享,可在线阅读,更多相关《SQL期末考试大题.docx(7页珍藏版)》请在冰豆网上搜索。
二、程序阅读题(15分)
11、说明下述各个通配符表达式的含义(10分)
(1)Like'k%'
(2)Like'_ing' (3)Like'[kw]%'
(4)Like'[a-e]n' (5)Like'k[^i]%'
答:
(1)匹配任意长度的字符,甚至包括零;
(2)一次只能匹配一个任意字符;
(3)匹配指定范围内的任意单个字符;
(4)匹配a—e中的任意单个字符;
(5)匹配不属于指定范围内的任意单个字符
2、说明下述语句作用(5分)
CREATETRIGGERemployee_update
ONemployeesforupdate
AS
IFupdate(employeeid)
BEGIN
rollbacktran
END
答:
阻止用户修改Employees表中的EmployeeID列
三、T-SQL编程题(共2题,共65分)
1、T-SQL函数编程(10分)
声明1个变量存放字符串“Informationengineeringcollege”,要对其进行如下操作并使用print输出各个操作的结果:
将该字符串全部转换为小写并进行输出;输出整个字符串的长度;提取左边2个字符进行输出;将“college”字串用“institute”。
答;declare@tempvarcha(50)
set@temp=’Informationengineeringcollege’
PrintLower(@temp)
Printlen(@temp)
Printleft(@temp,2)
Printreplace(@temp,’college’,’institute’)
2、T-SQL综合编程(55分)
有下述3张表结构(英文为相应的表名或者字段名,中文为备注):
CARD借书卡表:
CNO卡号,NAME姓名,CLASS班级
BOOKS 图书表:
BNO书号,BNAME书名,AUTHOR作者,PRICE单价,
QUANTITY库存册数
BORROW 借书记录表:
CNO借书卡号,BNO书号,RDATE还书日期
备注:
限定每人每种书只能借一本;库存册数随借书、还书而改变。
要求使用T-SQL语句实现如下处理:
1、写出建立BORROW表、BOOK表、Card表的SQL语句,要求定义主键完整性约束和外键完整性约束。
(10分)
CREATETABLEBORROW(
CNOintFOREIGNKEYREFERENCESCARD(CNO),
BNOintFOREIGNKEYREFERENCESBOOKS (BNO),
RDATEdatetime,
PRIMARYKEY(CNO,BNO)
)
2、找出借书超过5本的读者,输出借书卡号及所借图书册数。
(5分)
SelectCNO,借图书册数=count(*)
fromBORROW
groupbyCNO
HAVINGCOUNT(*)>5
3、查询借阅了"水浒"一书的读者,输出姓名及班级。
(5分)
Selectc.name,c.classfromcardcinnerjoinborrowbono=oinnerjoinbookskonb.bno=k.bnowherek.bname=’水浒’
4、查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
(5分)
Selectcno,bno,rdate
fromborrow
whererdate>getdate()
5、查询书名包括"网络"关键词的图书,输出书号、书名、作者。
(5分)
Selectbno,bname,author
frombooks
wherebnamelike‘%网路%’
6、查询现有图书中价格最高的图书,输出书名及作者。
(5分)
Selectbno,author
frombooks
wherepricein(selectmax(price)frombooks)
7、查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。
(5分)
SELECTa.CNO
FROMBORROWa,BOOKSb'
ANDNOTEXISTS(
WHEREa.BNO=b.BNOANDb.BNAME='计算方法
SELECT*FROMBORROWaa,BOOKSbb
WHEREaa.BNO=bb.BNO
ANDbb.BNAME='计算方法习题集'
ANDaa.CNO=a.CNO)
ORDERBYa.CNODESC
8、从BOOKS表中查找当前无人借阅的图书记录。
(5分)
SELECTBNO,BNAMEFROMBOOKSa
WHERENOTEXISTS(
SELECT*FROMBORROW
WHEREBNO=a.BNO)
10、查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。
(5分)
SELECTa.CNO
FROMBORROWa,BOOKSb
WHEREa.BNO=b.BNO
ANDb.BNAMEIN('计算方法','组合数学')
GROUPBYa.CNO
HAVINGCOUNT(*)=2
ORDERBYa.CNODESC
三、T-SQL编程题(共2题,共60分)
1、写出下述T-SQL语句的输出结果(10分)
Declare@tempvarchar(50)
Set@temp='Informationengineeringcollege'
PrintRtrim(Ltrim(@temp))
PrintUPPER(@TEMP)
PrintCast(Len(@temp)aschar(4))
PrintLeft(@temp,6)
答:
Informationengineeringcollege
INFORMATIONENGINEERINGCOLLEGE
34
ollege
2、T-SQL综合编程(50分)
有下述3张表结构(英文为相应的表名或者字段名,中文为备注):
CARD借书卡表:
CNO卡号,NAME姓名,CLASS班级
BOOKS 图书表:
BNO书号,BNAME书名,AUTHOR作者,PRICE单价,
QUANTITY库存册数
BORROW 借书记录表:
CNO借书卡号,BNO书号,RDATE还书日期
备注:
限定每人每种书只能借一本;库存册数随借书、还书而改变。
要求使用T-SQL语句实现如下处理:
2、假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。
(5分)
altertableBOOKSaddconstrainta_BNOprimarykey(BNO)
3、对CARD表做如下修改:
将NAME最大列宽增加到10个字符(假定原为6个字符)(5分)。
altertableCARDaltercolumnNAMEchar(10)
6、将"C01"班同学所借图书的还期都延长一周。
(5分)
UPDATEbSETRDATE=DATEADD(Day,7,b.RDATE)
FROMCARDa,BORROWb
WHEREa.CNO=b.CNO
ANDa.CLASS='C01'
7、从BOOKS表中删除当前无人借阅的图书记录。
(5分)
DELETEBNO,BNAMEFROMBOOKSa
WHERENOTEXISTS(
SELECT*FROMBORROW
WHEREBNO=a.BNO)
9、建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。
(5分)
CREATEVIEWV_VIEW
AS
SELECTa.NAME,b.BNAME
FROMBORROWab,CARDa,BOOKSb
WHEREab.CNO=a.CNO
ANDab.BNO=b.BNO
ANDa.CLASS=’力01'
1.转移到新服务器的具体步骤:
①在原数据库服务器上分离benet数据库②将benet数据库拷贝到newdbsrv上③在newdbsrv上附加benet数据库
2.sql2005中数据库名称以及作用
master数据库:
记录sqlserver所有系统级别的信息
model数据库:
创建数据库的模板
msdb数据库:
提供sqlserveragent工作的信息
tempdb数据库:
存放临时对象或中间结果
3.视图和表的区别是什么?
视图的优点是什么?
优点:
简化性、安全性、逻辑数据独立性
①视图是已经编译好的SQL语句是基于SQL语句的结果集的可视化表,而表不是。
②视图没有实际的物理数据记录,而表有。
③表示内容,视图是窗口。
④表占用物理空间而视图不占用,视图只是逻辑概念的存在,表可以及时对它进行修改,视图只能用创建的语句修改⑤视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。
从安全角度来说,视图可以防止用户接触数据表,而不知道标的结构。
⑥表属于全剧模式,是实表。
视图属于局部模式,是虚表。
⑦视图的建立和删除只影响视图本身,不影响对应的基本表。
4.使用索引的优缺点
优点:
①创建唯一索引,可以保证数据库表中每一行数据的唯一性。
②大大加快数据的查询速度。
③实现数据的参考完整性,可以加速表和表之间的连接。
④同样可以显著减少查询中分组和排序的时间。
⑤提高系统的性能。
缺点:
①创建索引和维护索引要耗费时间,②索引需要占用磁盘空间,③降低了数据的维护速度。
5.存储过程及其优点
SQLServer为了实现特定任务,而将一些需要多次调用的固定操作语句编写成程序段,这些程序段存储在服务器上由数据库服务器通过子程序调用①加快系统运行速度②封装复杂的数据库操作,简化操作流程③实现模块化的程序设计,改进应用程序的可维护性④增强代码安全性⑤降低网络流量
6.sqlserver版本及特点
①企业版:
提供了企业级可扩展性、数据仓库、安全、高级分析和报表支持,使其有更加坚固的服务器和执行大规模在线事务理
②标准版:
易用性和可管理特性
③商业智能版:
强大的数据集成功能以及增强的集成管理
④Web版:
总拥有成本低
⑤开发版:
应用和数据库可以很容易升级到企业版
⑥精简版:
保护数据、性能卓越
7.char类、varchar类型和nchar类型有何区别?
float类型和decimal区别?
①char类型是一个字节char(8)只能存8字母
nchar类型是双字节nchar(8)能存8个汉字
varchar类型是可变的、即如果varchar(8)你只存了一个字母、在内存中只占一个字节
②float是浮点数,不能指定小数位。
decimal是精确数,可以指定精度。
8.date类型、datetime类型有何区别?
money类型和float类型区别?
①DATETIME类型用在你需要同时包含日期和时间信息的值时。
支持的范围是'1000-01-0100:
00:
00'到'9999-12-3123:
59:
59'。
DATE类型用在你仅需要日期值时,