#查询工资大于12000的员工

SELECT * FROM `employees` WHERE salary > 12000#查询部门编号不为90的员工姓名和部门

SELECT CONCAT(`first_name`,`last_name`) AS 姓名 ,`department_id` FROM `employees` WHERE `department_id` <> 90#查询工资在10000到20000的员工名、工资及奖金

SELECT `last_name`,`salary`,`commission_pct` AS 奖金 FROM employees WHERE salary >= 10000 AND salary <= 20000;

SELECT `last_name`,`salary`,`commission_pct` AS 奖金 FROM employees WHERE salary BETWEEN 10000 AND 20000;#查询部门编号不是在90到110之间的,或者工资高于15000的员工信息

SELECT * FROM employees WHERE department_id < 90 OR department_id > 110 OR salary > 15000

SELECT * FROM employees WHERE NOT (department_id >= 90 AND department_id <= 110) OR salary > 15000

SELECT * FROM employees WHERE department_id NOT BETWEEN 90 AND 110 OR salary > 15000#查询员工名中包含字符a的员工信息

SELECT * FROM employees WHERE `last_name` LIKE '%a%'#查询员工名中第三个字符为n,第五个字符为l的员工名和工资

SELECT `last_name`,`salary` FROM employees WHERE `last_name` LIKE "__n_l%";#查询员工名中第二个字符为_的员工名 通过\转义或者使用 ESCAPE 自定义转义字符

SELECT `last_name` FROM employees WHERE `last_name` LIKE "_\_%";

SELECT `last_name` FROM employees WHERE `last_name` LIKE "_!_%" ESCAPE "!";#查询员工编号在100到120之间的员工信息

SELECT * FROM `employees` WHERE `employee_id` BETWEEN 100 AND 120#查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号

SELECT * FROM `employees` WHERE `job_id` IN ('IT_PROG','AD_VP','AD_PRES');#查询没有奖金的员工名和奖金率

SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct` IS NULL

SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct` <=> NULL#查询工资等于12000的员工 使用安全等于

SELECT * FROM `employees` WHERE salary <=> 12000#查询员工号为176的员工姓名和部门号和年薪

SELECT employee_id,last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) FROM employees WHERE employee_id = 176#查询没有奖金,且工资小于18000的salary,last_name

SELECT salary,last_name FROM employees WHERE commission_pct IS NULL AND salary < 18000#查询employees表中,job_id不为'IT'或者工资为12000的员工信息

SELECT * FROM employees WHERE job_id <> 'IT' OR salary = 12000#查询departments中涉及到哪些位置编号

SELECT DISTINCT location_id FROM departments;#查询员工的姓名和部门号和年薪,按年薪降序 按名字升序

SELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM employees ORDER BY 年薪 DESC , last_name ASC#选择工资不在8000到17000的员工的姓名和工资,按工资降序

SELECT last_name,salary FROM employees WHERE salary<8000 OR salary >17000 ORDER BY salary DESC

SELECT last_name,salary FROM employees WHERE salary NOT BETWEEN 8000 AND 17000 ORDER BY salary DESC#查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序

SELECT * FROM employees WHERE email LIKE "%e%" ORDER BY LENGTH(email) DESC,department_id ASC#常用函数 单行函数

#1、length() 获取参数值的字节个数

SELECT LENGTH('joih'); #4

SELECT LENGTH('测试'); #6#2、concat() 拼接字符串

SELECT CONCAT(last_name,"_",first_name) FROM employees;#3、upper、大写 lower小写

SELECT UPPER('joih');

#示例:将姓变大写、名变小写、然后拼接

SELECT CONCAT(UPPER(last_name),LOWER(first_name)) AS 姓名 FROM employees;#4、substr 截取字符 索引从1开始

#截取从指定索引处后面所有字符

SELECT SUBSTR("李莫愁爱上了陆展元",7) AS out_put #陆展元

#截取从指定索引处指定字符长度的字符

SELECT SUBSTR("李莫愁爱上了陆展元",1,3) AS out_put #李莫愁

#案例:姓名中首字符大写,其他字符小写然后用_拼接 显示出来

SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),"_",LOWER(SUBSTR(last_name,2))) AS out_put FROM employees#5、instr 第一次出现索引的位置 不存在返回0

SELECT INSTR("杨不悔爱上了殷六侠",'殷六侠');#6、trim 去掉前后空格

SELECT TRIM(" 张翠山 ") AS out_put

SELECT TRIM('a' FROM "a张翠山a") AS out_put#7、lpad 左填充 rpad 右填充

SELECT LPAD("殷素素",2,"*") AS out_put

SELECT RPAD("殷素素",12,"ab") AS out_put#8、replace 替换

SELECT REPLACE("张无忌爱上了周芷若","周芷若","赵敏") AS out_put;#常用函数 数学函数

#1、round 四舍五入

SELECT ROUND(1.5) #2

SELECT ROUND(1.5,2) #1.50 保留两位小数

#2、ceil 向上取整 返回>=该参数的最小整数

SELECT CEIL(4.01) #5

SELECT CEIL(-4.01) #-4

#3、floor 向下取整 返回<=该参数的最大整数

SELECT FLOOR(4.01) #4

SELECT FLOOR(-4.01) #-5

#4、truncate 截断

SELECT TRUNCATE(1.6991,1); #1.6

#5、mod 取余 mod(a,b) ==> a-a/b*b

SELECT MOD(10,3)

SELECT 10%3#常用函数 日期函数

#1、now 返回当前系统日期+时间

SELECT NOW();

#2、curdate 返回当前系统日期不包含时间

SELECT CURDATE();

#3、curtime 返回当前系统时间不包含日期

SELECT CURTIME();

#4、可以获取指定的部分,年月日时分秒

SELECT YEAR(NOW()) #2018

SELECT YEAR("1993-1-1") #1993

SELECT MONTH(NOW()) #6

SELECT MONTHNAME(NOW()) #June

SELECT DAY(NOW())

SELECT HOUR(NOW())

SELECT MINUTE(NOW())

SELECT SECOND(NOW())

#5、str_to_date 将字符通过指定的格式转换成日期

SELECT STR_TO_DATE("6/23/2018","%m/%d/%Y"); #2018-06-23

SELECT * FROM employees WHERE hiredate = '1992-4-3'

SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992',"%m-%d %Y");

#6、date_format 将日期转换成字符串

SELECT DATE_FORMAT("1992-01-04","%Y年%m月%d日");

#案例 查询有奖金的员工名和入职日期(xx年/xx月 xx日)

SELECT last_name,DATE_FORMAT(hiredate,'%Y年/%m月/%d日') FROM employees WHERE commission_pct IS NOT NULL

#7、datediff 返回两个日期相差的天数

SELECT DATEDIFF("2018-6-23","2018-6-21") #2

#常用函数 流程控制

#1、if()函数

SELECT IF(2>1,"大","小"); #大

SELECT last_name,commission_pct,IF(commission_pct IS NULL,"无奖金","有奖金") AS 备注 FROM employees;

#2、case 情况一

#案例:查询员工的工资,要求

#部门号=30,显示的工资为1.1

#部门号=40,显示的工资为1.2

#部门号=50,显示的工资为1.3

#其他部门显示原工资

SELECT salary 原始工资,department_id,

CASE department_id

WHEN 30 THEN salary*1.1

WHEN 40 THEN salary*1.2

WHEN 50 THEN salary*1.3

ELSE salary

END AS 新工资 FROM employees

#case 情况二

#查询员工的工资情况

#如果工资大于20000,显示A级别

#如果工资大于15000,显示B级别

#如果工资大于10000,显示C级别

#否则显示D级别

SELECT salary 工资,

CASE

WHEN salary>20000 THEN 'A'

WHEN salary>15000 THEN 'B'

WHEN salary>10000 THEN 'C'

ELSE 'D'

END AS 工资级别 FROM employees#单行函数测试

#1、显示系统时间(注:日期+时间)

SELECT NOW();

#2、查询员工号、姓名、工资、以及工资提高百分之20%后的结果(new salary)

SELECT employee_id,last_name,salary,salary*1.2 AS 'new salary' FROM employees

#3、将员工的姓名按首字母排序,并写出姓名的长度

SELECT SUBSTR(last_name,1,1) AS 首字符,LENGTH(last_name) AS 长度 FROM employees ORDER BY 首字符 ASC

#4、拼接

SELECT CONCAT(last_name," earns ",salary,' monthly but wants ',salary*3) AS "Dream Salary" FROM employees WHERE salary=24000;

#5、使用case-when,按照下面的条件

#job gread

#AD_PRES A

#ST_MAN B

#IT_PROG C

#SA_REP D

#ST_CLERK E

SELECT last_name,job_id AS job,CASE job_id

WHEN 'AD_PRES' THEN 'A'

WHEN 'ST_MAN' THEN 'B'

WHEN 'IT_PROG' THEN 'C'

WHEN 'SA_REP ' THEN 'D'

WHEN 'ST_CLERK' THEN 'E'

END AS gread FROM employees WHERE job_id = 'AD_PRES';#常用函数 分组函数

SELECT SUM(salary) AS 总和, MAX(salary) AS 最大工资, MIN(salary) AS 最小工资, ROUND(AVG(salary),2) AS 平均工资, COUNT(salary) AS 个数 FROM employees

SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;

SELECT COUNT(DISTINCT salary),COUNT(salary) FROM employees;

#查询员工工资的最大值、最小值、平均值、总和

SELECT MAX(salary),MIN(salary),ROUND(AVG(salary),2),SUM(salary) FROM employees

#查询员工表中的最大入职日期和最小的入职日期相差的天数

SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) AS DIFFRENCE FROM employees;

#查询部门编号为90的员工个数

SELECT COUNT(*) AS 个数 FROM employees WHERE department_id = '90'

#查询每个部门的平均工资

SELECT AVG(salary),department_id FROM employees GROUP BY department_id;

#查询每个工种的最高工资

SELECT MAX(salary),job_id AS 工种 FROM employees GROUP BY job_id;

#查询每个位置上的部门个数

SELECT COUNT(*),location_id FROM departments GROUP BY location_id;

#查询邮箱中包含a字符的,每个部门的平均工资

SELECT AVG(salary),department_id FROM employees WHERE email LIKE "%a%" GROUP BY department_id

#查询有奖金的每个领导手下员工的最高工资

SELECT MAX(salary),manager_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY manager_id;

#查询哪个部门的员工个数大于>2 having添加分组后的筛选条件

SELECT department_id,COUNT(*) FROM employees GROUP BY department_id HAVING COUNT(*) > 2;

#查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

SELECT MAX(salary),job_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY job_id HAVING MAX(salary)>12000

#查询领导编号>102的每个领导手下的最低工资>5000的领导编号是哪个,及最低工资

SELECT MIN(salary),manager_id FROM employees WHERE manager_id > 102 GROUP BY manager_id HAVING MIN(salary)>5000

#按员工姓名的长度分组,查询每一组的个数,筛选员工个数>5的有哪些

SELECT COUNT(*),LENGTH(last_name) FROM employees GROUP BY LENGTH(last_name) HAVING COUNT(*) > 5

#查询每个部门每个工种的员工的平均工资 部门不为空 平均工资大于10000 降序显示

SELECT AVG(salary),department_id,job_id FROM employees WHERE department_id IS NOT NULL GROUP BY department_id,job_id HAVING AVG(salary)>10000 ORDER BY AVG(salary) DESC

#查询各个job_id的员工工资最大值,最小值,平均值,总和 并按job_id 升序

SELECT MAX(salary),MIN(salary),AVG(salary),SUM(salary),job_id FROM employees GROUP BY job_id ORDER BY job_id ASC

#查询员工最高工资和最低工资的查询

SELECT MAX(salary)-MIN(salary) difference FROM employees;

#查询各个管理者手下员工的最低工资,其中最低工资不低于6000,没有管理者的员工不计算在内

SELECT MIN(salary),manager_id FROM employees WHERE manager_id IS NOT NULL GROUP BY manager_id HAVING MIN(salary) >= 6000

#查询所有部门的编号,员工的数量和工资的平均值,并按平均工资降序

SELECT department_id,COUNT(*),AVG(salary) FROM employees GROUP BY department_id ORDER BY AVG(salary) DESC

#选择具有各个job_id的员工人数

SELECT COUNT(*),job_id FROM employees GROUP BY job_id#一、sql92标准 连接查询(内连接)

#1.等值连接

#案例1:查询女神名和对应的男神名

SELECT NAME,boyName FROM beauty,boys WHERE beauty.`boyfriend_id` = boys.`id`;

#案例2:查询员工名对应的部门名

SELECT last_name,department_name FROM employees,departments WHERE employees.`department_id` = departments.`department_id`;

#查询员工名,工种号,工种名

SELECT e.last_name,e.job_id,j.job_title FROM employees AS e,jobs AS j WHERE e.`job_id` = j.`job_id`;

#查询有奖金的员工名、部门名

SELECT last_name,department_name,commission_pct FROM employees e,departments d WHERE e.`department_id`=d.`department_id` AND e.`commission_pct` IS NOT NULL

#查询城市名中第二个字符为o的部门名和城市名

SELECT d.`department_name`,l.city FROM departments d,locations l WHERE d.`location_id` = l.location_id AND l.city LIKE "_o%"

#查询每个城市的部门个数

SELECT COUNT(*),l.city FROM departments d,locations l WHERE d.`location_id`=l.`location_id` GROUP BY l.city;

#查询有奖金的每个部门名和部门领导编号和该部门的最低工资

SELECT d.department_name,d.manager_id,MIN(e.salary) FROM employees e,departments d WHERE e.`department_id` = d.`department_id` AND e.`commission_pct` IS NOT NULL GROUP BY d.`department_name`,d.manager_id;

#查询每个工种的工种名和员工的个数,并按员工的个数降序

SELECT job_title,COUNT(*) AS 人数 FROM employees e,jobs j WHERE e.`job_id`=j.`job_id` GROUP BY job_title ORDER BY 人数 DESC;

#查询员工名,部门名和所在的城市

SELECT e.last_name,d.department_name,l.city FROM employees e,departments d,locations l WHERE e.`department_id` = d.`department_id` AND d.`location_id` = l.`location_id` AND l.`city` LIKE 's%' ORDER BY d.`department_name` DESC

#2.非等值连接

#查询员工的工资和工资级别

SELECT e.salary,j.grade_level FROM employees e,job_grades j WHERE e.`salary` BETWEEN j.lowest_sal AND j.highest_sal;

#3.自连接 查询员工名和上级的名称

SELECT e.employee_id,e.last_name,m.employee_id,m.last_name FROM employees e,employees m WHERE m.employee_id = e.manager_id#显示员工表的最大工资,工资平均值

SELECT MAX(salary),AVG(salary) FROM employees

#查询员工表中的employee_id,job_id,last_name,按department_id降序,salary升序

SELECT employee_id,job_id,last_name,department_id FROM employees ORDER BY department_id DESC ,salary ASC

#查询员工表的job_id中包含a和e的,并且a在e前面

SELECT job_id FROM employees WHERE job_id LIKE "%a%e%"

#显示当前日期,以及去掉前后空格,截取字符串函数

SELECT TRIM('字符' FROM NOW())

#显示所有的员工姓名,部门号,和部门名称

SELECT e.`last_name`,e.`department_id`,d.department_name FROM employees e,departments d WHERE e.`department_id` = d.department_id;

#查询90号部门员工的job_id和90号部门的location_id

SELECT job_id,location_id FROM employees e,departments d WHERE e.`department_id` = d.`department_id` AND e.`department_id` = 90 ;

#查询所有有奖金的员工的last_name,department_name,location_id,city

SELECT e.last_name,d.department_name,d.location_id,l.city FROM employees e,departments d,locations l WHERE e.`department_id` = d.`department_id` AND d.`location_id` = l.`location_id` AND e.`commission_pct` IS NOT NULL

#查询每个工种、每个部门的部门名、工种名和最低工资

SELECT e.job_id,d.`department_name`,j.job_title,MIN(e.`salary`) FROM employees e,departments d,jobs j WHERE e.`department_id` = d.`department_id` AND e.`job_id` = j.job_id GROUP BY e.job_id,d.`department_name`

#查询每个国家下的部门个数大于2的国家编号

SELECT l.`country_id`,COUNT(*) FROM departments d,locations l WHERE d.`location_id` = l.`location_id` GROUP BY country_id HAVING COUNT(*) > 2

#选择指定员工的姓名,员工号,以及他的管理者的姓名和员工号。

SELECT e.`last_name`,e.`employee_id`,m.last_name,m.employee_id FROM employees e,employees m WHERE e.`employee_id` = m.`manager_id`

mysql查询最低工资的经历_MySQL 简单查询记录(二)相关推荐

  1. mysql查询最低工资的经历_查看员工信息每个部门的最低工资

    如果说: 查询每一个部门最低工资的雇员信息 关联子查询方法 1 查询每一个部门的最低工资 select deptno, min(sal) min_sal from emp group by deptn ...

  2. 简单mysql 查询_MySQL简单查询详解

    MySQL的查询操作 单表查询:简单查询 多表查询:连接查询 联合查询 布尔条件表达式操作符= 等值比较 <=>:跟空值比较不会产生额外信息的等值比较 <>:不等值 <: ...

  3. mysql 前30秒_mysql – 简单查询需要15-30秒

    以下查询非常简单.它从消息表中选择最后20条记录,以便在分页方案中使用.第一次运行此查询时,需要15到30秒.后续运行只需不到一秒钟(我预计会涉及一些缓存).我试图确定为什么第一次这么长时间. 这是查 ...

  4. mysql单表查询实例_MySQL简单查询详解-单表查询

    MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...

  5. 【java学习之路】(mysql篇)001.mysql基本介绍、常用命令及简单查询

    什么是数据库? 数据库: 英文单词DataBase,简称DB.按照一定格式存储数据的一些文件的组合. 顾名思义:存储数据的仓库,实际上就是一堆文件.这些文件中存储了具有特定格式的数据. 什么是数据库管 ...

  6. mysql在like时不区分大小写_MySQL模糊查询(like)时区分大小写

    问题说明:通过上面的语句,你会发现MySQL的like查询是不区分大小写的,因为我的失误,把Joe写成了joe才发现了这个东东吧.但是,有时候,我们需要区分大小写的是,该怎么办呢?解决方法如下: 方法 ...

  7. mysql子查询分为几种方法_MYSQL子查询的5种形式

    mysql从4.1版开始支持子查询功能,在此版本前,可以用join写连表查询来进行替代,但不推荐这么写,相当麻烦,mysql子查询的几种常 见写法: 1.select * from xxx where ...

  8. mysql慢查询日志分析工具比较_MySQL慢查询日志总结 日志分析工具mysqldumpslow

    慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...

  9. mysql慢查询日志默认在哪里_MySQL 慢查询日志

    慢查询日志概念 MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中查询响应时间超过阈值的语句,具体指响应时间超过 long_query_time 值的 SQL,会 ...

最新文章

  1. 如何提取fasta文件的部分信息
  2. html下纯JS实现图片压缩、预览、图片Base64转换
  3. Ubuntu16.04 安装谷歌浏览器并配置常用插件与扩展
  4. vs2017c语言单元测试,vs2017单元测试没反应,检测出错误,有关详细信息,请查看“测试输出”窗口...
  5. 基类使用私有数据_C++作业之多继承与虚基类
  6. 消息称京东方通过苹果认证 本月开始向iPhone 12供货OLED面板
  7. 关于VB.NET 菜单栏ToolStripMenu 下拉菜单单选功能的实现
  8. 经典傅里叶算法小集合 附完整c代码
  9. 利用datafaker批量生成测试数据
  10. 剪辑师的基本素养--了解四种特写类型
  11. ubuntu mysql无法启动服务器_ubuntu – Mysql无法启动mysqld.sock缺失
  12. linux格式化fat的命令,Linux磁盘格式化命令详解
  13. 3d可视化产品爆炸图案例
  14. [异常检测]Learning Regularity in Skeleton Trajectories for Anomaly Detection in Videos
  15. 谈谈我的人才网站的的发展历程
  16. 一个dht网络的“磁力链接”搜索python代码
  17. Android系统分析——Bootloader(Lk)
  18. layui XmSelect扩展组件二次扩展
  19. Excel如何比较两表格部分字段差异
  20. 管理员宝典:迷死人不偿命的开源工具

热门文章

  1. 分享一下三线型NPN型与PNP型传感器的动作电路逻辑
  2. 爬虫学习04-正则解析模块re
  3. 网站用虚拟主机还是服务器,建网站用服务器还是用虚拟主机
  4. java 加载驱动3种方法_加载jdbc驱动程序的三种不同方式
  5. 塔望3W消费战略产品案丨筷手小厨:筷手功夫饭的差异化致胜之道
  6. kernel power domain分析
  7. Swan Song 第六周Scrum Meeting
  8. LaTeX数学公式编辑(2)——跨页公式
  9. [STM32F1]使用STM32F103驱动ST7567液晶屏
  10. 【红外相机和普通网络摄像头夜视功能在夜视原理上的区别)】