- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
SQL语句面试题及答案
一、基础查询类(共5题)
1.题目:现有员工表employees(字段:id,name,department_id,salary,hire_date),查询“研发部”(department_id=3)中薪资大于8000的员工姓名、薪资,按入职时间倒序排列
答案:
SELECTname,salary
FROMemployees
WHEREdepartment_id=3ANDsalary8000
ORDERBYhire_dateDESC;
思路解析:先通过WHERE筛选部门和薪资条件,再用ORDERBY按入职时间(hire_date)降序(DESC),默认升序可省略ASC,这里需求是“倒序”需明确写DESC。
2.题目:从员工表中查询每个部门的平均薪资,只显示平均薪资大于9000的部门ID和平均薪资,平均薪资保留2位小数
答案:
SELECT
department_id,
ROUND(AVG(salary),2)ASavg_salary
FROMemployees
GROUPBYdepartment_id
HAVINGAVG(salary)9000;
思路解析:用GROUPBY按部门分组,AVG()计算平均薪资,ROUND()保留小数,HAVING筛选分组后的结果(WHERE无法筛选聚合函数结果)。
3.题目:向员工表插入一条新数据:id=101,姓名=张三,部门ID=2,薪资=7500,入职时间=2024-01-15
答案:
INSERTINTOemployees(id,name,department_id,salary,hire_date)
VALUES(101,张三,2,7500,2024-01-15);
思路解析:指定插入的字段列表(避免字段顺序变动导致错误),日期类型值需用单引号包裹,数值类型直接写。
4.题目:将员工表中id=101的员工薪资调整为8200,部门ID改为3
答案:
UPDATEemployees
SETsalary=8200,department_id=3
WHEREid=101;
思路解析:必须加WHERE条件(否则会更新所有数据),多个字段用逗号分隔,赋值用等号。
5.题目:删除员工表中入职时间在2018年之前且薪资低于5000的员工数据
答案:
DELETEFROMemployees
WHEREhire_date2018-01-01ANDsalary5000;
思路解析:同样需加精准WHERE条件,日期比较用,删除前建议先执行SELECT确认数据范围,避免误删。
二、进阶应用类(共5题)
1.题目:现有部门表departments(字段:id,name),关联员工表,查询所有部门的名称及对应员工数量(无员工的部门显示0)
答案:
SELECT
d.nameASdept_name,
COUNT(e.id)ASemp_count
FROMdepartmentsd
LEFTJOINemployeeseONd.id=e.department_id
GROUPBYd.id,d.name;
思路解析:用LEFTJOIN保留所有部门(即使无员工),COUNT(e.id)统计员工数(NULL不计数),GROUPBY需包含部门表的主键和名称(确保分组唯一)。
2.题目:查询员工表中,每个部门薪资排名前2的员工姓名、部门ID、薪资
答案:
SELECT
name,
department_id,
salary
FROM(
SELECT
*,
ROW_NUMBER()OVER(PARTITIONBYdepartment_idORDERBYsalaryDESC)ASrn
FROMemployees
)AStemp
WHERErn=2;
思路解析:子查询用ROW_NUMBER()窗口函数,按部门(PARTITIONBY)分组,薪资降序排序(ORDERBY),给每条数据标排名(rn),外层筛选排名前2的数据。
3.题目:查询“市场部”(departments.name=市场部)员工中,薪资高于本部门平均薪资的员工姓名和薪资
答案:
SELECTe.name,e.salary
FROMemployeese
JOINdepartmentsdONe.depar
您可能关注的文档
最近下载
- 2024年山东省济南市中考化学真题(解析版).pdf
- 广州市广附中学2024-2025学年九年级上大联盟月考物理试题(含答案).pdf VIP
- 安徽2025中考定心卷.docx VIP
- JG-T202-2007:工程管道用聚氨酯蛭石绝热材料支吊架.pdf
- 地方政府大数据发展的现实与理想 .pdf
- 城市设计概论知到智慧树期末考试答案题库2024年秋长安大学.docx VIP
- 试析《额尔古纳河右岸》中额尔古纳河在鄂温克族生活中的作用.docx VIP
- 2025年浙江卷一月物理高考试卷(原卷+答案).pdf VIP
- 低温环境下管道焊接工艺保障技术方案.docx VIP
- 2019-2020学年贵州省贵阳市普通中学九年级(上)期末物理试卷-附答案详解.docx VIP
原创力文档


文档评论(0)