黑马程序员MySQL数据库基础-SQL之DQL语句(重要!!!)

一、DQL介绍

 查询关键字:SELECT

在web页面中,我们所看到的信息,在输入框中搜索的内容都是从数据库查询出来的

二、DQL-语法

SELECT

        字段列表

FROM

        表名列表

WHERE

        条件列表

GROUP BY

        分组字段列表

HAVING

        分组后条件列表

ORDER BY

        排序字段列表

LIMIT

        分页参数

三、DQL-基本查询

1. 查询多个字段

SELECT 字段1,字段2,字段3... FROM 表名;

SELECT* FROM 表名;(查询所有字段)

但实际开发过程中并不建议写第二条语句

2. 设置别名

SELECT 字段1[AS 别名1],字段2[AS 别名2],字段3[AS 别名3]... FROM 表名;

3. 去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

四、DQL-条件查询

1. 语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;

2. 条件

 后三个条件示例:

当条件很多时,可以在每个条件处打上'()'便于区分

五、DQL-聚合函数

1. 介绍:将一列数据作为一个整体,进行纵向计算。

2. 常见聚合函数

count是统计总数据量

 3. 语法

SELECT 聚合函数(字段列表) FROM 表名;

注意:所有null值不参与聚合运算

示例

六、DQL-分组查询

1. 语法

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING分组后过滤条件]

2. where与having区别

  • 执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;而having是分组之后对结果进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,而having可以。

注意:

        执行顺序:where>聚合函数>having

        分组之后,查询到字段一般为聚合函数和分组字段,查询其他字段无意义

 分组查询举例

如果我想要从表中查询出生日期晚于1991-4-23,根据部门分组,获取员工数量大于等于2的部门

SELECT department, count(*) FROM employee where birthdate>1991-04-23 GROUP BY  department having count(*)>=2;

七、DQL排序查询

1. 语法

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;

2. 排序方式

  • ASC: 升序(默认值)
  • DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

八、DQL分页查询

1. 语法

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注意

  •         起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
  •         分页查询是数据库的方言,不同数据库有不同实现,MySQL中是LIMIT
  •         如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10

举例如下:

​​​​​​​

 

至此,DQL语句就基本学习完毕。下面是一些案例练习

 八、DQL-执行顺序

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值