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 '%华%'   


三、排序查询

SELECT NAME,goal
FROM student_test
ORDER BY goal  (默认升序 也可以加入ASC)
SELECT NAME,goal
FROM student_test
ORDER BY goal DESC(加上desc  降序)
SELECT *
FROM student_test
ORDER BY num DESC,goal ASC(第一条件若相同,执行第二条排序条件)

四、聚合函数

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

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

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

count:计算个数

SELECT COUNT(NAME) FROM student_test;

max(min):  计算最大值(最小值)

SELECT MAX(num) FROM student_test;

sum: 计算和

SELECT SUM(num) FROM student_test;

avg:  计算平均值

SELECT AVG(num) FROM student_test;

、分组查询

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

分页查询:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值