SQL学习笔记——REGEXP运算符

article/2025/9/17 0:36:27

REGEXP运算符,是正则表达式(regular expression)的缩写,正则表达式在搜索字符串时非常强大,下面是关于它的应用

1.查找名字中包含field的顾客

select *
from customers
where last_name like '%field%'

运用REGEXP运算符,可以这样写,同样可以得出数据

select *
from customers
where last_name regexp 'field'

2.查找姓氏以Brush开头的顾客

 ^表示查找的字符串必须以什么开头

select *
from customers
where last_name regexp '^brush'

 

 

 3.查找姓氏以field结尾的顾客

$表示查找的字符串必须以什么结尾

select *
from customers
where last_name regexp 'field$'

3.查找姓氏包含field或者mac的顾客

|符号表示多个搜寻模式

select *
from customers
where last_name regexp 'brush|mac'

4.查找以brush开头,或者包含mac,或者包含rose的顾客

select *
from customers
where last_name regexp '^brush|mac|rose'

 

5.查找姓氏包含e,且前面要有g或i或m

select *
from customers
where last_name regexp '[gim]e'

 

6.查找姓氏包含e,且后面要有a但h中的一个字母

select *
from customers
where last_name regexp 'e[a-h]'

总结:

^表示字符串开头

¥表示字符串结尾

|表示逻辑上的or,可以给出多个搜索模式

[]表示任意在括号里列举的单字符

[-]表示任意在括号内范围内的单字符

练习

1.获取名字是Elka或者Ambur的顾客

select *
from customers
where first_name regexp 'elka|ambur'

 2.返回姓氏以ey或者on结尾的顾客

select *
from customers
where last_name regexp 'ey$|on$'

 3.获取姓氏以my打头,或者包含se的顾客

select *
from customers
where last_name regexp '^my|se'

 4.返回顾客,姓氏包含b,然后是r或者u

select *
from customers
where last_name regexp 'b[ru]'

 


http://chatgpt.dhexx.cn/article/UD2mpHs0.shtml

相关文章

【SQL学习+练习篇】基础训练,适用于初学者(一)

SQL简介 SQL, 全称为Structured Query Language(结构化查询语言)。 要讲SQL就绕不开database(数据库), 平时所说的数据库,一般就是指的 Relational database(关系型数据库). 大家知道数据库是用来存储大量数据的一种软件,那么SQL呢是用来操…

SQL学习四、过滤、数据筛选

数据过滤,即按照条件筛选数据,找出符合条件的数据。这可以说是SQL学习和使用时最核心的地方了。 1、使用简单WHERE 子句 WHERE 子句在表名(FROM 子句)之后给出 比如我们需要在 adjunctlist 中查询 flaw_id 201902的数据的add_t…

SQL学习——窗口函数

1.窗口函数 窗口函数:应用在窗口的函数,限定一个空间范围 窗口:记录集合,满足某种条件的记录集合上执行的特殊函数 基本用法: 函数名([expr]) over 子句 函数() over(…

数据分析初学入门——22本SQL学习书籍推荐

很多数据分析初学者都被推荐学SQL,SQL是最基础且是必备的技能之一,但是不知道该从何学起,很多课程讲了很多知识点,但是初学的朋友没有对这一领域整体框架的认识,不知道该学哪些知识、有哪些知识、实际工作需要到什么程…

Sql学习

Sql学习 一、SQL简介 SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。 是结构化查询语言(Structured Query Language),可以访问和处理数据库,SQL 对大小写…

SQL学习笔记1

* 以下内容是我在学习SQL(http://www.w3school.com.cn/sql/index.asp)的时候的学习笔记 * 学习时使用的数据库软件是MySQL数据库可视化工具SQLyogEnt * 如果大家有发现什么不对的地方请告诉我。谢啦!!☆⌒(*^-゜)v * 在这里需要注意的是&…

史上最全SQL学习指南(教程+实例+练习题)

报告称,未来10年数据细分岗位将扩张5倍,大数据19w的人才缺口将继续增加。国内外一线互联网公司纷纷开设了数据分析岗位。 数据分析岗位中用的最频繁的工具就是SQL了。不论是满足业务日常取数需求,还是自己做分析,都离不开SQL。 …

SQL入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

导读: SQL语言有40多年的历史,从它被应用至今几乎无处不在。我们消费的每一笔支付记录,收集的每一条用户信息,发出去的每一条消息,都会使用数据库或与其相关的产品来存储,而操纵数据库的语言正是 SQL &…

SQL零基础入门必知必会!

📚 前言 SQL语言有40多年的历史,从它被应用至今几乎无处不在。我们消费的每一笔支付记录,收集的每一条用户信息,发出去的每一条消息,都会使用数据库或与其相关的产品来存储,而操纵数据库的语言正是 SQL &am…

redis:redis缓冲区溢出怎么办

引入 什么是缓冲区:用一块内存空间来暂时存放命令数据,以免出现因为数据和命令的处理速度慢与发送速度而导致的数据丢失和性能问题但是问题是,因为缓冲区的内存空间是有限的,如果往里面写入数据的速度大于从里面读取数据的速度&a…

【缓冲区溢出】堆溢出原理

一、操作系统中堆和栈的区别 堆内存申请,释放,操作,特点: 1. 堆内存申请环境:堆内存需要程序员在程序中申请 ,动态分配,申请的大小有程序决定。 2. 堆内存申请方法:C语言中的malloc(…

本地缓冲区溢出

本地缓冲区溢出 【实验目的】 1、掌握缓冲区溢出的基本原理; 2、熟练利用jmp.egp指令实现缓冲区溢出; 3、掌握缓冲区溢出的危害及其防范手段。 【实验环境】 登录Linux靶机环境,在无root权限的情况下,通过编译运行程序&#x…

关于缓冲区溢出(Buffer Overflow)

接触黑客的同志们经常遇到,使用一些扫描工具扫描的时候,会得到一些缓冲区溢出的漏洞,但是怎么利用自己是一团雾水 网上很少有相关的工具,也很少有相关的文章,下面我们就说说这个“窿西”吧 [蛋痛]文章丢失了一次&…

高并发缓存队列防止溢出解决方案

目录 1 背景介绍1.1 设计分析微信抢红包1.2 红包定时导入缓存队列 2 队列术限流2.1 高并发场景分析2.2 队列削峰实战 3 设计原则3.1 动静分离3.2 微服务化3.3 负载均衡3.4 异步消息3.5 缓存预热 4 Nginx通过LUA脚本访问RabbitMQ消息队列 1 背景介绍 并发量非常大的系统&#x…

【2021.12.12】缓冲区溢出利用

文章目录 1.1 实验环境和开发工具1.2 任务描述1.3 分析过程1.4 结论1.4.1 利用漏洞1.4.2 修复漏洞 1.1 实验环境和开发工具 处理器 i5-8300H 内存(RAM) 8G 硬盘 476G 软件环境: Windows 10 开发工具: Visual studio 2019 IDA PRO7.5 1.2 …

本地缓冲区溢出分析

栈溢出是缓冲区溢出中最为常见的一种攻击手法,其原理是,程序在运行时栈地址是由操作系统来负责维护的,在我们调用函数时,程序会将当前函数的下一条指令的地址压入栈中,而函数执行完毕后,则会通过ret指令从栈…

关于缓冲区溢出的对策

从编译器的角度出发 以下两种方法均是编译器采取的关于缓冲区溢出的对策 Stackshield 主要思想是在函数调用之前,将return address的副本保存在一个安全的地方,函数返回时将返回地址与预先保存的返回地址比较,以判断缓冲区溢出是否发生。 …

浅析缓冲区溢出

最近一直在学习缓冲区溢出漏洞的攻击,但是关于这一块的内容还是需要很多相关知识的基础,例如编程语言及反汇编工具使用。所以研究透彻还需要不少的时间,这里简单的做一个学习的总结,通过具体的实验案例对缓冲区溢出进行简要的解析…

缓冲区溢出原理详解

下面将有实例引入缓冲区溢出的介绍&#xff1a; void main() { int i0; int a[]{1,2,3,4,5,6,7,8,9,10}; for(i0;i<10;i) { a[i]0;printf("Hello World!\n");} } 首先&#xff0c;这段代码会出现死循环&#xff0c;为什么&#xff1f;因为数组溢出了&…

C语言 缓存区溢出 3221225725

目录 问题描述解决办法&#xff1a; 问题描述 DEV-C报错 Process exited after 4.03 seconds with return value 3221225725 原因 数组定义的容量太大 - 五十万起步的样子 而且每次循环都会再定义一次&#xff0c;导致缓存区溢出 解决办法&#xff1a; 思路来源&#xff1a…