MySQL数据库语句面试笔试题及详细答案(高频实操版)_第1页
MySQL数据库语句面试笔试题及详细答案(高频实操版)_第2页
MySQL数据库语句面试笔试题及详细答案(高频实操版)_第3页
MySQL数据库语句面试笔试题及详细答案(高频实操版)_第4页
MySQL数据库语句面试笔试题及详细答案(高频实操版)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

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

文档简介

MySQL数据库语句面试笔试题及详细答案(高频实操版)本套试题贴合企业真实面试、笔试场景,聚焦MySQL常用SQL语句实操,涵盖基础语法、条件查询、聚合分组、联表查询、数据增删改、索引、事务等核心考点,题目经典、答案详细易懂,适合求职刷题、面试备考。前置说明:试题统一使用两张基础测试表,所有题目基于下表作答1、员工表emp(员工数据)字段名字段说明数据类型id员工编号(主键)intname员工姓名varchar(20)dept_id部门编号intsalary薪资decimal(10,2)hire_time入职时间datetime2、部门表dept(部门数据)字段名字段说明数据类型dept_id部门编号(主键)intdept_name部门名称varchar(20)一、基础查询类(简单必考)题目1:查询emp表中所有员工的姓名、薪资、入职时间参考答案:PlainText

SELECTname,salary,hire_timeFROMemp;解析:基础单表查询语法,SELECT后指定需要查询的字段,FROM指定数据表,无需条件时直接执行即可。题目2:查询所有员工数据,去除重复的部门编号参考答案:PlainText

SELECTDISTINCTdept_idFROMemp;解析:DISTINCT关键字用于去除查询结果中的重复数据,仅保留唯一值,常用于筛选不重复的分类字段。题目3:查询薪资在5000-10000之间的员工姓名和薪资,包含边界值参考答案:PlainText

SELECTname,salaryFROMempWHEREsalaryBETWEEN5000AND10000;备选写法:PlainText

SELECTname,salaryFROMempWHEREsalary>=5000ANDsalary<=10000;解析:BETWEEN...AND...适用于数值区间查询,默认包含区间首尾数值,等价于大于等于、小于等于的条件组合。题目4:查询姓名包含“张”的所有员工信息参考答案:PlainText

SELECT*FROMempWHEREnameLIKE'%张%';解析:LIKE为模糊查询关键字,%为通配符,代表任意任意字符(包括空字符);%张%表示姓名中任意位置包含“张”字。拓展:张%代表以“张”开头,%张代表以“张”结尾。二、排序、分页类题目5:查询所有员工信息,按薪资降序排序,薪资相同则按入职时间升序排序参考答案:PlainText

SELECT*FROMempORDERBYsalaryDESC,hire_timeASC;解析:ORDERBY用于排序,DESC为降序(从大到小),ASC为升序(从小到大,默认可省略);支持多字段排序,优先级从左到右。题目6:查询薪资最高的3名员工信息参考答案:PlainText

SELECT*FROMempORDERBYsalaryDESCLIMIT3;解析:LIMIT用于分页、限制查询条数,LIMITn表示只返回前n条数据,常与排序搭配获取最值数据。题目7:实现分页查询,每页5条数据,查询第2页数据参考答案:PlainText

SELECT*FROMempLIMIT5,5;解析:LIMIT偏移量,条数;第1页:LIMIT0,5,第2页:LIMIT5,5,偏移量=(页码-1)*每页条数。三、聚合函数与分组查询(高频考点)常用聚合函数:COUNT(统计数量)、SUM(求和)、AVG(平均值)、MAX(最大值)、MIN(最小值)题目8:统计总员工数、平均薪资、最高薪资、最低薪资参考答案:PlainText

SELECTCOUNT(*)AS总人数,AVG(salary)AS平均薪资,MAX(salary)AS最高薪资,MIN(salary)AS最低薪资FROMemp;解析:COUNT(*)统计所有行数,AS用于给字段起别名,方便结果查看,聚合函数会自动忽略NULL值。题目9:统计每个部门的员工人数、部门平均薪资,展示部门编号、人数、平均薪资参考答案:PlainText

SELECTdept_id,COUNT(*)AS员工人数,AVG(salary)AS部门平均薪资FROMempGROUPBYdept_id;解析:GROUPBY用于分组查询,规则:SELECT后非聚合字段,必须出现在GROUPBY之后。题目10:统计员工人数大于3人的部门,显示部门编号和员工人数参考答案:PlainText

SELECTdept_id,COUNT(*)AS员工人数FROMempGROUPBYdept_idHAVINGCOUNT(*)>3;解析:分组后筛选条件必须用HAVING,WHERE是分组前筛选,无法筛选聚合结果;WHERE过滤行,HAVING过滤分组。四、联表查询(核心必考)联表查询核心:内连接、左连接、右连接,工作中左连接使用最多题目11:查询所有员工的姓名、薪资、所属部门名称(内连接)参考答案:PlainText

SELECT,e.salary,d.dept_nameFROMempeINNERJOINdeptdONe.dept_id=d.dept_id;解析:内连接(INNERJOIN)只查询两张表中匹配成功的数据,匹配失败的数据不展示;可省略INNER,直接写JOIN。题目12:查询所有员工的姓名、部门名称,包含无部门的员工(左连接)参考答案:PlainText

SELECT,d.dept_nameFROMempeLEFTJOINdeptdONe.dept_id=d.dept_id;解析:左连接以左表(emp)为基准,左表所有数据全部展示,右表匹配不到数据则显示NULL。题目13:查询所有部门名称,以及对应部门的员工人数(包含无员工的部门)参考答案:PlainText

SELECTd.dept_name,COUNT(e.id)AS员工人数FROMdeptdLEFTJOINempeONd.dept_id=e.dept_idGROUPBYd.dept_id,d.dept_name;解析:以部门表为左表,保证所有部门都展示,COUNT(e.id)不会统计NULL值,精准计算在岗员工数。五、数据增删改语句(实操基础)注意:增删改语句必须配合事务或谨慎操作,生产环境禁止随意执行无条件删除、更新语句题目14:新增一条员工数据:姓名=李四,部门编号=1,薪资=6500,入职时间=2026-01-10参考答案:PlainText

INSERTINTOemp(name,dept_id,salary,hire_time)VALUES('李四',1,6500.00,'2026-01-1000:00:00');题目15:将编号为101的员工薪资调整为7500参考答案:PlainText

UPDATEempSETsalary=7500.00WHEREid=101;重点提醒:更新语句必须加WHERE条件,否则会更新全表数据。题目16:删除入职时间早于2020年的员工数据参考答案:PlainText

DELETEFROMempWHEREhire_time<'2020-01-01';解析:DELETE用于删除单条/多条数据,可加条件;TRUNCATE用于清空整张表,不可加条件、不可回滚。六、数据库基础高频问答(笔试简答题)题目17:WHERE和HAVING的区别?详细答案:1、执行顺序不同:WHERE是分组(GROUPBY)前过滤数据,HAVING是分组后过滤分组结果;2、筛选内容不同:WHERE不能使用聚合函数(SUM、COUNT等),HAVING专门用于聚合结果筛选;3、适用场景不同:普通字段条件筛选用WHERE,分组后的统计结果筛选用HAVING。题目18:LEFTJOIN、RIGHTJOIN、INNERJOIN的区别?详细答案:1、INNERJOIN(内连接):只返回两张表中匹配条件的数据,无匹配则不展示;2、LEFTJOIN(左连接):以左表为核心,左表数据全部保留,右表无匹配数据显示NULL;3、RIGHTJOIN(右连接):以右表为核心,右表数据全部保留,左表无匹配数据显示NULL;工作中90%场景使用左连接,兼容性更强。题目19:MySQL索引的作用?哪些字段适合建索引?详细答案:索引作用:大幅提升查询效率,减少数据库全表扫描,降低数据查询耗时;会轻微降低增删改效率,因为索引需要同步更新。适合建索引的字段:1、经常用于WHERE条件、JOIN关联、ORDERBY、GROUPBY的字段;2、数据区分度高的字段(如手机号、身份证号、主键);不适合建索引:数据量小、频繁修改、区分度极低(如性别、状态)的字段。题目20:MySQL主键和唯一索引的区别?详细答案:1、主键默认非空、唯一,一张表只能有一个主键;2、唯一索引允许字段为NULL,一张表可以创建多个唯一索引;3、主键会自动创建索引,唯一索引需要手动创建。七、综合实操大题(面试压轴题)题目21:查询每个部门薪资最高的员工姓名、部门名称、薪资参考答案:PlainText

SELECT,d.dept_name,e.salary

FROMempe

JOINdeptdONe.dept_id=d.dept_id

WHERE(e.dept_id,e.salary)IN(SELECTdept_id,MAX(salary)FROMempGROUPBYdept_id);解析:子查询

温馨提示

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

评论

0/150

提交评论