(一)模糊查询

- 1、-like:

mysql> select name as "姓名" from score where name like '张%';

+--------+

| 姓名|

+--------+

| 张三|

| 张玉洁|

| 张三|

| 张三|

| 张三|

| 张玉洁|

| 张玉洁|

| 张玉洁|

+--------+

8 rows in set

2、is null

mysql> select name as "姓名" from score where name is null;

Empty set

3、between

mysql>  select name , score from score where score between 80 and 100;

+--------+-------+

| name   | score |

+--------+-------+

| 张玉洁|    98 |

| 张三|    86 |

| 张三|    97 |

| 张玉洁|    98 |

| 李一|    80 |

+--------+-------+

5 rows in set

4、in

mysql> select name,score from score where score in (97,98);

+--------+-------+

| name   | score |

+--------+-------+

| 张玉洁|    98 |

| 张三|    97 |

| 张玉洁|    98 |

+--------+-------+

3 rows in set

(二)聚合函数

1、sum()

mysql> select sum(score) as "李一总成绩" from score where name="李一";

+------------+

| 李一总成绩|

+------------+

| 223        |

+------------+

1 row in set

2、avg()

mysql> select avg(score) as "李一平均成绩" from score where name="李一";

+--------------+

| 李一平均成绩|

+--------------+

| 74.3333      |

+--------------+

1 row in set

3.max() min()

mysql> select max(score) from score;

+------------+

| max(score) |

+------------+

|         98 |

+------------+

1 row in set

4.count()

mysql> select count(score) as "大于70分的成绩个数" from score where score > 70;

+--------------------+

| 大于70分的成绩个数|

+--------------------+

|                  6 |

+--------------------+

1 row in set

(三)分组查询:

mysql> select name,avg(score),courseName from score group by name,courseName;

+--------+------------+------------+

| name   | avg(score) | courseName |

+--------+------------+------------+

| 张三| 97.0000    |数学|

| 张三| 67.0000    |英语|

| 张三| 60.0000    |语文|

| 张玉洁| 43.0000    |数学|

| 张玉洁| 98.0000    |英语|

| 张玉洁| 98.0000    |语文|

| 李一| 80.0000    |数学|

| 李一| 66.0000    |英语|

| 李一| 77.0000    |语文|

+--------+------------+------------+

mysql> select name,avg(score),courseName from score group by name,courseName having count(courseName)>1;

+--------+------------+------------+

| name   | avg(score) | courseName |

+--------+------------+------------+

| 张三| 60.0000    |语文|

| 张玉洁| 43.0000    |数学|

+--------+------------+------------+

2 rows in set

分组查询总结:

1.WHERE子句从数据源中去掉不符合其搜索条件的数据

2.GROUP BY子句搜集数据行到各个组中

3.统计函数为各个组计算统计值

4.HAVING子句去掉不符合其组搜索条件的各组数据行

5使用GROUP BY时,select后面出现的内容要么为聚合函数,要么为group by后面出现的内容

(四)多表链接查询:

1.内连接:

(1)用inner join 但这种方法不常用 常用第二种;

mysql> select username,starname from users as u inner join star as s on u.starid=s.starid;

+----------+----------+

| username | starname |

+----------+----------+

| 张一|白羊座|

| 李二|金牛座|

| 王三|双子座|

| 张四|巨蟹座|

| 李五|狮子座|

| 张八|处女座|

| 王九|天秤座|

| 张言|天蝎座|

| 李志|射手座|

| 王月|水瓶座|

| 张欣|双鱼座|

+----------+----------+

11 rows in set

(2)from where

select username,starname from users as u,star s where u.starid=s.starid;

+----------+----------+

| username | starname |

+----------+----------+

| 张一|白羊座|

| 李二|金牛座|

| 王三|双子座|

| 张四|巨蟹座|

| 李五|狮子座|

| 张八|处女座|

| 王九|天秤座|

| 张言|天蝎座|

| 李志|射手座|

| 王月|水瓶座|

| 张欣|双鱼座|

+----------+----------+

11 rows in set

2.外连接:

(1)左连接,返回左表的所有数据以及右表对应的数据。  Left join

mysql> select starname,username from users as u left join star s on u.starid=s.starid;

+----------+----------+

| starname | username |

+----------+----------+

| 白羊座|张一|

| 金牛座|李二|

| 双子座|王三|

| 巨蟹座|张四|

| 狮子座|李五|

| 处女座|张八|

| 天秤座|王九|

| 天蝎座|张言|

| 射手座|李志|

| 水瓶座|王月|

| 双鱼座|张欣|

+----------+----------+

11 rows in set

(2)右连接,返回右表的所有数据以及左表相对应的数据。Right join

(五)子查询

在某些特定的业务需求下,当进行查询的时候,需要的条件是另外一个 select语句的结果,这个时候,就要用到子查询。

用于子查询的关键字主要包括 in、not in、=、!=、exists、not exists……

1. 比较运算符  >

mysql> select username,height from users where height >(select height from users where username="张四");

+----------+--------+

| username | height |

+----------+--------+

| 李二|    155 |

| 王三|    160 |

| 李五|    160 |

| 张八|    168 |

| 王九|    170 |

| 张言|    176 |

| 李志|    180 |

| 王月|    176 |

| 张欣|    180 |

+----------+--------+

9 rows in set

2. 子查询 in

mysql> select starid,username,height from users where starid in(select starid from users where height>170);

+--------+----------+--------+

| starid | username | height |

+--------+----------+--------+

|      8 | 张言|    176 |

|      9 | 李志|    180 |

|     11 | 王月|    176 |

|     12 | 张欣|    180 |

+--------+----------+--------+

4 rows in set

3. Exists

(1)mysql> select starname from star where exists(select * from star where starid=13);

Empty set

(2) mysql> select starname from star where exists(select * from star where starid<13);

+----------+

| starname |

+----------+

| 白羊座|

| 金牛座|

| 双子座|

| 巨蟹座|

| 狮子座|

| 处女座|

| 天秤座|

| 天蝎座|

| 射手座|

| 摩羯座|

| 水瓶座|

| 双鱼座|

+----------+

12 rows in set

Exists()括号内为真 则前面的语句执行,为假则前面的语句不执行;EXISTS也可以作为WHERE语句的子查询,但一般都能用IN子查询替换。

4. not exists

与exists刚好是反的。

5. mysql> select sum(avg_score) from(select avg(score) as avg_score from score group by name) as t1;

+----------------+

| sum(avg_score) |

+----------------+

| 215.8333       |

+----------------+

1 row in set

mysql>

mysql 高级查询总结_MySQL高级查询总结相关推荐

  1. MySQL第九章索引_MySQL高级(索引优化+慢查询定位)

    一.先谈谈事务 1. ACID特性 1.1 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用: 1.2 一致性: 执行事务前后,数据库从一个一致性状态转换 ...

  2. mysql高级查询 二_MySQL高级查询(二)

    EXISTS 和NOT EXISTS子查询 EXISTS子查询 语法: SELECT --- FROM 表名 WHERE EXISTS (子查询); 例: SELECT `studentNo` AS ...

  3. mysql 高级查询词_Mysql高级查询语句

    Exists子查询 Exists的特点 1.在执行create或drop语句前,可以使用exists语句来判断数据库对象是否存在,返回值是true或false drop table if exists ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. FT(Fourier Transform)在滤波上的应用
  2. php关机启动不了,win10关机关不掉怎么办
  3. 链表问题7——判断一个链表是否为回文结构
  4. 为啥led灯用一年后暗了很多_嫌原车的卤素“蜡烛灯”太暗,想换掉,该选氙气灯还是LED灯?...
  5. MonogoDb学习笔记
  6. centos安装后两个启动项、_久违的更新—黑苹果的简易安装
  7. 更新yum源并重建缓存
  8. APP安全环节缺失,手游运营商怎样应对APP破解困境
  9. react 导航条选中颜色_调整安卓手机的颜色以更好地查看一切
  10. ps怎么对比原图快捷键_PS裁剪几大构图法
  11. Could not find artifact org.olap4j:olap4j:pom:0.9.7.309-JS-3 in alimaven
  12. vs怎么把文字超链接_怎么拥有自己设计的简单个人网站(超细节)
  13. Linux下安装lingo教程-centos6 64位
  14. 智慧树工业机器人测试答案_智慧树_工业机器人技术基础_答案章节单元测试答案...
  15. pdf阅读神器推荐——PDF-XChange Editor V8
  16. 职高学计算机可以考的大学名单,职高可以考的大学有哪些
  17. C语言程序设计-鸡兔同笼问题
  18. 图片对象(lv_img_t)的应用
  19. java 虚拟机(JVM)
  20. linux生命游戏实现,模拟生命——Conway生命游戏python实现(详细注释笔记)

热门文章

  1. export PATHONPATH的用法
  2. 阿里云Linux服务器部署Mysql,JDK以及Tomcat教程
  3. MIMO-UNet学习
  4. 根据当前日期获取本周、本月、本季度相关日期
  5. 树莓派清华镜像源“stretch”更换为“buster”,解决tensorflow、h5py安装包下载报错问题
  6. Docker(9) 安装Oracle18c
  7. No.1_NABCD模型分析
  8. android 呼吸灯,十三种呼吸灯交互触控体验_手机_手机Android频道-中关村在线
  9. 一个技术总监的个人综合评估,希望对大家能有所帮助(转)
  10. 【计算机组成原理】计算机系统结构笔记:合集