MySQL引擎和正则表达式

1. MySQL引擎类型

语法:engine = 语句(InnoDB、MEMORY、MyISAM等)

类似于DBMS(数据库管理系统),MySQL有一个具体管理和处理数据的内部引擎,在使用creat table 时该引擎具体创建表,在使用select语句或进行其他数据库处理时,该引擎在内部处理你的请求。多数时该引擎都隐藏在DBMS内。
MySQL具有多种引擎,它打包多个引擎,都隐藏在MySQL服务器内,全都能执行create table 和select 等命令。因为不同的引擎具有不同的功能和特性,为不同的任务选择正确的引擎能够获得良好功能和灵活性。

需要知道的几个引擎:

  • InnoDB:InnoDB是一个可靠的事物处理引擎,它不支持全文本搜索
  • MEMORY:在功能上等同于MyISAM,但由于数据存储在内存中(不是磁盘),速度很快(特别适合于临时表)
  • MyISAM:是一个性能极高的引擎,它支持全文本搜索,但是不支持事务处理。

2. MySQL正则表达式

语法:

  • select 字段列表 from 表名 where 字段 regexp 匹配规则

匹配特殊字符,必须以\为前导。

  • \\- 表示查找 -
  • \\. 表示查找.
元字符 说明
\\f 换页
\\n 换行
\\r 回车
\\t 制表
\\v 纵向制表

字符类

说明
[:alnum:] 任意字母和数字(同[a-z A-Z 0-9])
[:alpha:] 任意字符(同[a-z A-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-f A-F 0-9])

重复元字符

元字符 说明
* 0个或多个匹配
+ 1个或多个匹配,等于{1,}
0个或一个匹配,等于{0,1}
{n} 指定数目的匹配
{n, } 不少于指定数目的匹配
{n,m} 匹配数目的范围(m不超过255)

定位元字符

元字符 说明
^ 文本的开始
$ 文本的结尾
[[:<:]] 词的开始
[[:>:]] 词的结尾

select * from studnets where name regexp '[[:alpha:]] {3}':

  • 匹配连在一起的任意3个字符
  • ‘[[:alpha:]] {3}’
  • [[:alpha:]]:匹配任意字符
  • {3} :要求前面的字符出现3词
    在这里插入图片描述
    select * from studnets where name regexp '^[[:digit:]]|ing$'; :
  • 查找name字段中以数字开头或以’ing’字符串结尾的所有数据,并以年龄大小排序
  • ‘^ [[:digit:]]|ing$’
    在这里插入图片描述

参考

《MySQL必知必会》

Guess you like

Origin blog.csdn.net/weixin_44515978/article/details/118391354