聚合函数

函数是一个功能体,提供若干数据,产出结果-饺子机

COUNT(...)数量

SUM(...) 求和

AVG(...)平均

MAX (...)最大

MIN(...) 最小

聚合查询/分组查询

查询出所有员工的数量

SELECT COUNT(eid) FROM emp;

SELECT COUNT(*) FROM emp; #推荐写法;

查询出工资8000以上女员工姓名性别生日按工资降序排列,取前三个人

SELECT ename,sex,birthday,salary FROM emp WHERE salary >8000 AND sex=0

ORDER BY salary DESC

LIMIT 0,3;

查询所有员工的工资总和

SELECT SUM(salary) FROM emp;

查询所有员工的平均工资

SELECT SUM(salary)/COUNT(*) FROM emp;

SELECT AVG(salary) FROM emp;

查询男员工工资最高的

SELECT ename,MAX(salary) FROM emp WHERE sex=1;

查询出年龄最大的员工

SELECT MIN(birthday),ename FROM emp;

分组查询:只能查询分组条件和聚合函数

*查询男女员工的平均工资,最高工资

SELECT sex,AVG(salary),MAX(salary) FROM emp  GROUP BY sex;

查询每个部门的员工数量,最高工资,最低工资;

SELECT deptId,COUNT(*),MAX(salary),MIN(salary) FROM emp GROUP BY deptId ;

函数补充

YEAR() 获取日期中的年份

MONTH() 获取日期中的月份

查询出1993年出生的员工所有列

SELECT*FROM emp WHERE YEAR(birthday)=1993;

查询5月出生的所有列

SELECT*FROM emp WHERE MONTH(birthday)=5;

子查询

查询出研发部员工所有的列

SELECT * FROM emp WHERE deptId=(SELECT did FROM dept WHERE dname='研发部');

查询出比tom工资高的员工有哪些;

SELECT * FROM emp WHERE salary>(SELECT salary FROM emp WHERE ename='tom');

查询出和TOM同一年的员工

SELECT*FROM emp WHERE YEAR(birthday)=(SELECT YEAR(birthday) FROM emp WHERE ename='tom' );

多表查询

查询所有员工姓名及其部门名称;

SELECT ename,dname FROM emp,dept WHERE did=deptId;

上述多表查询语法是SQL-92中的,无法查询出没有部门的员工,也没法查出没有员工的部门。

SQL-99中提出了新的多表查询语法

内连接INNER JOIN ...ON

SELECT ename,dname FROM emp INNER JOIN dept ON deptId=did;

左外连接LEFT OUTER JOIN ..ON

SELECT ename,dname FROM emp LEFT OUTER JOIN dept ON deptId= did;

查询结果是左侧所有的记录都显示;

OUTER 可以省略

SELECT ename,dname FROM emp LEFT JOIN dept ON deptId =did;

右外连接RIGHT OUTER JOIN...ON

SELECT ename,dname FROM emp RIGHT OUTER JOIN dept ON deptId=did;

查询右侧所有的记录都显示;

全连接FULL JOIN

显示左侧和右侧所有的记录--mysql 不支持

UNION 合并相同的项

UNION ALL 不合并相同的项

(select ename,dname from emp left join dept on deptid=did)

UNION ALL

(SELECT ename,dname FROM emp RIGHT OUTER JOIN dept ON deptId=did);

这个出来的有重复项,是左外连接和右外连接合并的

(select ename,dname from emp left join dept on deptid=did)

UNION

(SELECT ename,dname FROM emp RIGHT OUTER JOIN dept ON deptId=did);

mysql复杂查询教程_mysql 复杂查询相关推荐

  1. mysql高级查询教程_MYSQL高级查询

    实际开发中,经常需要对某些数据进行统计,比如,统计某个字段的最大值.最小值.平均值等. MySQL中,提供了一些函数来实现这些功能 聚合函数 COUNT()--返回某列的行数 SUM()--返回某列值 ...

  2. centos得mysql安装教程_Centos下Mysql安装图文教程_MySQL

    Mysql是比较常用的数据库,日常开发中也是采用地比较多.工欲善其事必先利其器,本文特地来讲解下如何在centos(其他linux发行版类似)下安装Mysql.首先准备的材料:Mysql,我这里采用的 ...

  3. mysql 慢日志 作用_MySQL慢查询日志的作用和开启

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

  4. mysql 查询重写_mysql 学习 - 查询重写规则

    条件化简 我们编写的查询语句的搜索条件本质上是一个表达式,这些表达式可能比较繁杂,或者不能高效的执行,MySQL的查询优化器会为我们简化这些表达式. 移除不必要的括号 有时候表达式里有许多无用的括号, ...

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

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

  6. mysql慢查询单位_MySQL慢查询

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

  7. mysql or中有空查询慢_MySQL 慢查询日志

    1.定义 2.相关参数 2.开启 3.原因 4.慢查询日志工具mysqldumpslow 1.定义 作用:用来记录在MySQL中响应时间超过阀值的语句. 2.相关参数 mysql> show v ...

  8. mysql 关联查询慢_mysql慢查询语句分析总结

    我们经常会接触到MySQL,也经常会遇到一些MySQL的性能问题.我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题 通过SHOW FULL PROCESSLIST查看问题 ...

  9. mysql两个表查询修改_MySQL:查询、修改(二)

    干货: 使用SELECT查询的基本语句SELECT * FROM 可以查询一个表的所有行和所有列的数据.SELECT查询的结果是一个二维表. 使用SELECT *表示查询表的所有列,使用SELECT ...

最新文章

  1. idea里自动创建构造函数
  2. IBM科学家实现存储器重大突破
  3. 【树莓派】给树莓派安装中文输入法Fcitx及Google拼音输入法
  4. JDBC粗略学习( 阿巴阿巴阿巴阿巴)
  5. 一网打尽软件测试面试必问的所有Web测试点,你不知道的这都有!
  6. 【PL/SQL】 使用游标
  7. gitlab 删除分支_idea gitlab 分支 pull、push 实践笔记
  8. matlab线检测,车道线检测(matlab)
  9. Python科学计算系列2—不等式和不等式组
  10. SDU-nachos安装及初步编译
  11. latex表格手把手超详细教程(table, tabular, multirow, multicolumn)
  12. PSP2000下实现完美截屏
  13. 迷宫问题(MAZE)
  14. 我的世界饮水系统服务器,MC水瓶 - 找服玩|Minecraft服务器列表
  15. 用Leangoo管理用户故事
  16. 大一上课设——贪吃蛇(链表 + easyx)
  17. Windows 11 已修复 AMD CPU 性能问题
  18. 草履虫纳米机器人_草履虫大小的“微型机器人”或许能在人体组织中自由穿梭...
  19. 【天池】金融风控贷款违约预测task5
  20. Tableau实战 公司投资分析

热门文章

  1. pythonsuper函数_怎么使用python super函数调用父类
  2. 她穿着由自己17封拒稿信做成的裙子,通过了博士论文答辩!
  3. 网友的有趣发现:冬天里,欧洲古建筑上的雕像都好像“生病了”
  4. 最年轻图灵奖女性得主:谁说女的数学都比男的差
  5. 现代中国第一位数学博士是谁?
  6. 如何利用python语言实现对象数组
  7. 二维码提升对比度文献调研(3)--A Low-Complexity Algorithm for Contrast Enhancement of Digital Images
  8. Java 回调 (Callback) 接口学习使用
  9. web通讯录之登录注册界面
  10. 用C++11的std::async代替线程的创建