版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL增删改查面试题及详细答案(实战版)说明:本套题库聚焦面试高频的SQL基础CRUD(增、删、改、查)核心考点,贴合企业真实面试场景,包含基础题、实操题、易错点考题,所有答案均带可直接运行的SQL示例、解析和注意事项,适合面试刷题、技术考核。默认测试表:user_info(用户表),下文所有题目均基于该表结构实操PlainText
--基础测试表结构
CREATETABLEuser_info(
idINTPRIMARYKEYAUTO_INCREMENTCOMMENT'用户ID,主键自增',
usernameVARCHAR(30)NOTNULLCOMMENT'用户名',
ageINTDEFAULT0COMMENT'年龄',
genderVARCHAR(10)DEFAULT'未知'COMMENT'性别',
phoneVARCHAR(20)UNIQUECOMMENT'手机号',
create_timeDATETIMEDEFAULTNOW()COMMENT'创建时间',
is_deleteTINYINTDEFAULT0COMMENT'删除标记:0未删除,1已删除'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='用户信息表';一、基础概念题(入门高频)1、简述SQL中CRUD分别代表什么?核心作用是什么?参考答案:CRUD是关系型数据库最核心的四项基础操作,对应数据的完整生命周期:C-Create(新增):使用INSERT语句,向数据表中插入新的数据行,用于新增业务数据。R-Read(查询):使用SELECT语句,从数据表中读取、筛选、统计数据,是日常开发、查询数据使用频率最高的操作。U-Update(修改):使用UPDATE语句,修改数据表中已存在的旧数据,更新业务信息。D-Delete(删除):使用DELETE语句,删除数据表中无效、过期的数据记录。面试加分点:企业开发中一般不会物理删除数据,会通过逻辑删除(is_delete字段)代替DELETE物理删除,保证数据可追溯。2、INSERT新增数据有几种写法?区别是什么?参考答案:常用两种核心写法,分别适用于单条新增、批量新增场景:(1)指定字段新增(推荐,企业开发首选)PlainText
INSERTINTOuser_info(username,age,gender,phone)VALUES('张三',22,'男',);优点:不依赖表字段顺序,只插入需要的字段,默认字段(自增主键、默认值字段)自动填充,容错性高。(2)全字段省略写法(不推荐)PlainText
INSERTINTOuser_infoVALUES(NULL,'李四',23,'女',,NOW(),0);缺点:必须严格匹配表所有字段的顺序和数量,表结构修改后语句直接报错,维护性极差。(3)批量新增(高频实操)PlainText
INSERTINTOuser_info(username,age,gender)
VALUES('王五',25,'男'),('赵六',21,'女');批量新增效率远高于单条循环插入,是批量导入数据的最优方案。3、UPDATE修改数据的核心注意事项是什么?参考答案:UPDATE是高危操作,核心禁忌和规范如下:禁止省略WHERE条件:无WHERE条件会更新表中所有数据行,造成全表数据污染,是线上高发事故。WHERE条件尽量使用主键/唯一索引:提升更新效率,避免锁表、锁行超时。线上更新必须先SELECT校验:先查询要修改的数据,确认范围无误后再执行更新。事务控制:重要数据更新需开启事务,出错可回滚。正确示例:PlainText
--仅修改id=1的用户年龄
UPDATEuser_infoSETage=23WHEREid=1;4、DELETE和TRUNCATE的区别?面试必问参考答案:对比维度DELETETRUNCATE操作范围可带WHERE条件,删除指定数据清空全表数据,无法条件删除事务支持支持事务,可回滚DDL语句,不支持事务,不可回滚自增主键不重置,继续承接之前的数值重置自增主键,从初始值重新开始执行效率逐行删除,效率低直接清空数据页,效率极高日志记录记录详细日志,可恢复数据几乎不记录日志,数据难以恢复核心结论:业务数据删除优先用DELETE(逻辑删除优先),测试环境清空全表可使用TRUNCATE,线上生产环境禁止使用TRUNCATE。二、查询实操题(面试核心高频)1、基础条件查询:查询所有22岁及以上的男性用户参考答案:PlainText
SELECTid,username,age,gender,phone
FROMuser_info
WHEREage>=22ANDgender='男'ANDis_delete=0;解析:业务查询必须携带is_delete=0,过滤已逻辑删除的数据,这是企业开发的强制规范。2、模糊查询:查询用户名包含“张”的所有用户参考答案:PlainText
SELECT*FROMuser_infoWHEREusernameLIKE'%张%'ANDis_delete=0;拓展考点:%张%:匹配任意位置包含张的字符张%:匹配以张开头的字符%张:匹配以张结尾的字符前后模糊匹配无法走索引,大数据量下尽量避免使用3、排序分页查询:查询用户列表,按创建时间倒序,每页10条数据(第1页)参考答案:PlainText
SELECTid,username,age,create_time
FROMuser_info
WHEREis_delete=0
ORDERBYcreate_timeDESC
LIMIT0,10;解析:LIMIT偏移量,条数;第一页偏移量为0,第二页为10,以此类推;排序必须指定字段,避免数据乱序。4、聚合查询:统计总用户数、男女用户人数参考答案:PlainText
--统计总用户数
SELECTCOUNT(*)AStotal_userFROMuser_infoWHEREis_delete=0;
--按性别分组统计人数
SELECTgender,COUNT(id)ASuser_num
FROMuser_info
WHEREis_delete=0
GROUPBYgender;易错点:COUNT(*)统计所有行,COUNT(字段)忽略NULL值,主键无NULL,统计行数优先COUNT(id)。5、条件分组筛选:统计用户人数大于2的性别分组数据参考答案:PlainText
SELECTgender,COUNT(id)ASuser_num
FROMuser_info
WHEREis_delete=0
GROUPBYgender
HAVINGuser_num>2;核心考点(WHERE和HAVING区别):WHERE:分组前筛选原始数据,不能使用聚合函数HAVING:分组后筛选分组结果,可以使用聚合函数三、增删改实操面试题1、新增一条用户数据:用户名小明,年龄24,性别男,手机考答案:PlainText
INSERTINTOuser_info(username,age,gender,phone)
VALUES('小明',24,'男',);2、修改数据:将id=2的用户年龄改为26,手机号改考答案:PlainText
UPDATEuser_info
SETage=26,phone=
WHEREid=2ANDis_delete=0;面试提醒:生产环境更新务必精准锁定WHERE条件,优先用主键ID,杜绝批量无差别更新。3、逻辑删除:将id=5的用户标记为已删除参考答案:PlainText
UPDATEuser_infoSETis_delete=1WHEREid=5;业务解析:真正的线上项目几乎不用DELETE物理删除,通过更新删除标记实现逻辑删除,保留数据记录,方便后续数据恢复和溯源。4、物理删除:删除年龄为0的无效用户数据参考答案:PlainText
DELETEFROMuser_infoWHEREage=0;四、高频易错面试题(踩坑重点)1、查询语句中SELECT*的优缺点?生产环境是否推荐使用?参考答案:不推荐在生产环境使用SELECT*缺点:查询所有字段,会读取冗余数据,增加数据库IO和网络传输压力无法使用覆盖索引,查询效率低表结构新增字段后,程序可能出现字段适配异常优点:开发调试阶段方便快速查看全量数据规范:生产查询必须指定所需字段,按需查询。2、UPDATE语句不加WHERE条件会出现什么问题?如何规避?参考答案:不加WHERE条件会更新全表所有数据,造成批量数据错误,线上重大事故。规避方案:养成习惯:先SELECT查询数据范围,确认无误后再UPDATE线上数据库开启安全模式,禁止无WHERE条件的UPDATE/DELETE重要数据更新必须在事务中执行,校验无误后再提交3、什么是脏数据?CRUD操作中如何避免脏数据?参考答案:脏数据指无效、错误、重复、不一致的业务数据。避免方式:新增:通过字段约束(非空、唯一、默认值)拦截非法数据修改/删除:精准锁定数据范围,禁止批量盲改、盲删业务层做参数校验,数据库配合事务保证数据一致性采用逻辑删除,避免物理数据丢失4、批量INSERT和单条循环INSERT哪个效率高?为什么?参考答案:批量INSERT效率远高于单条循环插入。原因:数据库每次执行SQL都需要建立连接、解析语句、生成执行计划、事务提交,单条循环插入会重复执行大量IO操作;批量插入仅一次SQL解析、一次事务提交,极大减少网络IO和数据库开销。注意:批量插入数据量过大时需分批插入,避免单条SQL过长导致数据库报错。五、综合实操面试题(进阶)题目:完成以下整套业务操作1、批量新增3条用户数据;2、修改其中一名用户年龄为28;3、统计25岁以上用户数量;4、逻辑删除其中一条数据参考答案:PlainText
--1、批量新增数据
INSERTINTOuser_info(username,age,gender,phone)
VALUES('小李',24,'男',),
('小周',26,'女',),
('小吴',27,'男',);
--2、修改小周
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市“十五五”时期市场监管现代化规划
- 2026及未来5年中国不锈泵市场现状数据分析及前景预测报告
- 2026及未来5年中国三文治钢模板市场现状数据分析及前景预测报告
- 2026及未来5年中国T/R氨纶汗布市场现状数据分析及前景预测报告
- 2026及未来5年中国LF发泡剂市场现状数据分析及前景预测报告
- 2026年初级审计师考试题库及答案解析
- 2026年注册安全工程师考试(初级)安全生产法律法规试题及答案
- 2026年滨州一模语文模拟试题(含答案)
- 2026年通信安全模拟题及答案详解
- 2026年溶血性贫血合并贫血诊断模拟题及答案详解
- 2026-2027学年八年级上学期生物 期中测试卷(人教版)
- 2026年新教材人教版九年级上册英语期中素养综合评价测试卷(含答案)
- 落地式双排脚手架连墙件布置及验收方案
- 实验室生物安全风险评估报告
- 2026年老年人考驾照三力测试题库及答案
- ISO9001-2026 DIS标准条款解读-内审员培训课件
- 资产评估师企业价值评估题库(含评分标准)
- IEC 60601-1-112015Amd 12020 医用电气设备.第1-11部分基本安全和基本性能的一般要求.辅助标准家庭医疗环境中使用的医用电气设备和医用电气系统的要求.修改件1标准立项发展报告
- 智能矿山无人化
- 湖南省2026年高考招生计划-历史类
- 2026年四川省党政领导干部政治理论水平考试复习题及答案
评论
0/150
提交评论