MySQL学习之正则表达式篇
正则表达式(REGEXP)
1.简介
正则表达式是用来匹配列值的特殊字符集合,许多领域都有涉及,
MySQL使用的正则表达式仅为其一个小小的子集。
2.基本字符匹配
2.1筛选包含特定字符串的信息
//搜索id包含‘001’的所有学生信息
select * from Student
where id regexp '001';
注:regexp匹配列值字串,而like匹配整个列值,这是二者的重要区别。如:
//搜索id是‘001’的学生的信息
select * from Student
where id like '001';
2.2点符号
同通配符中的'_',用以代替一个字符,如:
//搜索id中含任意字符组合001的学生信息
select * from Student
where id regexp '.001';
注:不同于通配符_ ,正则表达式匹配子串,当‘.’放在开头时,仍能匹配到多个字符的字串。
如上列搜索中可以匹配到:1001,10001,100001,而‘_001’仅能匹配到1001;
3.or匹配(并)
通过符号‘|’可以实现or匹配,如:
//匹配出id为1001、1002、1003三位学生的所有信息
select * from Student
where id regexp '1001|1002|1003';
4.匹配几个字符之一
通过 [ ] 匹配几个字符中的一个,如:
[123]ABC 可以是:1ABC、2ABC、3ABC
[ABC]123 可以是:A123、B123、C123
注:
- [123] 其实是[1|2|3]的缩写,是一种特殊的or
- 时刻注意 [ ] 仅表示一个字符
5.范围匹配
在4的基础上可以有如下表示:
[0-9] 可以是0,1,2,3,... ,9中任意一个数字
[a-z] 可以是任意一个小写字母
[A-Z] 可以是任意一个大写字母
[0-9a-z] 可以是0到9任意一个数字,也可以是任意一个小写字母
注:
- 顺序不能反
- 时刻注意 [ ] 仅表示一个字符
6.转义匹配
如需匹配像 . | \ 等特殊字符,需要用双斜杠\\转义。
前一个 \ 用来向MySQL解释,后一个用于向正则表达式解释。如需引用元字符,也需使用\\,如:
- \\f 换页
- \\n 换行
- \\r 回车
- \\t 制表
- \\v 纵向制表
7.匹配字符类
使用预定义的字符集:
[:alnum:] 任意字母和数字(同[a-zA-Z0-9])
[:alpha:] 任意字符(同[a-zA-Z])
[:blank:] 空格和制表(同[\t])
[:cntrl:] ASCII控制字符(ASCII 0到31和127)
[:digit:] 任意数字(同[0-9])
[:graph:] 与[:print:]相同,但不包括空格
[:lower:] 任意小写字母(同[a-z])
[:print:] 任意可打印字符
[:punct:] 既不在[:alnum:]又不在[:cntrl:]中的任意字符
[:space:] 包括空格在内的任意空白字符(同[\f\n\r\t\v])
[:upper:] 任意大写字母(同[A-Z])
[:xdigit:] 任意十六进制数字(同[a-fA-F0-9])
8.匹配多个实例
* 0个或多个匹配
+ 1个或多个匹配(等于 {1, })
? 0个或1个匹配(等于 {0, 1})
{n} 指定数目的匹配
{n, } 不少于指定数目的匹配
{n ,m} 匹配数目的范围(m不超过255)
9.定位符
^ 文本的开始
$ 文本的末尾
[[:<:]] 词的开始
[[:>:]] 词的结尾
注:使用 ^ 和 $ 可以使正则表达式等效Like操作符,如:
//此两者等价
select * from Student
where id regexp '^001$';
select * from Student
where id like '001';
MySQL学习之正则表达式篇的更多相关文章
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- MySQL学习笔记Windows篇<一> Welcome to MySQL
MySQL安装完毕后没有图形化操作界面,图形化管理界面需要另行安装,个人比较喜欢Navicat,界面更像SQLserver: 此篇学习笔记所有操作均使用命令行中完成: 1.开启/停止服务 使用MySQ ...
- mysql学习之基础篇01
大概在一周前看了燕十八老师讲解的mysql数据库视频,也跟着学了一周,我就想把我这一周所学的知识跟大家分享一下:因为是第一次写博客,所以可能会写的很烂,请大家多多包涵.文章中有不对的地方还请大家指出来 ...
- MySQL学习【第一篇介绍】
一.数据库mysql的特点 1.首先数据库分为RDBMS(关系型数据库),和NOSQL(非关系型数据库),而我们的mysql则是RDBMS. 2.RDMS和NOSQL特点对比 RDBMS特点: (1) ...
- MySQL学习【第二篇安装】
一.Mysql安装方式 1.安装方式 1.rpm,yum安装 安装方便,安装速度快,但无法定制 2.二进制安装 不需要安装,解压即用,不能定制功能 3.编译安装 可定制,安装很慢,安装分为四个步骤 1 ...
- MySQL学习【第九篇存储引擎】
一.存储引擎介绍 1.我们知道mysql程序构成由连接层,sql层,存储引擎层.存储引擎层和磁盘进行交互,由其去取数据,而我们取得数据是表的形式展现出来,谁做的呢?就是存储引擎结构化成表的形式返回给用 ...
- mysql学习之基础篇08 UTF8编码
这次我们来说一下在Mysql中的编码问题: 我们知道应用于计算机的最早的字符集是ASCII,它所组成的编码是ASCII编码:由于对于其他国家来说它所容纳的字符个数比较少,后来就出现了ANSI字符集,它 ...
- mysql学习之基础篇05
mysql中的统计函数: 1. 查询商品价格中最高的价格: select max(shop_price) from goods; 2. 查询商品价格中最低的价格: select min(shop_pr ...
- mysql学习之基础篇04
五种基本子句查询 查询是mysql中最重要的一环,我们今天就来说一下select的五种子句中的where条件查询: 首先我们先建立一张商品表:goods 由于商品数目太多,我就不一一列举了. 在这里我 ...
随机推荐
- 粒子群优化算法(PSO)之基于离散化的特征选择(FS)(三)
作者:Geppetto 前面我们介绍了特征选择(Feature Selection,FS)与离散化数据的重要性,总览的介绍了PSO在FS中的重要性和一些常用的方法,介绍了FS与离散化的背景,介绍本文所 ...
- 搞定SEO,看这一篇就够了
一.SEO入门 1.SEO是什么? SEO(Search Engine Optimization)中文意思为搜索引擎优化.在了解搜索引擎自然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在 ...
- win10 系统中vscode 的终端 shell 设置
今天,打算开始搞一个个人博客小项目. 主力台式电脑在实验室,于是重新配了一下自己的小破笔记本.系统是之前自己捣鼓的 win10 .在打开终端调试 node 时,发现报了这么一个错. 我刚开始以为是自己 ...
- CCF题库刷题编译错误
最近在CCF上刷题,因为C语言更合适,就使用了devc编译器,选择C语言但是却报编译错误 后来查了一下,发现在提交时选择C++语言就能满分通过,问题得以解决.
- 《Three.js 入门指南》3.1.1 - 基本几何形状 -圆环面(TorusGeometry)
3.1 基本几何形状 圆环面(TorusGeometry) 构造函数 THREE.TorusGeometry(radius, tube, radialSegments, tubularSegments ...
- 1036 Boys vs Girls (25分)(水)
1036 Boys vs Girls (25分) This time you are asked to tell the difference between the lowest grade o ...
- 用SQL*Plus命令启动和关闭数据库
用SQL*Plus命令启动和关闭数据库 1.启动方式 starup或startup open startup nomount startup mount startup read only [x] s ...
- 2017蓝桥杯贪吃蛇(C++C组)
原题: 贪吃蛇长度+-------------------------------------------------+| ...
- C语言学生管理系统完善版
#include<stdio.h>#include<string.h>#include <stdlib.h>#define M 100struct score ...
- 【Mongodb】视图 && 索引
准备工作 准备2个集合的数据,后面视图和索引都会用到1个订单集合,一个收款信息集合 var orders = new Array(); var shipping = new Array(); var ...