查询表中数据(全列/特定列/表达式,where子句(比较/逻辑运算符),order by子句,limit筛选分页),mysql执行顺序

目录

select

全列查询

特定列查询

用表达式查询 

(as) + 名字 

distinct 去重 

where子句 

比较运算符

列数据之间的比较

​编辑 

别名不能参与比较

null查询

between and

in ( ... , ...) 

模糊匹配 

逻辑运算符

order by子句

可以使用别名 

总结mysql执行顺序

筛选分页 

示例


select

全列查询

select * from +表名

  • 相当于遍历了一遍表数据
  • 如果数据量大,最好不要这样做

特定列查询

select + 列名(,列名1,列名2...) + from 表名

  • 可以查某列/多列数据,按照指定的列顺序显示数据
  • ''

用表达式查询 

select + 常数/表达式 + from 表名

  • 会将常数/表达式的结果与每行拼接在一起

可以用于计算表中数据,然后将结果显示出来:

(as) + 名字 

select 列1+列2... as + 名字 + from 表名

  • 可以为查询结果重命名
  • as可加可不加
  • 属于显示范畴

 

distinct 去重 

select distinct+列名/表达式

为某列去重:

为表达式的运算结果去重:

where子句 

比较运算符

列数据之间的比较
 
别名不能参与比较

这是mysql的执行顺序导致的

  • 首先确定数据从哪来 -- 某张表
  • 然后带着筛选条件去所选数据中寻找 -- where子句,而不是先拿到所有数据,再去筛选
  • 最后将找到的数据按照给定的显示方式,显示出来

所以,where子句在先,他就无法识别sum是什么

null查询

不安全指的是,null无法参与比较

  • 所以返回的是null,而不是1/0

!=和<>也是null不安全的:

所以,一般如果需要和null进行比较,会使用is (not) null

between and

in ( ... , ...) 

可以将列数据与()内所给数据匹配的行显示出来:

模糊匹配 

分为两种匹配方式:匹配任意字符%,匹配一个字符_

其实,mysql是不区分' '和" "的,习惯哪种就用哪种:

 

逻辑运算符

相当于我们代码中的&&,||,!

非常好理解的

比如:找到数学成绩>60,英语成绩大于90的学生:

order by子句

order by + 列名 asc(升序)/desc(降序)

可以将某列数据按升序或降序排列显示

  • 默认是升序

也可以将多列进行排序,当第一列是相同数据时,按照第二个给出的顺序排列

null会被看作是最小值

可以使用别名 

order by子句中可以使用查询列时使用的别名

  • 因为如果想要排序,就得先拿到所有找到的数据,也就是说,它的顺序在显示范畴之后
总结mysql执行顺序

所以,再次总结一下mysql执行的顺序:

  • 首先确定是操作哪张表
  • 如果有where子句,说明我们只需要表中的一部分数据,如果不先筛选掉,在之后的处理中,就会处理无效数据(没必要)
  • 所以,我们先执行where子句,拿到有效数据(筛选行)
  • 然后根据需要显示的列,拿到相应的列数据(筛选列)
  • 最后,将我们拿到的完全有效的数据,进行排序,显示给我们

 

筛选分页 

limit + m,n / limit n offset m

  • 用于在数据量大的时候使用,防止进程卡死
  • m:从哪个位置开始显示(默认开始位置为0,可以看作是下标)
  • n:显示行数

它比order的执行顺序还要更后

  • 因为它是在数据已经准备好了的情况下,决定显示哪几条的

示例

这样就可以显示出从第二个位置(下标为1)的一条数据:

(注意,这里两次打印中,sum相同时,名字顺序不同,是因为:我们不能相信不经过排序的列数据顺序,他很可能是随机的)

如果要分页显示:

只需要要每次变化m的值即可(m+=n)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/761516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自然灾害威力大 北斗预警守护家

从台风强降雨的洪流到山火肆虐&#xff0c;近几年来自然灾害对人民群众造成的伤害越发沉重&#xff0c;我们无法根本上杜绝自然灾害的发生&#xff0c;如果在灾害发生前能够及时准确的播报相关预警信息&#xff0c;给人民群众尽力争取转移的时间&#xff0c;那将可以减免损失&a…

【小沐学AI】Google AI大模型的一点点学习(Python)

文章目录 1、Google AI简介1.1 Google AI Studio1.2 Bard1.3 PaLM1.4 Gemini1.5 Gemini API1.6 Vertex AI1.7 Gemma 2、Google AI开发2.1 快速入门2.1.1 配置开发环境2.1.2 列出所有模型2.1.3 从文本输入生成文本2.1.4 从图像和文本输入生成文本2.1.5 聊天对话 结语 1、Google …

LeetCode 0310.最小高度树:拓扑排序秒了

【LetMeFly】310.最小高度树&#xff1a;拓扑排序秒了 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-height-trees/ 树是一个无向图&#xff0c;其中任何两个顶点只通过一条路径连接。 换句话说&#xff0c;一个任何没有简单环路的连通图都是一棵树。 给你…

代码随想录算法训练营 DAY 16 | 104.二叉树最大深度 111.二叉树最小深度 222.完全二叉树的节点个数

104.二叉树最大深度 深度和高度 二叉树节点的深度&#xff1a;指从根节点到该节点的最长简单路径边的条数或者节点数&#xff08;取决于深度从0开始还是从1开始&#xff09;二叉树节点的高度&#xff1a;指从该节点到叶子节点的最长简单路径边的条数或者节点数&#xff08;取…

Linux学习:git补充与调试工具gdb

目录 1. git版本控制器&#xff08;续&#xff09;1.1 git本地仓库结构1.2 git实现版本控制与多人协作的方式1.3 git相关指令&#xff0c;多分支模型与.gitignore文件 2. gdb调试工具2.1 企业项目开发流程简述与调试的必要性2.2 bug的调试思路方法与调式工具的使用 1. git版本控…

软考高级:特定领域软件架构(DSSA)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

linux网络固定ip的方式

1. 注意 默认情况下&#xff0c;我们linux操作系统 ip 获取的方式是自动获取的方式&#xff08;DHCP&#xff09;&#xff0c;自动获取在我们需要进行集群配置的时候&#xff0c;IP会经常变化&#xff0c;需要将IP固定下来。 2. 第一步 编辑我们 linux 的网卡文件 这个网卡文件…

环境变量配置

举一个小例子来演示一下环境变量配置。 在CMD中打开QQ界面&#xff0c;首先需要知道QQ.exe文件的完整路径。一旦有了这个路径&#xff0c;可以按照以下步骤操作&#xff1a; 打开CMD窗口。可以通过按下Windows键R&#xff0c;输入“cmd”并回车来打开它。在CMD窗口中&#xf…

【LINUX笔记】驱动开发框架

应用程序调动驱动程序 驱动模块运行模式 模块加载-卸载 加载卸载注册函数 加载 驱动编译完成以后扩展名为.ko&#xff0c;有两种命令可以加载驱动模块&#xff1a; insmod和modprobe 驱动卸载 驱动注册注销 //查看当前已经被使用掉的设备号 cat /proc/devices 实现设备的具…

按键模拟精灵

按键模拟精灵功能简单&#xff1a; 1.添加模拟按键 2.删除模拟按键 3.开始模拟 4.停止模拟 适合简单的按键操作&#xff0c;有需要的可以点赞收藏关注我&#xff01;

Axure RP 9 for mac中文版密钥激活版下载

Axure RP 9是一款专业的快速原型设计工具&#xff0c;它可以帮助产品设计师、交互设计师和用户体验设计师等创建高保真度、交互性强的原型&#xff0c;以便在产品开发之前进行测试和用户验证。 软件下载&#xff1a;Axure RP 9 for mac中文版密钥激活版下载 该工具具有丰富的功…

javaSwing俄罗斯方块

目录 1 绪论 1.1程序开发背景及意义 1.2开发技术概述 1.3俄罗斯方块游戏的研究现状 1.3.1 国内外研究现状 1.3.2 文献综述 2相关技术 2.4.1 硬件平台&#xff1a; 2.4.2 软件平台&#xff1a; 3 系统分析 3.1可行性分析 3.1.1经济可行性分析 3.1.2技术可行性分析 3.1.3社会可行…

Linux 文件系统:重定向、缓冲区

目录 一、重定向 1、输出重定向 2、输入重定向 3、追加重定向 4、dup2 系统调用 二、理性理解Linux系统下“一切皆文件” 了解硬件接口 三、缓冲区 1、为什么要有缓冲区? 2、刷新策略 3、缓冲模式改变导致发生写时拷贝 未创建子进程时 创建子进程时 使用fflush…

ubuntu將en01變成eth0的形式

文章目录 前言一、操作步驟1、打開grub文件2、輸入更新指令3、查看結果 二、使用步骤总结 前言 一、操作步驟 1、打開grub文件 使用管理員權限打開&#xff0c;添加新內容 sudo gedit grub2、輸入更新指令 sudo update-grub3、查看結果 使用ifconfig查看是否修改成功&…

安达发|印刷包装APS生产计划排产系统的商业价值

在当今快速消费和竞争激烈的市场环境中&#xff0c;印刷包装行业面临着前所未有的挑战。随着客户需求的多样化、交付期限的缩短以及原材料价格的波动&#xff0c;传统的生产管理方法已无法满足现代印刷包装企业的复杂需求。为了保持竞争力&#xff0c;企业必须采用先进的生产计…

接口测试面试题整理

HTTP, HTTPS协议 什么是DNSHTTP协议怎么抓取HTTPS协议说出请求接口中常见的返回状态码http协议请求方式HTTP和HTTPS协议区别HTTP和HTTPS实现机有什么不同POST和GET的区别HTTP请求报文与响应报文格式什么是Http协议无状态协议?怎么解决HTTP协议无状态协议常见的POST提交数据方…

C++进阶02 多态性

听课笔记简单整理&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 第1版&#xff1a;听课的记录代码~&#x1f9e9;&#x1f9e9; 编辑&#xff1a;梅头脑&#x1f338; 审核&#xff1a;文心一言 目录 &#x1f433;课程来源 &#x1f433;前言 &#x1f40b;运…

JAVA安全(偏基础)

SQL注入 SQLI(SQL Injection)&#xff0c; SQL注入是因为程序未能正确对用户的输入进行检查&#xff0c;将用户的输入以拼接的方式带入SQL语句&#xff0c;导致了SQL注入的产生。攻击者可通过SQL注入直接获取数据库信息&#xff0c;造成信息泄漏。 JDBC JDBC有两个方法获取s…

数据挖掘之关联规则

“啤酒和尿布的荣誉” 概念 项 item&#xff1a;单个的事物个体 &#xff0c;I{i1,i2…im}是所有项的集合&#xff0c;|I|m是项的总数项集&#xff08;item set)/模式&#xff08;pattern)&#xff1a;项的集合&#xff0c;包含k个项的项集称为k-项集数据集(data set)/数据库…

Linux快速入门,上手开发 02.VMware的安装部署

倘若穷途末路&#xff0c;那便势如破竹 —— 24.3.21 一、VMware的作用 在Windows或IOS系统下&#xff0c;给本地电脑安装VMware虚拟机&#xff0c;用来在虚拟机上安装Linux系统&#xff0c;避免重复资源的浪费&#xff0c;可以在虚拟机上搭建Linux系统进行学习 二、VMware的安…