当前位置: 首页 > news >正文

查询表中数据(全列/特定列/表达式,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)

相关文章:

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

目录 select 全列查询 特定列查询 用表达式查询 (as) 名字 distinct 去重 where子句 比较运算符 列数据之间的比较 ​编辑 别名不能参与比较 null查询 between and in ( ... , ...) 模糊匹配 逻辑运算符 order by子句 可以使用别名 总结mysql执行顺…...

【Linux】多线程概念 | POSIX线程库

文章目录 一、线程的概念1. 什么是线程Linux下并不存在真正的多线程&#xff0c;而是用进程模拟的&#xff01;Linux没有真正意义上的线程相关的系统调用&#xff01;原生线程库pthread 2. 线程和进程的联系和区别3. 线程的优点4. 线程的缺点5. 线程异常6. 线程用途 二、二级页…...

Java Spring AOP代码3分钟快速入手

AOP Spring入门(十)&#xff1a;Spring AOP使用讲解 - 掘金 maven的依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId> </dependency> <!--aspectj支持--> <dependen…...

.NET开源快速、强大、免费的电子表格组件

今天大姚给大家分享一个.NET开源&#xff08;MIT License&#xff09;、快速、强大、免费的电子表格组件&#xff0c;支持数据格式、冻结、大纲、公式计算、图表、脚本执行等。兼容 Excel 2007 (.xlsx) 格式&#xff0c;支持WinForm、WPF和Android平台&#xff1a;ReoGrid。 项…...

docker一键部署若依前后端分离版本

比如这里把文件放到/xin/docker/jiaoZ/的目录下&#xff0c;jar包和下面的配置文件都放在这个文件夹下。 注意要把jar端口改为你实际启动的&#xff0c;映射端口也可以改为你想要的。 这里的映射端口为&#xff1a;nginx监听80端口&#xff0c;jar在8620端口&#xff0c;mysq…...

Java项目开发之fastjson详解

Fastjson 是由阿里巴巴公司开发的一个 Java 语言编写的高性能 JSON 处理库。它主要用于 Java 对象与 JSON 数据格式之间的转换&#xff0c;提供了简单易用的 API 来实现序列化&#xff08;Java 对象转 JSON 字符串&#xff09;和反序列化&#xff08;JSON 字符串转 Java 对象&a…...

面试算法-62-盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。…...

【智能算法】海洋捕食者算法(MPA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年&#xff0c;Afshin Faramarzi 等人受到海洋生物适者生存启发&#xff0c;提出了海洋捕食者算法(Marine Predators Algorithm&#xff0c;MPA)。 2.算法原理 2.1算法思想 MPA根据模拟自然界…...

刷题DAY24 | LeetCode 77-组合

1 回溯法理论基础 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。回溯是递归的副产品&#xff0c;只要有递归就会有回溯。 所以以下讲解中&#xff0c;回溯函数也就是递归函数&#xff0c;指的都是一个函数。 1.1 回溯法的效率 回溯法的性能如何呢&#xff0…...

Spring Boot为什么默认使用CGLIB动态代理

兼容性&#xff1a; 1. CGLIB 动态代理可以代理任何类型的目标类&#xff0c;无论它是否实现了接口&#xff1b;&#xff3b;注意的是&#xff0c;类被 final 修饰&#xff0c;那么该不可被继承&#xff0c;即不可被代理&#xff1b;同样&#xff0c;类中 final 修饰的方法&am…...

算法详解——Dijkstra算法

Dijkstra算法的目的是寻找单起点最短路径&#xff0c;其策略是贪心加非负加权队列 一、单起点最短路径问题 单起点最短路径问题&#xff1a;给定一个加权连通图中的特定起点&#xff0c;目标是找出从该起点到图中所有其他顶点的最短路径集合。需要明确的是&#xff0c;这里关心…...

利用GANs进行图像生成

生成对抗网络&#xff08;GANs&#xff09;是一种深度学习模型&#xff0c;由两部分组成&#xff1a;生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;。它们通过相互竞争来提高生成器生成高质量图像的能力。以下是如何利用GANs进行图像…...

Flutter-底部弹出框(Widget层级)

需求 支持底部弹出对话框。支持手势滑动关闭。支持在widget中嵌入引用。支持底部弹出框弹出后不影响其他操作。支持弹出框中内容固定头部和下面列表时&#xff0c;支持触摸头部并在列表不在头部的时候支持滑动关闭 简述 通过上面的需求可知&#xff0c;就是在界面中可以支持…...

聚焦两会:数字化再加速,VR全景助力制造业转型

近年来&#xff0c;随着信息技术、人工智能、VR虚拟现实等新兴技术的不断涌现&#xff0c;数字化正日益成为推动当今经济发展的新驱动力。在不久前的两会上&#xff0c;数字化经济和创新技术再度成为热门话题&#xff1a; 国务院总理李强作政府工作报告&#xff1a; 要深入推…...

数据挖掘之关联规则

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

java:java.util.BitSet对象的Jackson序列化和反序列化实现

java.util.BitSet是个非常方便的比特位数据存储和操作类&#xff0c;一个 bit 具有2个值&#xff1a;0和1&#xff0c;正好可以用来表示 false 和 true&#xff0c;适用于判断“数据是否存在”的场景。 但是&#xff0c;这个从JDK1.0版本就存在的类&#xff0c;Jackson,Fastjso…...

Go语言学习01-基本程序结构

文章目录 Go语言学习01-基本程序结构基本程序结构应用程序入口退出返回值编写测试程序快速设置连续值基本数据类型类型的预定义值指针类型运算符算数运算符比较运算符用 比较数组 逻辑运算符位运算符&^ 按位 置零 Go语言学习01-基本程序结构 基本程序结构 package main …...

rundeck k8s部署踩坑

1、镜像启动后原来的定时任务无法运行 参考&#xff1a; https://github.com/rundeck/rundeck/issues/4275 https://stackoverflow.com/questions/60942785/env-variable-for-rundeck-feature-joblifecycleplugin-enabled/60959605#60959605 结论&#xff1a; &#xff08;1&…...

每天学习几道面试题|Kafka(二)架构设计类

文章目录 1. Kafka 是如何保证高可用性和容错性的&#xff1f;2. Kafka 的存储机制是怎样的&#xff1f;它是如何处理大量数据的&#xff1f;3. Kafka 如何处理消费者的消费速率低于生产者的生产速率&#xff1f;4. Kafka 集群中的 Controller 是什么&#xff1f;它的作用是什么…...

Spring 实现 OAuth2 授权之解决方案

Spring Security OAuth2 - 已经废弃的项目 早期的Spring 使用 Spring Security OAuth2 实现 OAuth 2.0 的认证服务器和资源服务器。OAuth2是一个授权框架,它允许第三方应用获取有限的访问权限,而无需获取用户的账号和密码等敏感信息。通过这种方式,OAuth2协议实现了安全的用…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...