当前位置: 首页 > news >正文

Mysql之增强查询

增强查询主要是对之前一些指令的补充

查询增强

主要针对单表查询的增强操作,也是上面一些细节的补充
在这里插入图片描述
在这里插入图片描述

-- 使用where语句
-- 查找1991.1.1后入职的员工
-- 主要是介绍在mysql中日期类型可以直接比较,需要注意格式
SELECT * FROM emp
	WHERE hiredate > '1991-01-01'
-- 如何使用like操作符
-- 	%:表示0-多个任意字符,李%就是 只要开头是李就算
--      _:表示单个字符,李_就是姓李的两个字的名字

-- 显示首字母为S的员工和工资
SELECT ename,sal FROM emp
	WHERE ename LIKE 'S%'
-- 显示第三个字符为大写O的所有员工的姓名和工资
SELECT ename,sal FROM emp
	WHERE ename LIKE '__O%'
-- 查询表结构
DESC emp

-- orderby
-- 按照工资从低到高顺序,显示雇员
SELECT * FROM emp
	ORDER BY sal
-- 先按照部门号升序,部门号同,按照工资降序
SELECT * FROM emp
	ORDER BY deptno, sal DESC;
-- 这样写的话就是先按部门号升序,然后部门内部按照薪水降序

1.日期可以直接比较2.LIKE 两个标记位 第一个%代表一个或多个任意字符,第二个_只能代表一个任意字符
ORDER BY 第一关键字 升序/降序,第二关键字 升序/降序
就能先第一关键字升序/降序完后,在相同组内进行第二该关键字的升序/降序

分页查询

比如说一个表有10w行记录肯定不能一下显出来,只能一行行显喽这就用到分页查询了
在这里插入图片描述

就是 LIMIT 数字1,数字2
数字1代表开始位置,真正的开始位置是数字1+1
0,3就是从1位置开始取三行
数字2就是取几行
可以认为是前开后闭(数字1,数字1+数字2)

-- 分页查询
-- 按empno升序取,每页三条记录,请分别显示第一页,第二页,第三页
-- 第一页
SELECT * FROM emp
	ORDER BY empno
	LIMIT 0,3
-- 第二页
SELECT * FROM emp
	ORDER BY empno
	LIMIT 3,3
-- 第三页
SELECT * FROM emp
	ORDER BY empno
	LIMIT 6,3	
# 公式的话上面有 LIMIT 每页显示记录数*(第几页-1),每页显示记录数

分组加强

group by
在这里插入图片描述
直接上代码演示

# 演示增强分组
-- 显示每种岗位的雇员总数,平均工资
SELECT COUNT(*),FORMAT(AVG(sal),3),job  -- 保留三位小数用format
	FROM emp
	GROUP BY job
-- 显示雇员总数,以及获得补助的(comn为非null)雇员数
SELECT COUNT(*),COUNT(comn) -- 注意:count不会统计为null的
	FROM emp
-- 统计没有获得补助的
SELECT COUNT(IF (comn IS NULL,1,NULL)) FROM emp


-- 显示管理人员总数,管理人员编号可能相同,相同不算,mgr是编号
SELECT COUNT(DISTINCT mgr) -- distinct 约束条件查找的mgr不能相同,相同不计数
	FROM emp
-- 显示雇员工资最大差额
SELECT MAX(sal)-MIN(sal) 
		FROM emp

下面有个HAVING 可以对分组的结果进行过滤
相当于代替了WHERE
看下面演示小结的代码

小结

在这里插入图片描述
顺序不能颠倒,要不然会报错
在这里插入图片描述
注意的是
avg_sal可能是带小数点你想格式化
不能用format了,因为format函数返回类型是字符串,而having子句需要与1000整型比较大小,冲突了
所以可以使用字符串的STRCMP(AVG(sal),1000)>0作为having筛选条件

相关文章:

  • 做领域细分行业需要建网站吗/百度竞价排名又叫什么
  • 合肥有哪些做网站的/黄页推广引流网站
  • 网站引导页动态效果怎么做/直播:英格兰vs法国
  • Rockchip开发系列 - 9.watchdog看门狗开发
  • DRG简介
  • C/C++之(五)洛谷刷题基础题 --- 新年好
  • 【异常】记一次因修复漏洞扫描导致SpringSecurity出现的循环依赖问题
  • 使用SpringBoot创建web项目,并使用外部Tomcat
  • 【地铁上的Redis与C#】数据类型(七)--List类型
  • java 探花交友项目实战 day3 完善个人信息 阿里云OSS文件存储 百度人脸识别
  • 【代码随想录】动态规划:关于01背包问题,你该了解这些!(滚动数组)
  • 如何有效的增加 shopee 的流量?
  • springMVC讲解(上)
  • 最大子数组和 最长递增子序列 最长公共子序列 编辑距离之复习dp
  • 文件操作相关知识