还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
sql语句面试题及答案
一、文档说明本文档整理了SQL语句面试中高频出现的典型题目,涵盖单项选择、多项选择、判断、简答四种题型,内容聚焦SQL基础语法、查询优化、数据操作、函数应用等核心知识点,旨在帮助读者系统梳理SQL知识体系,提升面试准备效率
二、单项选择题(共30题,每题1分)(注每题只有一个正确答案,将正确选项字母填入括号)
1.SQL语言的全称是()A.Structured QueryLanguageB.Simple QueryLanguageC.Special QueryLanguageD.Standard QueryLanguage
2.在SQL中,用于查询数据的命令是()A.INSERTB.SELECTC.UPDATED.DELETE
3.以下哪个不是SQL的常用数据类型()A.INTB.VARCHARC.ARRAYD.DATE
4.执行SELECT10/3后,结果是()A.
3.333第1页共14页B.3C.
3.0D.
45.要查询表中所有不重复的记录,应使用()A.DISTINCTB.UNIQUEC.NO_DUPLICATED.DEDUPLICATE
6.WHERE子句用于()A.筛选查询结果B.对查询结果排序C.分组统计数据D.定义表结构
7.以下SQL语句中,语法正确的是()A.SELECT*FROM tableWHERE id=1AND name=张三B.SELECT*FROM tableWHERE id=1OR name=张三LIMIT10OFFSET5C.SELECT*FROM tableWHERE id=1OR name=张三D.以上都正确
8.关于JOIN操作,以下说法错误的是()A.INNER JOIN只返回两个表中匹配的行B.LEFT JOIN返回左表所有行,右表无匹配则为NULLC.RIGHT JOIN返回右表所有行,左表无匹配则为NULLD.FULL JOIN在所有数据库中都支持(如MySQL)
9.聚合函数COUNT*的作用是()第2页共14页A.计算非NULL值的数量B.计算所有行的数量(包括NULL值)C.计算指定列的最大值D.计算指定列的总和
10.执行SELECT AVGscoreFROM studentsWHERE class_id=3,该语句的作用是()A.查询班级3中所有学生的成绩总和B.查询班级3中学生的平均成绩C.查询班级3中学生的最高成绩D.查询班级3中学生的最低成绩
11.要按class_id分组统计每个班级的学生数量,正确的SQL是()A.SELECT class_id,COUNT*AS student_count FROM studentsGROUP BYclass_idB.SELECT class_id,COUNT*AS student_count FROM studentsORDER BYclass_idC.SELECT class_id,SUM*AS student_count FROM studentsGROUP BYclass_idD.SELECT class_id,COUNT*AS student_count FROM studentsHAVING class_id
012.HAVING子句与WHERE子句的区别是()A.WHERE用于筛选行,HAVING用于筛选分组后的结果B.WHERE用于筛选分组后的结果,HAVING用于筛选行C.WHERE可使用聚合函数,HAVING不可D.两者无区别第3页共14页
13.子查询中使用EXISTS关键字的作用是()A.判断子查询结果是否为空B.计算子查询结果的数量C.比较子查询结果与主查询列D.合并子查询结果到主查询
14.以下哪个不是SQL的DDL语句()A.CREATE TABLEB.ALTER TABLEC.DROP TABLED.SELECT
15.执行ALTER TABLEstudents ADDCOLUMN age INT;的作用是()A.查询学生表的age列B.修改学生表的age列数据类型C.为学生表添加age列D.删除学生表的age列
16.索引的主要作用是()A.加速查询B.提高插入性能C.减少存储空间D.自动优化表结构
17.以下关于主键(PRIMARY KEY)的说法,错误的是()A.主键值唯一且非NULLB.一个表只能有一个主键C.主键可由多个列组合而成D.主键不能被其他表引用第4页共14页
18.事务的ACID特性不包括()A.Atomicity(原子性)B.Consistency(一致性)C.Isolation(隔离性)D.Durability(动态性)
19.在SQL中,NULL值与0的区别是()A.两者完全相同B.NULL表示未知值,0表示数值0C.NULL占用存储空间,0不占用D.以上都不对
20.要查询students表中name以“张”开头的记录,应使用()A.SELECT*FROM studentsWHERE nameLIKE张%B.SELECT*FROMstudentsWHERE name=张%C.SELECT*FROMstudentsWHERE nameREGEXP^张D.SELECT*FROMstudentsWHERE name=张_
21.ORDER BY子句默认的排序方式是()A.升序(ASC)B.降序(DESC)C.自定义排序D.无顺序
22.以下哪个不是SQL的DML语句()A.INSERTB.UPDATEC.DELETED.CREATE第5页共14页
23.执行UPDATE studentsSET score=90WHERE class_id=2;后,作用是()A.将class_id=2的学生成绩设为90B.查询class_id=2的学生成绩C.删除class_id=2的学生记录D.为class_id=2的学生添加score列
24.关于UNION和UNION ALL的区别,正确的是()A.UNION去除重复行,UNION ALL保留所有行B.UNION保留重复行,UNION ALL去除重复行C.UNION用于合并列,UNION ALL用于合并行D.两者无区别
25.LIKE操作符中,通配符“_”的作用是()A.匹配任意多个字符B.匹配单个字符C.匹配数字D.匹配字母
26.以下哪个函数用于获取当前日期()A.NOWB.DATEC.CURRENT_TIMED.TIME
27.要删除表中所有数据但保留表结构,应使用()A.TRUNCATE TABLEstudentsB.DELETE FROMstudentsC.DROP TABLEstudents第6页共14页D.DELETE students
28.关于外键(FOREIGN KEY)的说法,正确的是()A.外键用于确保数据唯一性B.外键必须引用其他表的主键C.外键值不能为NULLD.一个表只能有一个外键
29.子查询中使用ANY关键字时,条件成立的情况是()A.子查询结果中至少有一个满足条件B.子查询结果中所有都满足条件C.子查询结果为空D.子查询结果与主查询列相等
30.在SQL中,LIMIT5OFFSET10的作用是()A.查询前5条记录B.查询跳过前10条,取5条C.查询后5条记录D.查询第10到15条记录
三、多项选择题(共20题,每题2分)(注每题有多个正确答案,多选、少选、错选均不得分)
1.以下属于SQL常用查询命令的有()A.SELECTB.FROMC.WHERED.JOIN
2.关于SQL中的JOIN类型,正确的有()A.INNER JOIN第7页共14页B.LEFT JOINC.RIGHT JOIND.FULL JOIN
3.以下属于SQL聚合函数的有()A.SUMB.MAXC.MIND.AVG
4.以下哪些操作属于DML语句()A.INSERTB.UPDATEC.DELETED.CREATE INDEX
5.子查询的类型包括()A.标量子查询B.列子查询C.行子查询D.表子查询
6.索引的优点有()A.加速查询B.加速排序C.提高插入性能D.减少存储空间
7.事务的ACID特性包括()A.原子性第8页共14页B.一致性C.隔离性D.持久性
8.以下关于GROUP BY的描述,正确的有()A.用于按列分组B.分组后可使用聚合函数C.SELECT列表中的非聚合列必须出现在GROUP BY中D.HAVING子句用于筛选分组后的结果
9.以下属于SQL约束的有()A.PRIMARY KEYB.FOREIGN KEYC.UNIQUED.DEFAULT
10.要查询students表中age在18到22之间的学生,可使用的条件有()A.age BETWEEN18AND22B.age=18AND age=22C.age18AND age22D.ageIN18,19,20,21,
2211.关于DISTINCT关键字,正确的有()A.用于去除重复行B.可作用于多个列(如DISTINCT name,age)C.与GROUP BY效果完全相同D.需放在SELECT后、列名前
12.以下哪些是SQL中常用的字符串函数()第9页共14页A.CONCATB.SUBSTRINGC.LENGTHD.UPPER
13.执行DROP TABLEstudents;后,会发生的情况有()A.表结构被删除B.表中数据被删除C.表的索引被删除D.表的外键约束被保留
14.关于TRUNCATE和DELETE的区别,正确的有()A.TRUNCATE删除表数据更快B.TRUNCATE会重置自增主键C.DELETE可带WHERE条件删除部分数据D.TRUNCATE属于DDL,DELETE属于DML
15.以下关于UNION和UNION ALL的说法,正确的有(A.UNION会对结果去重,UNION ALL保留所有行B.UNION要求两个查询的列数和数据类型一致C.UNION ALL的执行效率高于UNIOND.两者都可合并多个SELECT语句的结果
16.以下哪些是SQL中常见的错误()A.WHERE子句使用聚合函数B.GROUP BY子句中包含非聚合列C.INSERT语句列名与值的数量不匹配D.SELECT语句中使用聚合函数和非聚合列(无GROUP BY)
17.关于索引的说法,正确的有()第10页共14页A.主键会自动创建索引B.索引会影响UPDATE性能C.对频繁查询的列创建索引更有效D.索引可提高排序效率
18.以下属于SQL中控制流函数的有()A.IFNULLB.CASEC.COALESCED.SUBSTRING_INDEX
19.关于自连接(SELF JOIN)的应用场景,正确的有()A.处理层级数据(如部门表中查询上下级关系)B.比较同一表中不同列的数据C.合并同一表的多个结果集D.替代子查询实现多表关联
20.以下关于SQL注入的防范措施,正确的有()A.使用参数化查询B.过滤输入数据中的特殊字符C.限制数据库用户权限D.避免直接拼接SQL语句
四、判断题(共20题,每题1分)(注对的打“√”,错的打“×”)
1.SQL语句不区分大小写()
2.WHERE子句可以直接使用聚合函数()
3.COUNT1比COUNT*执行效率更高()
4.ORDER BY子句默认按降序排列()第11页共14页
5.一个表只能有一个主键()
6.LEFT JOIN会返回左表所有行,即使右表无匹配()
7.TRUNCATE语句可以回滚()
8.SQL中的NULL值与空字符串()完全相同()
9.子查询必须用括号括起来()
10.HAVING子句必须与GROUP BY一起使用()
11.LIMIT子句在MySQL和SQL Server中的语法完全相同()
12.外键约束可以引用其他表的非主键列()
13.UNIQUE约束不允许重复值,但允许NULL()
14.SQL中的JOIN操作至少需要两个表()
15.EXISTS子查询的效率通常高于IN子查询()
16.ALTER TABLE语句可以修改表名()
17.事务中如果有一个操作失败,整个事务会回滚()
18.LIKE张_可以匹配“张三”,但不能匹配“张”()
19.索引会增加表的存储空间()
20.SELECT*FROMstudentsWHERE age20ORDER BYage LIMIT10会返回年龄大于20的前10名学生()
五、简答题(共2题,每题5分)
1.简述SQL中GROUP BY子句的作用及使用注意事项答案GROUP BY用于按指定列分组,对每组数据执行聚合函数(如SUM、AVG等);注意事项
1.SELECT列表中的非聚合列必须全部包含在GROUP BY子句中;
2.聚合函数(如COUNT、SUM)只能在SELECT或HAVING子句中使用;
3.与HAVING配合筛选分组后的结果(HAVING用于过滤分组,WHERE用于过滤行)
2.说明索引的作用及可能的负面影响,工程中如何合理使用索引?第12页共14页答案作用加速查询和排序操作;负面影响降低插入/更新/删除性能,增加存储空间合理使用
1.对频繁查询的列(如WHERE、JOIN条件)创建索引;
2.避免在小表上建索引;
3.对唯一值少的列(如性别)不建议建索引;
4.组合索引需注意顺序(选择性高的列放前面);
5.定期维护索引(如重建碎片化索引)
六、参考答案单项选择题1-5A BC B A6-10A DD BB11-15A A A DC16-20A BD A B21-25A DAAB26-30ABBAB多项选择题1ABCD2ABCD3ABCD4ABC5ABCD6AB7ABCD8ABCD9ABCD10ABD11ABD12ABCD13ABC14ABCD15ABCD16ABCD17ABCD18ABC19AB20ABCD判断题1√2×3×4×5√6√7×8×9√10×11×12×13√14√15√16×17√18√19√20√第13页共14页文档说明本文档题目覆盖SQL核心考点,答案简洁准确,可直接用于面试复习或知识巩固实际应用中,建议结合具体数据库(如MySQL、SQL Server)的语法差异进一步学习第14页共14页。
个人认证
优秀文档
获得点赞 0