当前位置:   article > 正文

Mysql查询语句进阶(最详细的查询语句来了,还不赶快收藏~~)_mysql进阶查询

mysql进阶查询

查询作为数据库操作中最常用的操作,一定要牢牢记住!!!

文章目录

  • Mysql查询语句进阶

  • 一、常用操作
  • 二、基础查询
  • 排序查询
  • 聚合函数
  • 分组查询

一、常用操作

select  字段列表

from   表名列表

where  条件列表

group by 分组

having 分组后的条件

order by

limit 分页限定

select *(查询条件)

from   表明

where  限制条件

二、基础查询

查询某一列无重复的字段

SELECT  DISTINCT  列名 FROM 表名; 

SELECT NAME,num,goal,num +IFNULL(goal,0)  AS 总分 FROM student_test;

IFNULL(goal,0)   (如果goal为null  就把null变成0)

比较灵活  较为简单

条件查询:

1.空值判断: is null

查询 emp 表中 comm 列中的空值。

Select * from emp where comm is null;

2.between and (在 之间的值)

Select * from emp where sal between 1500 and 3000;

查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。

注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。

3.

  In

Select * from emp where sal in (5000,3000,1500);

查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。

4.like

Like模糊查询

Select * from emp where ename like 'M%';

查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

  •  % 表示多个字值,_ 下划线表示一个字符;

  •  M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。

  •  %M% : 表示查询包含M的所有内容。

  •  %M_ : 表示查询以M在倒数第二位的所有内容。

SELECT *

FROM student_test

WHERE NAME LIKE '%%华'  %占位符

正在上传…

查询姓名是三个字的人:

select * from student where name like '___';

查询名字中带 '华" 的人:

WHERE NAME LIKE '%华%'   


三、排序查询

  1. SELECT NAME,goal
  2. FROM student_test
  3. ORDER BY goal (默认升序 也可以加入ASC
  4. SELECT NAME,goal
  5. FROM student_test
  6. ORDER BY goal DESC(加上desc 降序)
  7. SELECT *
  8. FROM student_test
  9. ORDER BY num DESC,goal ASC(第一条件若相同,执行第二条排序条件)

四、聚合函数

将一列数据作为一个整体,进行纵向的计算(排除非空的集合)

可以用IFNULL(列名,0)//把空值设置成0

基本语法:  select 操作(列名) from 表名

  1. count:计算个数
  2. SELECT COUNT(NAME) FROM student_test;
  3. max(min):  计算最大值(最小值)
  4. SELECT MAX(num) FROM student_test;
  5. sum: 计算和
  6. SELECT SUM(num) FROM student_test;
  7. avg:  计算平均值
  8. SELECT AVG(num) FROM student_test;

、分组查询

基本语法:  group by 分组字段
需求:     
分别查出女生与男生的平均成绩,并要求这这些成绩是大于80的,且男生组,女生组的人数必须大于2个人
where 与 having的区别:(面试常问题之一)
1位置不一样   where同在分组之前进行限定,若不满足条件,则不参与分组,having用在分组之后,如果不满足结果,则不会被查询出来
就像一个在寻找时有了限定 另一个知道结果后做了限定
2where后不可加聚合函数      having语句可以加

分页查询:

语法:  limit 开始查询的索引,每页查询的条数 
 公式 = 开始的索引 = (当前页码 - 1)*每页的条数            
  1. SELECT *
  2. FROM student_test
  3. LIMIT 0,3; // 第一页
  4. SELECT *
  5. FROM student_test
  6. LIMIT 3,3//第二页

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/490574
推荐阅读
相关标签
  

闽ICP备14008679号