SQL案例试题(含详细答案解析)_第1页
SQL案例试题(含详细答案解析)_第2页
SQL案例试题(含详细答案解析)_第3页
SQL案例试题(含详细答案解析)_第4页
SQL案例试题(含详细答案解析)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

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

文档简介

SQL案例试题(含详细答案解析)本次试题基于日常业务常用数据表设计,贴合企业实际开发、数据分析场景,涵盖SQL基础查询、条件筛选、排序分页、聚合分组、联表查询、子查询、数据新增修改删除等核心知识点,难度由浅入深,所有答案均附带详细思路解析,适合零基础入门练习、岗位基础考核使用。前置说明:本次试题所用三张核心业务表(通用模拟企业数据)1.员工表emp(员工基础信息)字段名字段类型字段说明emp_idint员工编号(主键)emp_namevarchar(20)员工姓名dept_idint部门编号salarydecimal(10,2)月薪hire_datedate入职日期jobvarchar(30)岗位职位2.部门表dept(部门信息)字段名字段类型字段说明dept_idint部门编号(主键)dept_namevarchar(20)部门名称locationvarchar(30)部门办公地点3.工资记录表salary_log(员工工资发放记录)字段名字段类型字段说明log_idint记录编号(主键)emp_idint员工编号pay_monthvarchar(10)发放月份(格式:2026-09)pay_salarydecimal(10,2)实发工资备注:所有试题默认使用MySQL语法,语句可直接在本地数据库执行。一、基础查询试题(每题10分,共20分)试题1查询员工表中所有员工的姓名、岗位、入职日期,结果按入职日期从新到旧排序。答案解析PlainText

--思路:指定查询字段,通过ORDERBY实现入职日期倒序排序

SELECTemp_name,job,hire_date

FROMemp

ORDERBYhire_dateDESC;解析:基础单表查询,只提取业务需要的指定字段,通过DESC关键字实现倒序排列,默认正序可省略关键字ASC。试题2查询入职时间在2025年1月1日之后,且月薪大于8000元的员工信息,展示员工编号、姓名、月薪、入职日期。答案解析PlainText

--思路:通过WHERE添加多条件筛选,日期、数值条件组合查询

SELECTemp_id,emp_name,salary,hire_date

FROMemp

WHEREhire_date>'2025-01-01'ANDsalary>8000;解析:多条件筛选使用AND连接,日期字段直接使用字符串日期对比,符合MySQL日期匹配规则,精准筛选符合双重条件的员工数据。二、排序分页与模糊查询试题(每题10分,共20分)试题3查询岗位包含“专员”的员工姓名、岗位、部门编号,结果按月薪升序排序,只展示前5条数据。答案解析PlainText

--思路:LIKE模糊匹配岗位关键词,ORDERBY排序,LIMIT分页截取前5条

SELECTemp_name,job,dept_id

FROMemp

WHEREjobLIKE'%专员%'

ORDERBYsalaryASC

LIMIT5;解析:%为通配符,%专员%表示匹配字段中任意位置包含“专员”的内容;LIMIT用于分页限制返回数据条数,是日常数据筛选高频用法。试题4查询部门编号为2、3、5的员工,排除岗位为“实习生”的人员,展示员工姓名、月薪、岗位,月薪从高到低排序。答案解析PlainText

--思路:IN批量匹配部门编号,!=排除指定岗位

SELECTemp_name,salary,job

FROMemp

WHEREdept_idIN(2,3,5)ANDjob!='实习生'

ORDERBYsalaryDESC;解析:当需要匹配多个固定值时,使用IN比多个OR语句更简洁,!=用于精准排除指定数据,语句可读性更高。三、聚合函数与分组统计试题(每题15分,共30分)试题5统计每个部门的员工总人数、平均月薪、最高月薪、最低月薪,要求过滤掉员工人数少于2人的部门。答案解析PlainText

--思路:GROUPBY按部门分组,聚合函数统计数据,HAVING过滤分组结果

SELECT

dept_id,

COUNT(emp_id)ASemp_total,--部门人数

ROUND(AVG(salary),2)ASavg_salary,--平均月薪(保留2位小数)

MAX(salary)ASmax_salary,--最高月薪

MIN(salary)ASmin_salary--最低月薪

FROMemp

GROUPBYdept_id

HAVINGemp_total>=2;解析:GROUPBY用于分组统计,COUNT、AVG、MAX、MIN为常用聚合函数;WHERE过滤原始数据,HAVING过滤分组后的统计结果,二者不可混用;ROUND函数用于规范数值格式。试题6统计2026年09月所有员工的实发工资总额、平均实发工资。答案解析PlainText

--思路:筛选指定月份工资数据,通过聚合函数统计总额和平均值

SELECT

SUM(pay_salary)AStotal_pay,

ROUND(AVG(pay_salary),2)ASavg_pay

FROMsalary_log

WHEREpay_month='2026-09';解析:单条件筛选指定月份数据,SUM求和、AVG求平均,适用于月度薪资统计、业绩汇总等常规业务场景。四、联表查询试题(15分)试题7查询所有员工的姓名、岗位、部门名称、部门办公地点,无部门的员工也需展示信息。答案解析PlainText

--思路:左连接查询,保留员工表所有数据,匹配对应部门信息

SELECT

e.emp_name,

e.job,

d.dept_name,

d.location

FROMempe

LEFTJOINdeptdONe.dept_id=d.dept_id;解析:使用LEFTJOIN左连接,以员工表为左表,保留全部员工数据,匹配不到部门信息的员工,部门字段自动显示为空;通过表别名简化语句,提升可读性,是多表查询核心用法。五、子查询综合试题(15分)试题8查询月薪高于公司平均月薪的员工姓名、月薪、部门名称。答案解析PlainText

--思路:子查询先计算公司平均月薪,主查询筛选高薪员工并关联部门信息

SELECT

e.emp_name,

e.salary,

d.dept_name

FROMempe

LEFTJOINdeptdONe.dept_id=d.dept_id

WHEREe.salary>(SELECTAVG(salary)FROMemp);解析:括号内子查询优先执行,算出全公司员工平均月薪,再通过主查询筛选出月薪高于平均值的员工,同时联表匹配部门名称,属于日常数据分析高频综合题型。六、拓展实操题(附加20分)试题91.新增一条部门数据:部门编号6,部门名称“运营部”,办公地点“市中心产业园”;

2.将运营部所有入职满1年的员工月薪上调500元;

3.删除工资记录表中2025年01月的所有工资记录。答案解析PlainText

--1、新增部门数据

INSERTINTOdept(dept_id,dept_name,location)

VALUES(6,'运营部','市中心产业园');

--2、更新运营部入职满1年员工薪资(假设当前时间2026-09-16)

UPDATEemp

SETsalary=salary+500

WHEREdept_id=6ANDhire_date<DATE_SUB(NOW(),INTERVAL1YEAR);

--3、删除指定月份工资记录

DELETEFROMsalary_log

WHEREpay_month='2025-01';解析:INSERT用于新增单条/多条数据;UPDATE批量更新数据,需精准匹配筛选条件避免误改数据;DELETE用于删

温馨提示

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

评论

0/150

提交评论