2026年sql初级考试题及答案_第1页
2026年sql初级考试题及答案_第2页
2026年sql初级考试题及答案_第3页
2026年sql初级考试题及答案_第4页
2026年sql初级考试题及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2026年sql初级考试题及答案一、单项选择题(每题2分,共20分)1.以下关于SQL的描述中,错误的是()A.SQL是结构化查询语言(StructuredQueryLanguage)的缩写B.SQL是关系型数据库的标准操作语言C.不同数据库厂商的SQL实现完全一致,无需兼容处理D.SQL支持数据查询、定义、操作和控制答案:C解析:不同数据库厂商(如MySQL、Oracle、SQLServer)的SQL实现存在部分差异,例如函数语法、事务控制语句等,因此实际开发中需考虑兼容性。2.若要确保表中某字段的值在插入时不重复且非空,应使用的约束是()A.PRIMARYKEYB.FOREIGNKEYC.UNIQUED.CHECK答案:A解析:PRIMARYKEY(主键)约束同时保证字段非空且唯一,UNIQUE(唯一键)允许NULL值(除非显式约束非空),FOREIGNKEY用于外键关联,CHECK用于自定义条件验证。3.执行“SELECTAVG(score)FROMexamWHEREsubject='数学'”时,若“score”字段存在NULL值,以下描述正确的是()A.NULL值会被视为0参与计算B.NULL值会被自动排除,仅计算非NULL值的平均值C.语句会报错,因为AVG函数不支持NULL值D.所有NULL值会被替换为当前行的其他字段值后计算答案:B解析:AVG(平均值)、SUM(求和)等聚合函数会自动忽略NULL值,仅统计非NULL的有效数据;COUNT()统计所有行(包括NULL),COUNT(字段名)统计非NULL行。解析:AVG(平均值)、SUM(求和)等聚合函数会自动忽略NULL值,仅统计非NULL的有效数据;COUNT()统计所有行(包括NULL),COUNT(字段名)统计非NULL行。4.以下用于查询表中所有字段的语句,语法正确的是()A.SELECTFROMusersA.SELECTFROMusersB.SELECTALLFROMusersC.SELECTEVERYTHINGFROMusersD.SELECTFIELDS()FROMusersD.SELECTFIELDS()FROMusers答案:A解析:“”是通配符,代表表中所有字段;其他选项均为错误语法。解析:“”是通配符,代表表中所有字段;其他选项均为错误语法。5.若要查询“学生表”中“年龄”大于20岁且“性别”为“女”的学生,正确的WHERE子句是()A.WHEREage>20ORgender='女'B.WHEREage>20ANDgender='女'C.WHEREage>20,gender='女'D.WHERE(age>20)XOR(gender='女')答案:B解析:逻辑与(AND)表示两个条件需同时满足;OR表示满足任意一个条件;XOR表示仅满足其中一个条件;逗号分隔条件为错误语法。6.以下关于JOIN操作的描述中,正确的是()A.INNERJOIN会返回两张表中所有匹配的行,非匹配行也会保留B.LEFTJOIN会返回左表所有行,右表无匹配时用NULL填充C.RIGHTJOIN与LEFTJOIN的结果完全相同D.FULLOUTERJOIN在MySQL中默认支持,无需特殊配置答案:B解析:INNERJOIN仅返回匹配行;LEFTJOIN保留左表所有行,右表无匹配时字段为NULL;RIGHTJOIN是LEFTJOIN的反向;MySQL不直接支持FULLOUTERJOIN,需通过LEFTJOIN和RIGHTJOIN联合查询实现。7.执行“UPDATEemployeeSETsalary=salary1.1WHEREdepartment='研发部'”后,以下描述正确的是()7.执行“UPDATEemployeeSETsalary=salary1.1WHEREdepartment='研发部'”后,以下描述正确的是()A.仅更新“研发部”员工的薪资,其他部门不受影响B.所有员工的薪资都会增加10%C.语句会报错,因为SET子句不能使用表达式D.仅当“salary”字段为NULL时才会更新答案:A解析:WHERE子句过滤“department='研发部'”的行,仅这些行的salary字段会被更新为原值的1.1倍;SET子句支持算术表达式。8.若要统计“订单表”中每个客户的订单数量,且仅显示订单数超过5的客户,正确的语句是()A.SELECTcustomer_id,COUNT()FROMordersGROUPBYcustomer_idWHERECOUNT()>5A.SELECTcustomer_id,COUNT()FROMordersGROUPBYcustomer_idWHERECOUNT()>5B.SELECTcustomer_id,COUNT()FROMordersGROUPBYcustomer_idHAVINGCOUNT()>5B.SELECTcustomer_id,COUNT()FROMordersGROUPBYcustomer_idHAVINGCOUNT()>5C.SELECTcustomer_id,COUNT()FROMordersWHERECOUNT()>5GROUPBYcustomer_idC.SELECTcustomer_id,COUNT()FROMordersWHERECOUNT()>5GROUPBYcustomer_idD.SELECTcustomer_id,COUNT()FROMordersGROUPBYcustomer_idANDCOUNT()>5D.SELECTcustomer_id,COUNT()FROMordersGROUPBYcustomer_idANDCOUNT()>5答案:B解析:GROUPBY用于分组,HAVING子句用于过滤分组后的结果(WHERE用于过滤行,不能直接使用聚合函数);聚合函数需在HAVING中使用。9.以下关于索引的描述中,错误的是()A.索引可以加快查询速度,但可能降低插入/更新的效率B.主键会自动创建索引C.唯一键不会自动创建索引D.索引过多可能导致数据库存储空间占用增加答案:C解析:主键(PRIMARYKEY)和唯一键(UNIQUE)都会自动创建索引(主键为聚簇索引,唯一键为非聚簇索引);索引通过额外存储实现快速查找,因此会增加空间占用,且插入/更新时需维护索引,可能影响性能。10.以下事务特性中,“确保事务执行要么全部成功,要么全部回滚”对应的是()A.原子性(Atomicity)B.一致性(Consistency)C.隔离性(Isolation)D.持久性(Durability)答案:A解析:原子性(A)保证事务的不可分割;一致性(C)保证数据状态合法;隔离性(I)防止事务间干扰;持久性(D)保证提交后数据永久保存。二、填空题(每空2分,共20分)1.创建表时,用于指定字段默认值的关键字是__________。答案:DEFAULT2.插入数据到表中的SQL语句关键字是__________。答案:INSERT3.若要删除表中所有数据但保留表结构,应使用__________语句(填写完整命令)。答案:TRUNCATETABLE表名(注:实际答题需替换“表名”为具体表名,此处为示例)4.计算表中记录行数的聚合函数是__________。答案:COUNT5.左连接的SQL关键字组合是__________。答案:LEFTJOIN6.用于去除查询结果中重复行的关键字是__________。答案:DISTINCT7.若要获取当前系统日期,MySQL中使用的函数是__________,SQLServer中使用的函数是__________(需分别填写)。答案:CURDATE();GETDATE()8.分组查询中,用于指定分组依据的关键字是__________。答案:GROUPBY9.子查询需要用__________括起来(填写符号)。答案:()(圆括号)三、简答题(每题6分,共30分)1.简述主键(PRIMARYKEY)和唯一键(UNIQUE)的区别。答案:主键(PRIMARYKEY)和唯一键(UNIQUE)均用于保证字段值的唯一性,但存在以下区别:主键不允许NULL值,唯一键允许单个NULL值(不同数据库对唯一键中NULL的处理可能不同,如MySQL允许一个NULL,Oracle不允许);一个表只能有一个主键,但可以有多个唯一键;主键自动创建聚簇索引(如MySQL的InnoDB引擎),唯一键自动创建非聚簇索引;主键通常用于标识记录的唯一性(如用户ID),唯一键用于辅助约束(如邮箱、手机号)。2.说明WHERE子句与HAVING子句的区别。答案:作用对象不同:WHERE用于过滤原始表中的行,在分组(GROUPBY)前执行;HAVING用于过滤分组后的结果,在分组后执行。可用条件不同:WHERE不能直接使用聚合函数(如COUNT、SUM);HAVING可以使用聚合函数作为过滤条件。执行顺序不同:SQL语句执行顺序为FROM→WHERE→GROUPBY→HAVING→SELECT→ORDERBY,因此WHERE先于HAVING生效。3.解释内连接(INNERJOIN)与左连接(LEFTJOIN)的区别,并举例说明。答案:内连接(INNERJOIN)仅返回两张表中满足连接条件的行,非匹配行被排除。例如,学生表(stu)和成绩表(sc)通过“stu.id=sc.stu_id”连接,内连接仅返回有成绩记录的学生。左连接(LEFTJOIN)返回左表的所有行,右表中无匹配的行用NULL填充。例如,左表为学生表,右表为成绩表,左连接会返回所有学生,即使某些学生没有成绩记录(此时成绩表字段为NULL)。4.简述索引的优点和缺点。答案:优点:加快查询速度:通过索引树结构快速定位数据,减少全表扫描的IO消耗;优化排序和分组:索引已排序,GROUPBY或ORDERBY时可直接利用索引顺序,避免额外排序操作;强制数据唯一性:主键或唯一键索引可保证字段值的唯一性。缺点:增加存储开销:索引需要额外的存储空间(如B+树结构),表数据量大时索引文件可能占较大空间;降低写操作效率:插入、更新、删除数据时需同时维护索引,可能导致操作延迟;过度索引可能影响性能:过多索引会增加数据库维护负担,部分索引可能很少被使用,造成资源浪费。5.什么是事务的ACID特性?分别解释其含义。答案:ACID是事务的四大特性,确保数据库操作的可靠性:原子性(Atomicity):事务是一个不可分割的操作单元,要么全部执行成功,要么全部回滚(如转账操作中扣款和入账必须同时完成);一致性(Consistency):事务执行前后,数据库从一个合法状态转换到另一个合法状态(如账户总金额在转账前后保持不变);隔离性(Isolation):多个并发事务之间互不干扰,一个事务的中间状态不会被其他事务可见(通过锁或MVCC实现);持久性(Durability):事务提交后,对数据的修改会永久保存到数据库,即使系统崩溃也不会丢失(通过日志文件实现)。四、综合题(共30分)假设某教育机构数据库包含以下三张表:学生表(stu_info)字段:stu_id(学生ID,主键,INT)、stu_name(姓名,VARCHAR(50))、gender(性别,CHAR(1),'男'或'女')、birth_date(出生日期,DATE)、enroll_year(入学年份,INT)。课程表(course_list)字段:course_id(课程ID,主键,INT)、course_name(课程名,VARCHAR(50))、credit(学分,TINYINT)、teacher(授课教师,VARCHAR(30))。成绩表(score_records)字段:record_id(记录ID,主键,INT)、stu_id(学生ID,外键,关联stu_info.stu_id)、course_id(课程ID,外键,关联course_list.course_id)、score(成绩,DECIMAL(5,2))、exam_date(考试日期,DATE)。请根据以上表结构,完成以下SQL语句编写:1.(3分)查询2023年入学(enroll_year=2023)、性别为“女”的学生姓名和出生日期,按出生日期从早到晚排序(oldestfirst)。答案:SELECTstu_name,birth_dateFROMstu_infoWHEREenroll_year=2023ANDgender='女'ORDERBYbirth_dateASC;2.(4分)计算“高等数学”课程的平均成绩,要求结果保留2位小数,且仅统计2024年1月1日后考试(exam_date>'2024-01-01')的记录。答案:SELECTROUND(AVG(score),2)ASavg_scoreFROMscore_recordssrJOINcourse_listclONsr.course_id=cl.course_idWHEREcl.course_name='高等数学'ANDsr.exam_date>'2024-01-01';3.(5分)查询所有选了“大学英语”课程的学生姓名、课程名和成绩,按成绩从高到低排序(若成绩相同,按姓名升序排序)。答案:SELECTsi.stu_name,cl.course_name,sr.scoreFROMscore_recordssrJOINstu_infosiONsr.stu_id=si.stu_idJOINcourse_listclONsr.course_id=cl.course_idWHEREcl.course_name='大学英语'ORDERBYsr.scoreDESC,si.stu_nameASC;4.(6分)统计每门课程的选修人数及平均成绩(显示课程名、选修人数、平均成绩),要求仅显示平均成绩大于等于80分的课程。答案:SELECTcl.course_name,COUNT(DISTINCTsr.stu_id)ASstudent_count,ROUND(AVG(sr.score),2)ASavg_score

温馨提示

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

评论

0/150

提交评论