Loading

MySQL学习笔记-数据查询语言

SQL-数据查询语言(DQL)

  • DQL语法结构
#DQL语句编写顺序
select
			字段列表
from
			表名列表
where
			条件列表
group by
			分组字段列表
having
			分组后条件列表
order by
			排序字段列表
limit
			分页参数

一.基本查询

1. 查询多个字段

select {字段1},{字段2},{字段3}... from {表名};

#返回所有字段
select * from {表名};

2. 设置别名

select {字段1} [as {别名1}],{字段2} [as {别名1}]... from {表名};
  • as可以省略
  • 别名就是展示的时候把字段名换成别名,看起来更直观

3. 去除重复记录

select distinct {字段列表} from {表名};
  • 去除重复记录只是展示时候重复的部分不展示出来了,不是删除(DQL不能操作数据)。

二.条件查询(where)

select {字段列表} from {表名} where {条件列表};
  • 条件:

image

  • 字段列表:指的是查找出来的最终结果包括哪些列(* 为全部),如想找18岁的人的名,那列表就是name,条件是age=18。

image

  • 条件也可以组合:如is null查询是null的,is not null查询非null的。
  • between...and...条件只能从小到大,从大到小会查询不到。
  • in(...)条件相当于多个or,括号内使用逗号分隔:

image

  • link 占位符条件使用:

image

image

注意:%匹配任意字符需要关注%所在位置,比如找李姓的,就是'李%',找中间字是‘一’的,就是'%一%'

三.聚合函数(count,max,min,avg,sum)

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

select {聚合函数}({字段列表}) from {表名};
  • null值不参与所有聚合函数运算。
  • 可以和其他函数结合使用,如和where函数结合寻找特定条件下的聚合函数结果。

1. 统计数量(count)

image

2. 最大值(max)

image

3. 最小值(min)

image

4. 平均值(avg)

image

5. 求和(sum)

image

四.分组查询(group by)

select {字段列表} from {表名} [where {条件}] group {分组字段名} [having {分组后过滤条件}];
  • wherehaving的区别:
    • 执行时机不同:where是分组之前进行过滤,不满足where条件的不参与分组;having是分组之后进行过滤。
    • 判断条件不同:where不能对聚合函数进行判断,而having可以。

image

  • 执行顺序:where -> 聚合函数 -> having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义。
  • 例子:

image

五.排序查询(order by)

对某个字段(或多个字段)使用指定的排序方式(升序或降序)查询

select {字段列表} from {表名} order by {字段1} {排序方式1},{字段2} {排序方式2};
  • 如果是多字段排序,会从第一个字段开始排,如果第一个字段相同,则根据第二个字段排序……以此类推。

1. 升序(ASC)(默认值)

image

2. 降序(DESC)

image

六. 分页查询(limit)

select {字段列表} from {表名} limit {起始索引},{查询记录数};
  • 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数
  • 如果查询第一页数据,则起始索引可以省略。
  • MySQL和Oracle中分页查询的关键字不一样。

image

七. 执行顺序

DQL的语法顺序和执行顺序并不相同,实际查询结果受执行顺序影响。

  1. from 表名列表
  2. where 条件列表
  3. group by 分组字段列表
  4. having 分组后条件列表
  5. select 字段列表
  6. order by 排序字段列表
  7. limit 分页参数
posted @ 2023-02-24 16:41  YellowSeaa  阅读(19)  评论(0编辑  收藏  举报