SQL基础考试题库及详细参考答案_第1页
SQL基础考试题库及详细参考答案_第2页
SQL基础考试题库及详细参考答案_第3页
SQL基础考试题库及详细参考答案_第4页
SQL基础考试题库及详细参考答案_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL基础考试题库及详细参考答案考试说明:本题库适用于SQL基础入门考核,涵盖基础语法、查询、函数、联表、子查询、数据库设计等核心知识点,题型包含选择题、填空题、简答题、实操编程题,题目贴合实际工作考试场景,答案附带详细解析。满分:100分考试时长:90分钟一、单项选择题(共20题,每题2分,共40分)1.以下不属于SQL数据操作语言(DML)的语句是()A.SELECTB.UPDATEC.DELETED.CREATE答案:D解析:DML数据操作语言包含查询、新增、修改、删除(SELECT/INSERT/UPDATE/DELETE);CREATE属于DDL数据定义语言,用于创建数据库、数据表、索引等对象。2.在SQL中,用来实现条件筛选的关键字是()A.ORDERBYB.WHEREC.GROUPBYD.HAVING答案:B解析:WHERE用于查询前筛选单条数据条件;ORDERBY为排序,GROUPBY为分组,HAVING用于分组后筛选数据。3.模糊查询匹配任意长度任意字符的通配符是()A._B.%C.*D.#答案:B解析:%匹配0个或多个任意字符;_仅匹配单个任意字符;*和#不属于SQL标准模糊查询通配符。4.以下关于NULL值的描述正确的是()A.NULL等于0B.NULL等于空字符串C.NULL代表未知值D.NULL可以参与任意数值运算答案:C解析:NULL是数据库中特有的未知值,既不等于0,也不等于空字符串,任何数值与NULL运算结果均为NULL。5.对查询结果进行降序排序的关键字是()A.ASCB.DESCC.DISTINCTD.LIMIT答案:B解析:ASC为升序排序(默认),DESC为降序排序;DISTINCT用于去重,LIMIT用于限制查询条数。6.SQL中实现数据去重的关键字是()A.UNIQUEB.DISTINCTC.GROUPBYD.REMOVE答案:B解析:DISTINCT用于查询结果临时去重;UNIQUE是表字段约束,保证字段值唯一,并非查询去重语法。7.以下聚合函数中,可统计非空字段数据条数的是()A.COUNT(*)B.COUNT(字段)C.SUM()D.AVG()答案:B解析:COUNT(字段)统计指定字段非NULL的数据行数;COUNT(*)统计所有行数,包含NULL数据。8.分组查询中,筛选分组后聚合结果的关键字是()A.WHEREB.HAVINGC.IFD.CASE答案:B解析:WHERE在分组前筛选原始数据,不支持聚合函数;HAVING在GROUPBY分组后筛选聚合结果,支持聚合函数。9.内连接查询的关键字是()A.LEFTJOINB.RIGHTJOINC.INNERJOIND.FULLJOIN答案:C解析:INNERJOIN为内连接,只返回两张表中匹配成功的数据;LEFT/RIGHTJOIN为左右外连接,FULLJOIN为全连接。10.以下哪个语句可以删除数据表中所有数据,且不删除表结构()A.DROPTABLEB.DELETEFROMC.TRUNCATED.ALTERTABLE答案:B、C(标准答案优先C)解析:DELETE和TRUNCATE均可删除表数据、保留表结构;TRUNCATE清空速度更快、不记录日志、无法回滚;DROP直接删除数据表和结构。11.为数据表字段添加主键约束的关键字是()A.UNIQUEB.NOTNULLC.PRIMARYKEYD.FOREIGNKEY答案:C解析:PRIMARYKEY主键约束,唯一且非空;UNIQUE唯一约束,允许为空;FOREIGNKEY外键约束。12.MySQL中,用于限制查询结果只显示前5条数据的关键字是()A.TOP5B.LIMIT5C.ROWNUM=5D.FIRST5答案:B解析:MySQL使用LIMIT限制条数;SQLServer使用TOP,Oracle使用ROWNUM。13.以下不属于事务四大特性的是()A.原子性B.一致性C.时效性D.隔离性答案:C解析:事务ACID特性:原子性、一致性、隔离性、持久性,无时效性。14.模糊查询姓名中包含“张”字的正确语句是()A.WHEREname='张'B.WHEREnameLIKE'%张%'C.WHEREnameLIKE'_张_'D.WHEREnameIN'张'答案:B解析:%张%匹配任意位置包含张的字符串;_张_仅匹配前后各一个字符、中间为张的三字姓名。15.SUM()函数的作用是()A.统计行数B.求和C.求平均值D.求最大值答案:B解析:SUM(字段)计算字段数值总和;AVG求平均,MAX求最大值,COUNT统计行数。16.修改数据表结构的SQL语句是()A.UPDATEB.ALTERC.MODIFYD.CHANGE答案:B解析:ALTERTABLE用于修改表结构(增删字段、修改字段类型);UPDATE用于修改表数据。17.左连接查询中,主表是()A.右侧数据表B.左侧数据表C.两张表都是D.无主表答案:B解析:LEFTJOIN左连接以左侧表为主表,保留主表所有数据,匹配附表数据,无匹配则显示NULL。18.以下哪个约束可以保证字段值不能为空()A.UNIQUEB.NOTNULLC.DEFAULTD.CHECK答案:B解析:NOTNULL非空约束,强制字段必须赋值;DEFAULT为默认值约束。19.SQL语句中,查询字段别名的关键字是()A.ASB.FORC.SETD.NAME答案:A解析:AS用于给字段、数据表设置别名,可省略,是标准别名关键字。20.子查询中,用来判断存在匹配数据的关键字是()A.INB.EXISTSC.ANYD.ALL答案:B解析:EXISTS判断子查询是否返回数据,效率高于IN;IN用于匹配集合内数据。二、填空题(共10空,每空2分,共20分)1.SQL分为四大类,分别是DDL、DML、DCL、______。答案:TCL解析:TCL为事务控制语言,用于管理数据库事务(COMMIT、ROLLBACK等)。2.查询数据表中所有字段的通配符是______。答案:*3.分组查询必须满足:SELECT后非聚合字段,必须出现在______子句中。答案:GROUPBY4.数据库事务提交语句是COMMIT,回滚语句是______。答案:ROLLBACK5.右外连接的关键字是______。答案:RIGHTJOIN6.求取字段最小值的聚合函数是______。答案:MIN()7.给字段设置默认值的约束关键字是______。答案:DEFAULT8.Oracle中限制查询行数的伪列是______。答案:ROWNUM9.多条件同时满足使用______关键字,任一条件满足使用OR。答案:AND10.删除数据库的语句是______DATABASE数据库名。答案:DROP三、简答题(共4题,每题5分,共20分)1.简述DELETE和TRUNCATE的区别。参考答案:(1)执行方式:DELETE属于DML语句,逐行删除数据,记录日志,支持事务回滚;TRUNCATE属于DDL语句,直接清空数据页,不记录详细日志,无法回滚。(2)效率:TRUNCATE清空速度远快于DELETE,适合大批量数据清空。(3)自增主键:TRUNCATE会重置自增主键,DELETE删除后自增主键继续递增。(4)适用场景:DELETE适合精准删除部分数据;TRUNCATE适合清空全表数据。2.简述WHERE和HAVING的区别。参考答案:(1)执行顺序:WHERE在分组(GROUPBY)之前筛选原始数据;HAVING在分组之后筛选聚合结果。(2)函数支持:WHERE不支持聚合函数(SUM、COUNT等);HAVING支持聚合函数筛选。(3)使用场景:普通字段条件筛选用WHERE,分组后的统计结果筛选用HAVING。3.简述主键、唯一索引的区别。参考答案:(1)非空性:主键约束字段不允许为空;唯一索引/唯一约束允许存在NULL值。(2)数量限制:一张表只能有一个主键;可以创建多个唯一索引。(3)索引特性:主键默认创建聚集索引;唯一索引为非聚集索引。4.简述左连接、内连接的使用场景差异。参考答案:(1)内连接(INNERJOIN):只返回两张表中匹配成功的数据,适用于只需要关联数据的场景。(2)左连接(LEFTJOIN):保留左表所有数据,右表无匹配数据显示NULL,适用于需要统计主表全部数据、关联附表补充信息的场景。四、实操编程题(共2题,每题10分,共20分)基础数据表结构(统一使用)学生表student(stu_id学生主键,stu_name姓名,stu_age年龄,stu_gender性别,class_id班级编号)班级表class(class_id班级主键,class_name班级名称,teacher班主任)1.编写SQL语句,查询所有学生的姓名、年龄、所属班级名称,要求显示所有学生信息,无班级的学生也需展示。参考答案:PlainText

SELECT

s.stu_name,

s.stu_age,

c.class_name

FROMstudents

LEFTJOINclasscONs.class_id=c.class_id;解析:需求要求保留所有学生数据,因此使用左连接,以学生表为主表,关联班级表,无班级数据时班级名称显示NULL。2.编写SQL语句,统计每个班级的学生人数,显示班级名称和对应人数,筛选出学生人数大于3人的班级。参考答案:PlainText

SELECT

c.class_name,

COUNT(s.stu_id)ASstudent_num

FROMclassc

LEFTJOINstudentsONc.class_id=s.class_id

GROUPBYc.class_name

HAVINGCOUNT(s.stu_id)>3;解析:1.按班级名称分组统计学生数量;2.分组后的聚合结果筛选需使用HAVING;3.使用COUNT(stu_i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论