Mysql:DQL查询语句(补充)

1.1基础查询

1.去重结果集:distinct

select distinct * from t_stu;

2.计算列:一般可以使用四则运算计算一些列的值(一般只会进行数值类型的计算)

ifnull(表达式1,表达式2):null参与的计算,计算结果都为null

表达式1:那个字段需要判断是否为null

表达式2:如果该字段为null后的替换值

ifnull(score,0) -- score字段中的null会被替换成0

1.2排序查询

语法1:

order by 子句

语法2:

order by 排序字段1 排序方式1,排序字段2 排序方式2,...

排序方式:

ASC:升序(默认的)

DESC:降序

注意:如果多个排序条件,则当前边的条件值一样是,才会判断第二条件。

1.3聚合函数:将一列数据作为一个整体,进行纵向的计算

1.count:计算个数

2.max:计算最大值

3.min:计算最小值

4.sum:计算总和

5.avg:计算平均值

注意:聚合函数的计算,排除null值。

解决方案:1.选择非空的列进行计算;2.IFNULL函数

1.4分组查询

1.语法:

group by 分组字段;

注意:

分组之后查询的字段:分组字段或聚合函数

where和having的区别?(面试常问)

  • where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。
  • where后不可以跟聚合函数,having可以进行聚合函数的判断。

1.5分页查询

语法:

limit (当前页码-1)*每页显示的条数,每页显示的条数

limit是一个MySQL"方言"

1.6模糊查询

关键字:LIKE

占位符:

-- _:单个任意字符   %:多个任意字符

 1.7多表查询

分类:

1.子查询

2.内连接查询

  •  隐式内连接:使用where条件消除无用数据
  • 显示内连接:
    select 字段列表 from 表名1 [inner] jon 表名2 on 条件;

3.外连接查询

  • 左外链接:查询的是左表所有数据以及其交集部分。
     select 字段列表 from 表名1 left [outer] jon 表名2 on 条件;
  • 右外链接:查询的是右表所有数据以及其交集部分。
     select 字段列表 from 表名1 right [outer] jon 表名2 on 条件;
posted @ 2020-04-16 23:19  等等啦  阅读(117)  评论(0)    收藏  举报