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 {条件列表};
- 条件:
- 字段列表:指的是查找出来的最终结果包括哪些列(* 为全部),如想找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 {分组后过滤条件}];
- where和having的区别:
- 执行时机不同: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的语法顺序和执行顺序并不相同,实际查询结果受执行顺序影响。
- from 表名列表
- where 条件列表
- group by 分组字段列表
- having 分组后条件列表
- select 字段列表
- order by 排序字段列表
- limit 分页参数
MySQL学习笔记-数据查询语言的更多相关文章
- MySQL学习笔记 -- 数据表的基本操作
数据库是一个可以存放数据库对象的容器,数据库对象包括:表.视图.存储过程.函数.触发器.事件.其中,表是数据库最基本的元素,是其他数据库对象的前提条件. 表中的一列称为一个字段,一行称为一条记录. 1 ...
- mysql学习笔记--数据操作
一.插入数据 1. 语法:insert into 表名 (字段名.字段名,...) values (值1,值2...) 2. 注意: a. 插入字段的个数和顺序与值的个数和顺序必须一致 b. 通过de ...
- mysql学习笔记--数据库内置函数
一.数字类 1. 生成随机数:rand() a. 随机抽取2位 select * from stuinfo order by rand() limit 2 2. 四舍五入:round(数字) 3. 向 ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
- MySQL学习笔记-锁相关话题
在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因. Mysql常用存储引擎的锁 ...
随机推荐
- websocket fleck demo
前言 fleck 比较简洁,想看下他的源码的,先感受一下demo吧. 正文 先上代码. static IDictionary<string, IWebSocketConnection> d ...
- Sarsa模型和Q_learning模型简记
1. Sarsa模型 1.1 Sarsa类代码: class SarsaAgent(object): def __init__(self,state_n,action_n,learning_rate= ...
- 《Effective C#》系列之(五)——优化集合的使用
一.优化集合的使用 在<Effective C#>这本书中,优化集合的使用是其中一章的内容.以下是该章节的一些核心建议,以及使用C#代码示例说明: 使用泛型集合:泛型集合可以避免装箱和拆箱 ...
- 2024-04-21:用go语言,给一棵根为1的树,每次询问子树颜色种类数。 假设节点总数为n,颜色总数为m, 每个节点的颜色,依次给出,整棵树以1节点做头, 有k次查询,询问某个节点为头的子树,一共
2024-04-21:用go语言,给一棵根为1的树,每次询问子树颜色种类数. 假设节点总数为n,颜色总数为m, 每个节点的颜色,依次给出,整棵树以1节点做头, 有k次查询,询问某个节点为头的子树,一共 ...
- 性能提升40%!阿里云神龙大数据加速引擎获TPCx-BB世界排名第一
简介:神龙大数据加速引擎,针对大数据常用组件,如Spark.Hadoop.Alluxio等,结合阿里云神龙架构的特性,进行软硬一体化优化,形成独一无二的性能优势,最终,使复杂SQL查询场景性能相比社 ...
- 一款跑在云上的定制容器专属 OS 来了——LifseaOS | 龙蜥技术
简介:如果可以把运维 API 化,那我们是不是可以把 OS 也作为一个 K8S 可以管理的资源,让 K8S 像管理容器一样管理OS? 引言 在 2021 年 10 月的云栖大会上,为云原生而生的 ...
- [php-src] Php内核的有趣高频宏
内容均以php-5.6.14为例. 1. EXPECTED 和 UNEXPECTED 宏,用在判断条件的时候. ./Zend/zend.h:390 #if (defined (__GNUC__) &a ...
- 🎉号外号外!OpenTiny 将在HDC华为开发者大会正式发布!
华为开发者大会2023(HDC.Cloud 2023)将于7月7日-9日在东莞拉开帷幕,本届大会以"每一个开发者都了不起"为主题,同时在全球10余个国家以及中国30多个城市设有分会 ...
- redis系列02---缓存过期、穿透、击穿、雪崩
一.缓存过期 问题产生的原由: 内存空间有限,给缓存设置过期时间,但有些键值运气比较好,每次都没有被我的随机算法选中,每次都能幸免于难,这可不行,这些长时间过期的数据一直霸占着不少的内存空间! 解决方 ...
- RK 平台安装 ubuntu 系统
一.简介 之前有介绍到 ARM 平台移植 ubuntu 的操作流程,在 RK 系列的平台同样适用,所以这里就不介绍怎么一步步的去对 ubuntu 进行移植,而是怎么将移植的过程编写成脚本,这样便可以在 ...