我的学习笔记 - MySQL - DQL 查询表中的数据

一 : 语法

select 
	-- 列名
from  
	-- 表名
where
	-- 限定条件
group by
	-- 分组列名
having 
	-- 分组后 限定条件
order by
	-- 排序
limit
	-- 分页限定

------------------------------------------------------------------------------------------------------------------------

二 : 基础查询

1 . 全部查询(一般公司里不让用)

        语法 :

                select * from  表名;

2 . 按列名查询

        语法 :

                select 列名1, 列名2, from  表名;

3 . 去重复 查询

        关键字 :

                distinct

        语法 :

                select distinct 列名 from  表名;

4 . 计算列

        语法 :

                select  列名1+列名2  from  表名;

        语法 - 解决 有值为 null 的情况:

                select  列名1+ifnull (列名2, 0) from  表名;

        注意 1 : 一般可以使用四则运算,计算一些列的值

        注意 2 : 一般只会进行  数值型  的计算

        注意 3 : 如果一个列名为 null,则运算结果就为 null,需要用到 ifnull (列名, 替换表达式)

5 . 起别名

        语法 - 1 :

                select 列名1  as  别名  from  表名;

        语法 - 2 :

                select  列名1+列名2  as  别名  from  表名;

        语法 - 3 :

                select 列名1 as  别名 列名2 as  别名, from  表名;

        注意: as 可以省略

------------------------------------------------------------------------------------------------------------------------

三 : 条件查询

1 . 基本语法

         where 条件;

2 . 运算符查询 - 比较

        关键词

                大于 :  >  、小于 :  <  、大于等于 :  >=  、小于等于 :  <=  、等于 :  、不等于 :  <>

        语法 : 

                select * from  表名 where 列名 = ;

        null 的比较 :

                 where  列名  is null

                 where  列名  is not null

3 . 运算符查询 - 逻辑

        关键词: 

                且: and  、或: or  、

                在 x 和 y 之间 :  between  x  and  y  、

                当等于几个值任意一个 :  in (x, y, z)

        语法 - 并且:

                select * from  表名 where 条件1  and  条件2;

        语法 - 或者:

                select * from  表名 where 条件1  or  条件2;

        语法 - 在 x 和 y 之间:

                select * from  表名 where 列名  between  20  and  30;

        语法 - 当 = 20 或 =22 或 =32 :

                select * from  表名 where 列名  in  (20, 22, 32);

3 . LIKE  模糊查询

        关键词: 

                like

        占位符:

                %  :  任意数量的字符,包括 0 个

                _    :  单个任意字符

        语法

                select * from  表名 like ‘%%’;

                select * from  表名 like ‘_ _’;

                select * from  表名 like ‘_ %’;

------------------------------------------------------------------------------------------------------------------------

四 : 排序查询

1 . 基本语法

        单条件、默认,排序

                select * from  表名 order by  列名;

        多条件、默认,排序

                select * from  表名 order by  列名1列名2   ;

        单条件、指定方式,排序

                select * from  表名 order by  列名  math  排序方式;

        多条件、指定方式,排序

                select * from  表名 order by  列名1  math  排序方式1,  列名2  math  排序方式2   ;

        注意:

                若多个排序条件,则当前一个条件值一样时,才判断下一个条件

2 . 排序方式

        升序 :  ASC     ( 默认的 )

        降序 :  DESC

------------------------------------------------------------------------------------------------------------------------

五 : 聚合函数 查询

1 . 关键词

        count : 计算数量  ( 会排除 null 值)

        max : 计算最大值

        min : 计算最小值

        sum : 计算和

        avg : 计算平均值

2 . 语法

        select count( 列名 ) from  表名;

        select count( ifnull ( 列名 , 0 ) ) from  表名;

        select max( 列名 ) from  表名;            

        ……

------------------------------------------------------------------------------------------------------------------------

六 : 分组 查询

1 . 关键词

         group by  列名

         having  判断条件

2 . 语法

        按照 “某一列” 的的数据分组

                select  列名聚合函数1聚合函数2,   from  表名  group by  列名;

        举例,如列名为 “性别”,数据为 “男” 和 “女”,就可以分为 男 女 两组。

                select  性别avg(成绩)count(id)  from  students  group by  性别;

                ┌┈┈┈┬┈┈┈┈┈┬┈┈┈┈┈┐

                    性别       avg(成绩)      count(id)

                ├┈┈┈┼┈┈┈┈┈┼┈┈┈┈┈┤

                      男              91                   3

                ├┈┈┈┼┈┈┈┈┈┼┈┈┈┈┈┤

                      女              98                  24

                └┈┈┈┴┈┈┈┈┈┴┈┈┈┈┈┘

        分组前,加限定判断

                select  列名聚合函数  from  表名  where  条件  group by  列名;

        分组之后,加限定判断

                select  列名聚合函数  from  表名  group by  列名  having  条件;

        注意:

                分组之后,查询的字段,只能是 “分组的列名” 以及 “聚合函数”。

                其他的列名失去了查询意义。

                where 后不可以跟 聚合函数, 而 having 后可以进行 聚合函数 的判断。

------------------------------------------------------------------------------------------------------------------------

七 : 分页 查询

1 . 关键词

        limit  开始的索引 此页展示几条数据;

2 . 语法

        例:第一页,从第 1 条数据开始显示,展示 10 条数据

                select * from  表名 limit  0, 10;

        例:第二页,从第 11 条数据开始显示,展示10 条数据

                select * from  表名 limit  10, 10;

3 . 重点公式

        根据 “当前的页码” 计算出 “当前页开始的索引”

                当前页开始的索引  =  ( 当前的页码 - 1 ) * 每页显示的条数

4 . 注意

        limit 分页操作是 MySQL “方言”

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knock Zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值