常见MYSQL技巧 (51)

正则表达式的使用

MySQL利用REGEXP命令提供给用户扩展的正则表达式功能,具体模式序列如下:


序列


序列说明


序列


序列说明


^


在字符串的开始处进行匹配


a?


匹配1个或零个a


$


在字符串的末尾处进行匹配


a1|a2


匹配a1或a2


.


匹配任意单个字符,包括换行符


a(m)


匹配m个a


[…]


匹配出括号内德任意字符


a(m,)


匹配至少m个a


[^…]


匹配不出现括号内的任意字符


a(m,n)


匹配m到n个a


a*


匹配零个或多个a(包括空串)


a(,n)


匹配0到n个a


a+


匹配1个或多个(不包括空串)


(…)


将模式元素组成单一元素

使用正则表达式”$”和”[…]”进行匹配:

mysql>select name,email from t where email REGEXP
  “@163[.,]com$”

使用like方式查询:

mysql>select name,email from t where email like “%@163.com”
   or email like “%@163,com”

巧用RAND( )提取随机行

MySQL数据库中有一个随机函数rand( )是获取一个0—1之间的数,利用这个函数一起和order by能够把数据随机排序。

mysql>select * from stu order by rand( );

下面是通过limit随机抽取了3条数据样本。

mysql>select * from stu order by rand( ) limit 3;

利用GROUP BY的WITH ROLLUP

使用group by的with rollup子句可以检索出更多的分组聚合信息

mysql> select * from demo;
+-------+-------+
| cname | pname |
+-------+-------+
| bj    | hd    |
| bj    | hd    |
| bj    | xc   
|
| bj    | xc   
|
| bj    | hd    |
| sh    | dh   
|
| sh    | dh   
|
| sh    | rg    |
| sh    | dh   
|
+-------+-------+
9 rows in set (0.00 sec)

对demo表按照cname、pname列分组对pname列进行聚合计算如下

mysql> select cname,pname,count(pname) from demo group by cname,pname;

+-------+-------+--------------+

| cname | pname | count(pname) |

+-------+-------+--------------+

| bj    | hd    |            3 |

| bj    | xc    |            2 |

| sh    | dh    |            3 |

| sh    | rg    |            1 |

+-------+-------+--------------+

4 rows in set (0.00 sec)

同样使用with rollup关键字后,统计出更多的信息,如下。注意: with rollup不可以和ordery by同时使用

mysql> select cname,pname,count(pname) from demo group by cname,pname with rollup;

+-------+-------+--------------+

| cname | pname | count(pname) |

+-------+-------+--------------+

| bj    | hd    |            3 |

| bj    | xc    |            2 |

| bj    | NULL  |            5 |

| sh    | dh    |            3 |

| sh    | rg    |            1 |

| sh    | NULL  |            4 |

| NULL  | NULL  |            9 |

+-------+-------+--------------+

7 rows in set (0.00 sec)

用BIT GROUP FUNCTIONS做统计

在使用group by语句时可以同时用使用bit_and、bit_or函数来完成统计工作。这两个函数的作用主要是做数值之间的逻辑位运算

mysql>select id,bit_or(kind) from order_rab group by id

对order_rab表中id分组时对kind做位与和或计算

mysql>select id,bit_and(kind) from order_rab group by id

使用外键需要注意的问题

创建外键的方式如下

mysql>create table temp( id int, name char(20), foreign key(id) references outTable(id) on delete cascade on update cascade);

注意:Innodb类型的表支持外键,myisam类型的表,虽然创建外键可以成功,但是不起作用,主要原因是不支持外键。

mysql help使用

在mysql中那么多的命令如何才能记得住是个问题,这里有一个特别好的获得帮助的好方法,当然是在mysql>的提示下的操作:

1.? %   可以获得所有的mysql>里的命令,这个是最多的,那么这里的东西如何去进一步获得帮助呢?

2.? create

3.? opti% 因为记不住optimize的全称,这个时候可以用%来替代

4.? reg% 获得了记不住了的regexp用法.

5.查看所有用? contents可以得到所有的帮助大纲,通过这个目录再用?继续往下细查.

时间: 2024-08-24 13:43:17

常见MYSQL技巧 (51)的相关文章

MYSQL技巧|为了方便备份和安全,MySQL数据库存放目录如何更改?

本文标签:  MYSQL技巧 MySQL数据库   互联网杂谈 我们在安装玩MYSQL后,数据库存放目录默认是在MYSQL里面的,为了方便备份和安全,我们是有必要更改MySQL数据库存放目录的.那么,要怎么更改呢? 打开cmd命令提示符窗口,输入命令停止MySQL服务运行 net stop mysql 打开X:\Server_Core\MySQL\my.ini, 找到: Datadir = "X:\Server_Core\MySQL\data" 修改为: Datadir = "

常见Mysql系统参数调整

列出MySQL服务器运行各种状态值: mysql> show global status; 查询MySQL服务器配置信息: mysql> show variables; 1.  慢查询 mysql> show variables like '%slow%'; +---------------------+-------------------------------+ | Variable_name       | Value                         | +---

mysql技巧总结

使用Mysql也很长一段时间了,在使用的过程中遇到过各种各样的问题,有些看上去很小的问题,在解决的过程中却花了很长时间,解决后才发现,原来这样简单.所以总结了一些经验和技巧,把它写出来,希望对读者能有所帮助,少走弯路.1. binaryBINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写.举例:mysql> select * from tjob;+-------+| title |+-------+| 11    | | 22

Mysql技巧及问题

Mysql技巧及问题目录: MySQL批量导入Excel.txt数据 MySQL批量导入Excel数据 原文地址:https://www.cnblogs.com/programmer-tlh/p/11201847.html

软件保护技术--- 常见保护技巧

(1)序列号保护机制 数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧.但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了.     我们先来看看在网络上大行其道的序列号加密的工作原理.当用户从网络上下载某个shareware--共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用.注册过程一般是用户把自己的私人信息(一般主要指名字)连

FAQ系列 | 几种常见MySQL无法启动案例

昨天在群里看到有新同学还在问MySQL无法启动的问题,于是总结了几个常见情况,权当普及帖了,老鸟自觉飞过. 问题1:目录.文件权限设置不正确 MySQL的$datadir目录,及其下属目录.文件权限属性设置不正确,导致MySQL无法正常读写文件,无法启动.错误信息例如: mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data /usr/local/mysql/bin/mysqld_safe: lin

常见mysql中出现的问题

1. LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般DBA想到的办法是在type, name, create_time字段上加组合索引.这样条件排序都能有效的利用到索引,性能迅速提升. SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'SlowLog' ORDER BY create_time LIMIT 1000, 10; 好吧,可能90%以上的DBA解决该问题就到

10款常见MySQL高可用方案选型解读

原文地址 作者介绍 王松磊,现任职于UCloud,从事MySQL数据库内核研发工作.主要负责UCloud云数据库udb的内核故障排查工作以及数据库新特性的研发工作. 一.概述 我们在考虑MySQL数据库的高可用架构时,主要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断. 用作备份.只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致. 当业务发生数据库切换时,切换前后的数据库内容应当一致

均值不等式的常见使用技巧【初级、中级和高阶辅导】

常见的均值不等式的使用技巧 均值不等式这一素材,是高中数学中少见的几个需要同时验证成立的多条件素材.由于要多头验证,所以学生很不习惯,感觉很难掌握. 已知两个正数\(a,b\),则有(当且仅当\(a=b\)时取到等号),高考中重点考查这一部分:$ a+b\ge2\sqrt{ab}(a,b>0)$ 均值不等式的使用 前提条件: 正.定.等同时成立. 均值不等式中还有一个需要注意的地方:\(a,b\in R\) 如已知向量的内积\(\vec{a}\cdot\vec{b}=1,\)则有人这样做\(\v