mysql 排序 过滤_【MYSQL】-3 排序与过滤

上周加入数据蛙二期培训,结束了孤独战斗的现状。断断续续自学了3个月(当然看了各种视频和各种书,一把辛酸泪。。。),现在选择报班,主要还是觉得一个靠谱的组织和团队,可以极大缓解我学习过程中不时闪现的焦虑和无助,最重要的是少走弯路。毕竟青春不再,年华易逝,浪费可耻哈哈哈哈~

本文结合个人情况,依据学习规划,对《mysql必知必会》前9章内容关于排序和过滤操作进行知识点整理。

一 . 排序

子句排序:

select [column1] from [table] order by [column2],[column3]…..

column1 与 column2 不要求相等,也可以多列排序。

select prod_name from products order by prod_name;

升降顺序:默认升序 asc;降序 desc

select prod_id,prod_price,prod_name from products

order by prod_price desc,prod_name;

与 limit 组合找到最值

select prod_price from products

order by prod_price desc

limit 1;

a6178b0e5653?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

二 . 过滤

1. 按照指定条件搜索数据

where:select [column1],[column2] from [table] where [column3]=x

特性1:匹配时不区分大小写;

特性2: 用单引号限定字符串;

select prod_name,prod_price from products

where prod_name='fuses';

a6178b0e5653?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

特性3:匹配范围可以用 between ...and...;in ——见特性7

特性4:where 和 order by 同时使用时,order by 放后面;

select prod_name,prod_price from products

where prod_price between 5 and 10

order by prod_price;

a6178b0e5653?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

特性5:用于检查null值

select cust_id from customers

where cust_email is null;

特性6:结合逻辑操作符and & or,and 具有更高优先级

select vend_id,prod_name,prod_price

from products

where vend_id=1002 or vend_id=1003 and prod_price>=

a6178b0e5653?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

这里搜索出来的是1003厂商制造的价格小于10美元的数据,和1002制造的数据。

特性7:匹配范围还可以用 in(小值,大值)

select prod_name,prod_price from products

where vend_id in(1002,1003)

order by prod_name;

同义转换:功能与 or 相当

select prod_name,prod_price from products

where vend_id =1002 or vend_id =1003

order by prod_name;

这里用in 和or 查询结果都一样:

a6178b0e5653?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

in操作符的优势

1) 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。

2) 在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。

3) IN操作符一般比OR操作符清单执行更快。

4) IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句

not 取反,找出与条件列不匹配的行

select prod_name,prod_price

from products

where vend_id not in (1002,1003)

order by prod_name;

2. like:运用通配符进行过滤

%:任何字符出现任意次数 (....where [column] like 'a%'):列 column 中以a开头的所有行;

select prod_id,prod_name

from products

where prod_name like 'jet%';

a6178b0e5653?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

注意:% 可以匹配尾空格;不能匹配null值

_:匹配任意单个字符

select prod_id,prod_name

from products

where prod_name like '_ ton anvil';

通配符使用注意事项:

1)优先选择其他操作符;

2)使用时最好不要用在搜索模式的开始位置,会使得搜索变慢。

3)注意通配符放置的位置

3. 复杂过滤:正则表达式

regexp:...where [column] regexp 'abc'

完全匹配:

select prod_name from products

where prod_name regexp'%1000'

order by prod_name;

部分匹配:. :任意一个字符

select prod_name from products

where prod_name regexp '.000'

order by prod_name;

a6178b0e5653?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

注意,这里换成like,是不输出结果的。

select prod_name from products

where prod_name regexp'1000'

order by prod_name;

为什么呢?

regexp vs like:

1)like 匹配整个列,regex在列值内匹配。比如匹配1000,like会在一列中查找字符为1000的值,但是regexp在每一个值中找到含有字符1000的值;

2)like 必须和通配符结合使用,否则不返回结果。

或匹配(or):a|b—— 匹配 a 或者 b

匹配多项中的一项:[123]-匹配1或2或3

匹配特殊字符:前面加\

匹配范围:[1-9]

select prod_name

from products

where prod_name regexp '[1-8] ton'

order by prod_name;

其他匹配规则:

^ 文本的开始 ;$ 文本的结尾 ;[[:<:>:]] 词的结尾

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

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

相关文章

构造函数 构造代码块_构造函数必须没有代码

构造函数 构造代码块构造函数中应完成多少工作&#xff1f; 在构造函数内部进行一些计算然后封装结果似乎是合理的。 这样&#xff0c;当对象方法需要结果时&#xff0c;我们将准备好它们。 听起来是个好方法&#xff1f; 不&#xff0c;这不对。 这是一个坏主意&#xff0c;原…

C语言按位逻辑运算符总结-与、或、非、异或

点击上方蓝字关注我&#xff0c;了解更多咨询C中有按位逻辑运算符&#xff1a;按位取反、按位与、按位或、按位异或。这4个运算符可以用于整型&#xff0c;包括char类型。按位操作针对每一个位进行操作&#xff0c;不影响左右两边的位。4个运算符的作用总结如下&#xff1a;一、…

C语言的本质——位运算

点击上方蓝字关注我&#xff0c;了解更多咨询位运算是指按二进制进行的运算。在系统软件中&#xff0c;常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数&#xff0c;即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位…

Java创新型模式_java设计模式--创建型模式(一)

2016-04-24 10:10:34创建型模式&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式注意&#xff1a;工厂模式可以分为三类&#xff1a; 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory)这三种模式从上…

原来这就是C语言的基本结构—循环结构?!

点击上方蓝字关注我&#xff0c;了解更多咨询今天我们就着重说说循环结构。循环结构分为三种&#xff0c;分别是for、while、dowhile;我们首先说第一种&#xff1a;for循环..他的代码格式为&#xff1a;for(判断的数值初始化;判断条件;改变判断数值大小){循环语句块&#xff1b…

java count 在哪一类里_java 5线程中 Semaphore信号灯,CyclicBarrier类,CountDownLatch计数器以及Exchanger类使用...

先来讲解一下Semaphore信号灯的作用:可以维护当前访问自身的线程个数&#xff0c;并提供了同步机制&#xff0c;使用semaphore可以控制同时访问资源的线程个数例如&#xff0c;实现一个文件允许的并发访问数。请看下面的演示代码:1 public classSemaphoreTest2 {3 public stati…

C/C++入门易错点及常用小技巧

点击上方蓝字关注我&#xff0c;了解更多咨询C语言诞生至今已有30多个年头了&#xff0c;主要集中在需要运行效率比较高的行业&#xff0c;比如现在的游戏开发以及高效服务器等等。C学习难度比其它语言都要高&#xff0c;这是不可否认的&#xff0c;其学习难度主要在于它的复杂…

quasar_Quasar和Akka –比较

quasaractor模型是用于容错和高度可扩展系统的设计模式。 角色是独立的工作程序模块&#xff0c;它们仅通过消息传递与其他角色进行通信&#xff0c;可以与其他角色隔离而失败&#xff0c;但是可以监视其他角色的故障并在发生这种情况时采取一些恢复措施。 角色是简单&#xff…

什么是自定义函数?精简回答

点击上方蓝字关注我&#xff0c;了解更多咨询1、自定义函数是程序员根据所要完成的功能&#xff0c;自己写出的源代码实现该功能。2、自定义函数和库函数一样&#xff0c;具有函数名&#xff0c;返回值类型&#xff0c;和函数参数。示例1&#xff1a;写一个函数找出两整数的值。…

C++ 创建文件夹的几种方式汇总确定不来看看???

点击上方蓝字关注我&#xff0c;了解更多咨询1、使用 system() 调用 dos 命令。2、使用头文件 direct.h 中的 access 和 mkdir 函数。关于 direct.h 我觉得 维基百科 上介绍的不错3、调用 Windows API 函数。4、调用 MFC 封装好的接口函数。不推荐此方法&#xff0c;出错的话会…

java socket 传送进度_java-★-Socket文件上传/进度条

客户端代码&#xff1a;1、客户端运行程序&#xff1a;package wtb.khd;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.OutputStream;import …

c语言中typedef和define的区别

点击上方蓝字关注我&#xff0c;了解更多咨询1、typedef仅限于为类型定义符号名称。define不仅可以为类型定义别名&#xff0c;还可以为数值定义别名。例如&#xff0c;可以将1定义为ONE。2、typedef由编译器解释&#xff0c;define语句由预编译器处理。实例#include <stdio…

c语言中预处理器是什么?

点击上方蓝字关注我&#xff0c;了解更多咨询1、C语言有预处理器&#xff0c;Java中没有这个概念&#xff0c;其实只是文本替换工具。2、C的预处理器&#xff0c;即CPP&#xff0c;将在实际编译器中完成处理&#xff0c;所有预处理命令将从#开始。实例#include <stdio.h>…

垃圾回收算法以及垃圾回收器_什么是垃圾回收?

垃圾回收算法以及垃圾回收器以下是我们的垃圾收集手册中的一个示例&#xff0c;该手册将在接下来的几周内发布。 同时&#xff0c;花点时间熟悉垃圾收集的基础知识-这将是本书的第一章。 乍一看&#xff0c;垃圾收集应该处理顾名思义的问题–查找并丢弃垃圾。 实际上&#xff…

c语言中fgetc函数的介绍

点击上方蓝字关注我&#xff0c;了解更多咨询1、fgetc函数返回的字符实际上是文件流中位置指针指向的字符。当fgetc函数读取错误时&#xff0c;返回EOF并设置文件错误标志位。2、该函数以无符号char强制转换为int的形式返回读取的字符&#xff0c;如果到达文件末尾或出现读错&a…

花5分钟了解C语言基本语法元素快来

点击上方蓝字关注我&#xff0c;了解更多咨询C语言是一种编程语言&#xff0c;和其它语言一样&#xff0c;也定义了自己的语法和词汇。学习C语言&#xff0c;首先要学习C语言的词汇&#xff0c;再学习C语言的语法规则&#xff0c;然后由词汇构成语句&#xff0c;由语句构成源程…

c语言中ftell函数是什么

点击上方蓝字关注我&#xff0c;了解更多咨询1、C语言函数ftell用于获取文件位置指针当前位置相对于文件首的偏移字节数。2、通过ftell函数获取当前文件的大小&#xff0c;然后通过fread函数读取缓冲区。返回值&#xff0c;如果成功&#xff0c;该函数返回位置标识符的当前值&a…

jdk入门_JDK 9 REPL:入门

jdk入门会议是聚会Java名人的好地方。 Devoxx France是与Java语言架构师&#xff0c;前同事和老朋友Brian Goetz&#xff08; briangoetz &#xff09;见面的一个机会。 我们谈论了JDK 9&#xff0c;而他全都热衷于REPL。 他提到&#xff0c;尽管Java SE 9中有很多重要功能 &am…

c语言中局部变量是什么

点击上方蓝字关注我&#xff0c;了解更多咨询1、函数内部定义的变量称为局部变量&#xff0c;其作用域仅限于函数内部&#xff0c;离开函数后无效&#xff0c;使用后报错。2、局部变量只能在函数内部使用&#xff0c;离开函数后无效&#xff0c;再次使用会报错。实例#include &…

java接口自动化Excel占位符_基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport的接口自动化测试框架...

接口自动化框架项目说明本框架是一套基于mavenjavaTestNGhttpclientpoijsonpathExtentReport而设计的数据驱动接口自动化测试框架&#xff0c;TestNG 作为执行器&#xff0c;poi用于读取存放于excel的接口用例&#xff0c;jsonPath用于校验返回值&#xff0c;以及提取返回值。本…