mysql中的正则表达式搜索
语法:
select * from table_name where column_name regexp '正则表达式'
或区分大小写
select * from table_name where column_name regexp binary '正则表达式'
支持的正则表达式符号:
. 任意字符
| 或,如:a|b|c
[] 范围,比如:[a-z],[0-9],[^0-9]不包括0-9字符
^ 在[]中表示排除,否则表示匹配开头
\\ 转义,如:\\\表示匹配\,\\.表示匹配.
* 0个或多个
+ 1个或多个
? 0个或1个
{n} n个
{n,} 不少于n个
{n,m} n到m个
$ 匹配结尾
=====================
[:alnum:] 任意字母和数字,相当于[a-zA-Z0-9]
[:alpha:] 任意字符[a-zA-Z]
[:blank:] 空格和制表[\\t]
[:cntrl:] ascii控制字符
[:digit:] 数字[0-9]
[:graph:][:print:] 可打印字符
[:lower:] 小写字母
[:upper:] 大写字母
[:xdigit:] 十六进制数[a-fA-F0-9]
例如:[[:digit:]]{4},匹配任意4位数字
相关文档:
数据库特点
--使用partition,存在上百个分区
--建表时指定了data_dir和index_dir,数据不是存储在默认位置,而是在mysqld的数据目录下link到真正的数据文件
备份恢复要求
--备份出来的数据恢复时要恢复成不同的表名
--恢复出来的数据实际存储位置也要存储在与原表不同的位置
问题
如果直接mysqldump-sourc ......
1.select max(id) from user;
2.select last_insert_id() as id from user limit 1;
(这个测试的返回id一直是0,有点问题)
3.储存过程
1)
oracel中
create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;
create or replace procedure ......
原理
QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使用
QC。每个Cache都是以SQL文本作为key来存的。在应用QC之前,SQL文本不会被作任何处理。也就是说,两个SQL语句,只要相差哪怕是一个字符(例如大小写不一样;多一个空格等),那么这两个SQL将使用不同的一 ......
1.myisam表不支持外键,innodb才支持外键
2.mysql外键的列类型和主表中相应的主键列类型必须一致,即类型一致、长度一致,否则会报错。ERROR 1005: Can't create table (errno: 150)
3.在一个数据库中外键名字不能重复,否则会报ERROR 1005: Can't create table 'XXXXXX' (errno: 121) ......