mysql 正则表达式优化_Mysql必懂的5个使用技巧:正则、随机抽取、分组、大小写,引擎!...

1. 善用正则表达式:

应用技巧:常规查询语句不易查询出满足条件的结果时,此时可以借助正则表达式来查询

(1)Mysql常用的正则表达式模式简介

fa921cacbb7b3e2423021dfd4bd22f49.png

(2)利用正则表达式查询的举例

1)“$”在字符串的末尾处进行匹配。以下例子是返回person表中的personname字段以1结尾的所有记录

select personname from person where personname REGEXP '1$' ;

2)“[…]”匹配出括号内的任意字符。以下例子是返回person表中的personname字段匹配“nab”中的任意一个字符所有记录。

select personname from person where personname REGEXP '[nab]' ;

2. 随机抽取数据获取的方法:综合利用rand()和order by

具体使用方法是:

select * from person order by rand() limit 3;

解释:利用以上语句即可实现每次从person表中随机获取3条数据。因此,以上语句每次执行得到的结果是不一样的。

3. 分组统计的增强方式:综合利用group by和with rollup

没有联合利用之前的语句是:

select age ,SUM(age) from person GROUP BY age ;

得到的结果是:

d1d895dd1380346179f58d95f50df355.png

联合利用之后的语句是:

select age ,SUM(age) from person GROUP BY age with ROLLUP;

得到的结果是:

3a430b5c58c6c696eb2d6c338e2da318.png

结果解释:最后的结果可以发现多了一行,这一行就是这个age组的所有数据总和,加上with rollup就能得到这个结果。

4. Mysql的数据库名字和表名大小写问题

Mysql数据库在unix环境下,由于操作系统对大小写的敏感性,导致了对mysql数据库的大小写是敏感的。

而在windows和mac下大小写不敏感。

例如:以下语句 select age from person pp where PP.id = 2;

这样在unix下是会报错的,因为引用pp时,同时用了小写和大写。

因此建议:用mysql创建数据库名和表名时,统一用小写。

5. mysql的外键使用问题:

MySQL有两种常用的引擎类型:MyISAM和InnoDB。目前只有InnoDB引擎类型支持外键约束。

因此,在创建外键时,要注意以下事项:

1. 两张表必须都是InnoDB表,并且它们没有临时表。

2. 建立外键关系的对应列必须具有相似的InnoDB内部数据类型。

3. 建立外键关系的对应列必须建立了索引。

但是,mysql从5.5版本以上默认的引擎类型是InnoDB,只要你不做特殊更改,以上注意事项可以不关注。但是在以下版本或者修改了引擎类型后,要注意以上问题。此头条号已发布80多篇,多个专题的技术文章,如:

【Java专题】、【Spring专题】

【Servlet专题】、【并发编程专题】

【Redis专题】、【BATJ面试题解析】

【Dubbo专题】、【Mybatis专题】

【Mysql优化专题】(持续发布中)

大家关注此头条号后,便可阅读以上系列文章!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值