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 {条件列表};
  • 条件:

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

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

  • link 占位符条件使用:

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

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

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

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

1. 统计数量(count)

2. 最大值(max)

3. 最小值(min)

4. 平均值(avg)

5. 求和(sum)

四.分组查询(group by)

select {字段列表} from {表名} [where {条件}] group {分组字段名} [having {分组后过滤条件}];
  • wherehaving的区别:

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

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

五.排序查询(order by)

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

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

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

2. 降序(DESC)

六. 分页查询(limit)

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

七. 执行顺序

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

  1. from 表名列表
  2. where 条件列表
  3. group by 分组字段列表
  4. having 分组后条件列表
  5. select 字段列表
  6. order by 排序字段列表
  7. limit 分页参数

MySQL学习笔记-数据查询语言的更多相关文章

  1. MySQL学习笔记 -- 数据表的基本操作

    数据库是一个可以存放数据库对象的容器,数据库对象包括:表.视图.存储过程.函数.触发器.事件.其中,表是数据库最基本的元素,是其他数据库对象的前提条件. 表中的一列称为一个字段,一行称为一条记录. 1 ...

  2. mysql学习笔记--数据操作

    一.插入数据 1. 语法:insert into 表名 (字段名.字段名,...) values (值1,值2...) 2. 注意: a. 插入字段的个数和顺序与值的个数和顺序必须一致 b. 通过de ...

  3. mysql学习笔记--数据库内置函数

    一.数字类 1. 生成随机数:rand() a. 随机抽取2位 select * from stuinfo order by rand() limit 2 2. 四舍五入:round(数字) 3. 向 ...

  4. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  5. mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记

    mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...

  6. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  7. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  8. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  9. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

  10. MySQL学习笔记-锁相关话题

    在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因.   Mysql常用存储引擎的锁 ...

随机推荐

  1. bookstack书栈网docker搭建

    准备好数据后,直接运行以下命令即可. docker run -d --name bookstack \ --restart always \ --privileged=true\ -p 8181:81 ...

  2. .NET Emit 入门教程:第六部分:IL 指令:9:详解 ILGenerator 指令方法:运算操作指令(指令篇结束)

    前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令. 参数存储指令,其指令以 St 开头,将栈中的数据,存储到 ...

  3. 【pytorch学习】之概率

    6 概率 简单地说,机器学习就是做出预测.根据病人的临床病史,我们可能想预测他们在下一年心脏病发作的概率.在飞机喷气发动机的异常检测中,我们想要评估一组发动机读数为正常运行情况的概率有多大.在强化学习 ...

  4. 暑期集训 Day5 —— 模拟赛复盘

    ${\color{Green} \mathrm{Problem\ 1 :选数 }} $ 签到题,一眼二分,但是打模板时死循环了: while(L<R){ int mid=(L+R)>> ...

  5. 硬之城携手阿里云 Serverless 应用引擎(SAE)打造低代码平台

    简介: 简化用云的成本,把复杂留给自己,简单留给用户. 作者 | 陈泽涛(硬之城产品总监)& 洛浩(阿里云云原生高级架构师) 硬之城成立于 2015 年,是一家以电子元器件 BOM 整体供应为 ...

  6. 压测场景下的 TIME_WAIT 处理

    简介: 压测场景下的 TIME_WAIT 处理 1. 序 某专有云项目具备压测场景,在Windows的压测机上用 LoadRunner 进行业务的压力测试,压测运行一段时间后出现大量端口无法分配的报错 ...

  7. [Go] 浅谈 Golang Chan 通信与死锁:all goroutines are asleep - deadlock

    Channel创建方式: var c1 chan [value type] c1 = make([channel type] [value type], [capacity]) [value type ...

  8. dotnet 读 WPF 源代码笔记 渲染层是如何将字符 GlyphRun 画出来的

    从业务代码构建出来 GlyphRun 对象,在 WPF 的渲染层里,如何利用 GlyphRun 提供的数据将字符在界面呈现出来.本文将和大家聊聊从 WPF 的渲染层获取到 GlyphRun 数据,到调 ...

  9. SpringBoot3.1.5对应新版本SpringCloud开发(1)-Eureka注册中心

    服务的提供者和消费者 服务之间可以通过Spring提供的RestTemplate来进行http请求去请求另一个Springboot的项目,这就叫做服务间的远程调用. 当一个服务通过远程调用去调用另一个 ...

  10. 14、web 中间件加固-Tomcat 加固

    1.用户配置 如果不需要控制台管理,请更改控制台用户文件注销账号信息:如果需要,请更改账户信息 修改 tomcat/conf/tomcat-user.xml 文件 注释或修改如下信息 <role ...