二、数据查询语言(六)
2021/12/4 6:20:22
本文主要是介绍二、数据查询语言(六),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MySQL
一、初识数据库
二、数据查询语言(一)
二、数据查询语言(二)
二、数据查询语言(三)
二、数据查询语言(四)
二、数据查询语言(五)
二、数据查询语言(六)
- MySQL
- 前言
- 子查询-经典案例
- 分页查询 ※
- 总结
前言
提示:以下是本篇文章正文内容,下面案例可供参考
且所用数据表为:可自行下载
子查询-经典案例
1. 查询和 Zlotkey 相同部门的员工姓名和工资
USE myemployees SELECT last_name,salary,department_id FROM employees WHERE department_id=( SELECT department_id FROM employees WHERE last_name='Zlotkey');#标量子查询用=
2. 查询工资比公司平均工资高的员工的员工号,姓名和工资
SELECT AVG(salary) FROM employees;#标量 SELECT employee_id,last_name,salary FROM employees WHERE salary>( SELECT AVG(salary) FROM employees);
3. 查询各部门中工资比本部门平均工资高的员工的员工号, 姓名和工资
#分两步,①先查各部门的平均工资, SELECT AVG(salary),department_id FROM employees GROUP BY department_id; #②连接①的结果集和employyees表,进行筛选 SELECT employee_id,Last_name,salary FROM employees e INNER JOIN ( SELECT AVG(salary) AS ag,department_id FROM employees GROUP BY department_id )AS ag_dep ON e.`department_id`=ag_dep.department_id WHERE salary>ag_dep.ag;
4. 查询和姓名中包含字母 u 的员工在相同部门的员工的员工号和姓名
#多行查询用in #①查询姓名中包含字母u的员工的部门,②查询部门号=①中任意一个的员工号和姓名 SELECT DISTINCT department_id#使用DISTINCT去重 FROM employees WHERE Last_name LIKE '%u%'; SELECT employee_id,last_name FROM employees WHERE department_id IN( SELECT DISTINCT department_id FROM employees WHERE Last_name LIKE '%u%');
5. 查询在部门的 location_id 为 1700 的部门工作的员工的员工号
#第一步 SELECT DISTINCT department_id FROM departments WHERE location_id=1700 #结合第一步 SELECT employee_id FROM employees WHERE department_id IN( SELECT DISTINCT department_id FROM departments WHERE location_id=1700);
6. 查询管理者是 K_ing 的员工姓名和工资
SELECT last_name,salary FROM employees WHERE manager_id IN( SELECT employee_id FROM employees WHERE last_name='K_ing');
7. 查询工资最高的员工的姓名,要求 first_name 和 last_name 显示为一列,列名为 姓名
SELECT CONCAT(first_name,last_name) "姓.名" FROM employees WHERE salary=( SELECT MAX(salary) FROM employees);
分页查询 ※
应用场景:当要显示的数据一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group By 分组字段 having 分组后筛选 order by 排序的字段】 limit offest,size; offest要显示条目的起始索引(起始索引从0开始) 特点: ①limit语句放在查询语句的最后 ②公式 要显示的页数 page, 每页的条目数 select 查询列表 from 表 limit (page-1)*size,size; size=10 page 1 0 2 10 3 20
案例1:查询前五条员工信息
SELECT * FROM employees LIMIT 0,5; SELECT * FROM employees LIMIT 5;#offset的值从第一条开始的支持省略0
案例2:查询第11到25条
SELECT * FROM employees LIMIT 10,15;
案例3:有奖金的员工信息,并且工资较高的前10名显示出来
SELECT * FROM employees WHERE commission_pct IS NOT NULL ORDER BY salary DESC LIMIT 10;
总结
期待大家和我交流,留言或者私信,一起学习,一起进步!
这篇关于二、数据查询语言(六)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南