版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQLServer经典笔试真题及详细答案(企业通用版)整套试题贴合职场实际开发场景,涵盖SQLServer基础语法、复杂查询、内置函数、索引优化、事务锁、数据库设计等核心考点,难度由浅入深,适合初级、中级开发岗位笔试使用,答案详细带解析,可直接用于刷题、备考。一、单选题(10题,每题3分,共30分)1.SQLServer中,以下不属于DML(数据操作语言)的是?()A.SELECTB.UPDATEC.DELETED.ALTER答案:D解析:DML主要用于操作数据表数据,包含SELECT、INSERT、UPDATE、DELETE;ALTER属于DDL(数据定义语言),用于修改数据库、表、字段结构。2.在SQLServer中,用来去除字符串首尾空格的函数是?()A.LTRIM()B.RTRIM()C.TRIM()D.REPLACE()答案:C解析:LTRIM()去除左侧空格,RTRIM()去除右侧空格,TRIM()可直接去除字符串首尾所有空格;REPLACE()为字符串替换函数。3.以下关于NULL值的描述,正确的是?()A.NULL等于0B.NULL等于空字符串C.NULL代表未知值,不与任何值相等D.NULL可以直接用=判断答案:C解析:SQLServer中NULL是未知、空值,既不等于0也不等于空字符串,判断NULL必须使用ISNULL/ISNOTNULL,不能使用=、!=运算符。4.对数据表进行分页查询,SQLServer2012及以上版本推荐使用的关键字是?()A.TOPB.ROW_NUMBER()C.OFFSETFETCHD.LIMIT答案:C解析:LIMIT是MySQL分页关键字,SQLServer2012新增OFFSETFETCH专用分页语法,简洁高效;ROW_NUMBER()是传统分页方式,OFFSETFETCH为官方推荐写法。5.以下哪种索引查询效率最高、检索速度最快?()A.聚集索引B.非聚集索引C.唯一索引D.全文索引答案:A解析:聚集索引的叶子节点就是数据表真实数据,查询数据无需二次查找;非聚集索引仅存储索引键和数据地址,需要回表查询,效率低于聚集索引。一张表仅能有一个聚集索引。6.SQLServer中,事务的四大特性不包括以下哪项?()A.原子性B.一致性C.时效性D.持久性答案:C解析:事务四大特性(ACID):原子性、一致性、隔离性、持久性,无时效性。7.想要查询字段中包含“测试”的所有数据,正确的模糊查询写法是?()A.WHEREname='%测试%'B.WHEREnameLIKE'%测试%'C.WHEREnameIN'测试'D.WHEREnameLIKE'测试%'答案:B解析:模糊查询必须搭配LIKE关键字,%为通配符,%测试%代表匹配包含“测试”的所有内容;测试%代表以“测试”开头的内容。8.以下能够实现去重查询的关键字是?()A.DISTINCTB.UNIQUEC.GROUPBYD.ORDERBY答案:A解析:DISTINCT用于查询结果集去重;UNIQUE是字段唯一约束,用于建表限制字段重复;GROUPBY用于分组统计,ORDERBY用于排序。9.SQLServer中,GETDATE()函数的作用是?()A.获取当前系统日期(无时间)B.获取当前系统日期和时间C.获取时间戳D.获取服务器时区答案:B解析:GETDATE()获取当前完整日期时间(yyyy-MM-ddHH:mm:ss);CAST(GETDATE()ASDATE)可单独获取日期。10.内连接(INNERJOIN)的查询特点是?()A.只返回两张表中匹配的数据B.返回左表所有数据,右表匹配数据C.返回右表所有数据,左表匹配数据D.返回两张表所有数据答案:A解析:INNERJOIN:仅返回两表关联字段匹配的数据;LEFTJOIN:左表数据全部保留,右表无匹配显示NULL;RIGHTJOIN反之;FULLJOIN返回两表所有数据。二、多选题(5题,每题4分,共20分,多选、少选、错选不得分)1.以下属于SQLServer约束的有?()A.PRIMARYKEYB.FOREIGNKEYC.NOTNULLD.CHECKE.UNIQUE答案:ABCDE解析:SQLServer常用五大约束:主键、外键、非空、检查、唯一约束,用于保证数据完整性。2.以下可以实现数据排序和分组的关键字有?()A.GROUPBYB.ORDERBYC.HAVINGD.WHERE答案:AB解析:GROUPBY实现分组,ORDERBY实现排序;HAVING用于分组后条件过滤,WHERE用于分组前数据过滤。3.关于事务操作,正确的语句有?()A.BEGINTRANSACTION开启事务B.COMMIT提交事务C.ROLLBACK回滚事务D.SAVETRANSACTION设置保存点答案:ABCD解析:以上均为SQLServer标准事务操作语句,事务执行出错可通过ROLLBACK回滚所有操作,保证数据一致性。4.以下属于聚合函数的是?()A.SUM()B.COUNT()C.MAX()D.AVG()E.SUBSTRING()答案:ABCD解析:SUM求和、COUNT计数、MAX最大值、AVG平均值均为聚合函数,常搭配GROUPBY使用;SUBSTRING()为字符串截取函数,属于标量函数。5.导致SQL查询效率低的原因有?()A.未建立合适索引B.SELECT*查询所有字段C.大量使用模糊查询%前置匹配D.多余的关联表查询答案:ABCD解析:以上操作均会降低查询性能,前置模糊查询无法走索引,SELECT*会读取冗余数据,增加IO开销。三、简答题(3题,每题5分,共15分)1.简述聚集索引和非聚集索引的核心区别?参考答案:1.数量不同:一张表只能有一个聚集索引,但可以有多个非聚集索引;2.存储结构不同:聚集索引叶子节点存储数据表真实数据,数据物理顺序与索引顺序一致;非聚集索引叶子节点仅存储索引键和数据行地址,不存储完整数据;3.查询效率不同:聚集索引查询无需回表,效率更高;非聚集索引查询到地址后需要回表读取数据,效率略低;4.创建场景不同:主键默认生成聚集索引,普通查询字段适合创建非聚集索引。2.WHERE和HAVING的区别是什么?参考答案:1.执行顺序不同:WHERE在分组(GROUPBY)之前过滤数据,HAVING在分组之后过滤分组结果;2.适用范围不同:WHERE不能使用聚合函数(SUM、COUNT等),HAVING可以使用聚合函数;3.优先级不同:WHERE过滤原始数据,减少分组数据量,效率更高;HAVING仅对分组后的结果筛选。3.什么是死锁?如何避免SQLServer死锁?参考答案:死锁是指两个或多个事务互相占用对方需要的资源,同时等待对方释放资源,导致事务无限阻塞的现象。避免方案:1.统一多表操作的执行顺序,避免交叉锁定;2.缩短事务执行时间,避免事务长时间占用锁;3.合理设置事务隔离级别;4.避免在事务中执行耗时查询、循环操作。四、实操编程题(3题,共35分)准备测试表:学生表(Student):SId(主键),SName(姓名),SAge(年龄),SGender(性别),SClass(班级),SCreateTime(创建时间)成绩表(Score):ScId(主键),SId(学生ID),Subject(科目),Score(分数)1.写出建表语句(含主键、非空约束)(10分)参考答案:PlainText
--创建学生表
CREATETABLEStudent(
SIdINTPRIMARYKEYIDENTITY(1,1),--自增主键
SNameNVARCHAR(20)NOTNULL,--姓名非空
SAgeINT,
SGenderNVARCHAR(5),
SClassNVARCHAR(50),
SCreateTimeDATETIMEDEFAULTGETDATE()--默认当前时间
)
--创建成绩表
CREATETABLEScore(
ScIdINTPRIMARYKEYIDENTITY(1,1),
SIdINTNOTNULL,
SubjectNVARCHAR(30)NOTNULL,
ScoreDECIMAL(5,1)CHECK(Score>=0ANDScore<=100),--分数0-100
--关联学生表外键
FOREIGNKEY(SId)REFERENCESStudent(SId)
)2.基础查询:写出对应SQL语句(15分)(1)查询所有班级为“一班”的学生信息,按年龄降序排序;(2)查询每个班级的学生人数;(3)查询语文科目平均分大于80分的班级。参考答案:PlainText
--(1)查询一班学生,年龄降序
SELECT*FROMStudent
WHERESClass=N'一班'
ORDERBYSAgeDESC
--(2)统计每个班级学生人数
SELECTSClassAS班级,COUNT(SId)AS学生人数
FROMStudent
GROUPBYSClass
--(3)查询语文平均分大于80的班级
SELECTs.SClassAS班级,AVG(sc.Score)AS语文平均分
FROMStudents
JOINScorescONs.SId=sc.SId
WHEREsc.Subject=N'语文'
GROUPBYs.SClass
HAVINGAVG(sc.Score)>803.分页查询:查询学生表第6-10条学生数据(10分)参考答案(SQLServer2012+推荐写法):PlainText
SELECT*FROMStudent
ORDERBYSIdASC
OFFSET5ROWSFETCHNEXT5ROWSONLY解析:OFFSET5跳过前5条数据,FETCHNEXT5ROWSONLY读取后续5条数据,实现6-10条分页。兼容低版本写法:PlainText
SELECT*FROM(
SELECT*,ROW_NUMBER()OVER(ORDERBYSId)ASRowNum
FROMStudent
)ASTemp
WHERERowNumBETWEEN6AND10五、附加优化题(10分)题目:现有一条查询语句SELECT*FROMStudentWHERESNameL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目进度款支付时间商洽函8篇
- 小型企业税务筹划方案绩效考评表
- 能源公司项目投资部风险控制绩效考评表
- 会议讨论事项推进回复函8篇范文
- 答复场地租赁费用异议回复函(7篇)范文
- 就合同履约事宜的沟通函4篇
- 酒店前台行李寄存操作步骤指南
- 2026年商务局事业单位招聘考试国际贸易实务冲刺押题试卷
- 物流公司库存管理绩效评估表
- 设备验收与使用交接说明(7篇范文)
- 轮值主管工作制度
- 起重机施工质量检验记录单梁
- 南瓜的一生教学课件
- 2026年建筑行业绿色材料应用知识测试
- HPV健康科普教学课件
- 长输管道施工安全培训课件
- 行政复议法律文书写作指南
- 2025-2026学年江苏省南京市秦淮区七年级(上)期中数学试卷(含答案)
- 重大医疗安全突发事件应急处置机制和预案
- 高校学生志愿服务管理规范
- 消化道穿孔教学课件
评论
0/150
提交评论