1.正则表达式的使用
^ |
在字符串开始处进行匹配 |
$ |
在字符串末尾处进行匹配 |
. |
匹配任意单个字符,包括换行符 |
[...] |
匹配出括号内的任意字符 |
[^...] |
匹配不出括号内的任意字符 |
a* |
匹配零个或多个a(包括空串) |
a+ |
匹配1个或多个a(不包括空串) |
a? |
匹配1个或0个a |
a1|a2 |
匹配a1或a2 |
a(m) |
匹配m个a |
a(m,) |
匹配m个或更多个a |
a(m,n) |
匹配m~n个a |
a(,n) |
匹配0~n个a |
(...) |
将模式元素组成单一元素 |
2.巧用RAND()提取随机样本
例如:SELECT * FROM sales ORDER BY RAND() LIMIT 5 ;
3.利用GROUP BY 的 WITH ROLLUP 子句作统计
例如SELECT year , country , product , sum(profit) FROM sales GROUP BY year , country , product WITH ROLLUP .
4.用BIT GROUP FUNCTIONS 作统计
主要介绍 GROUP BY 语句 和 BIT_AND , BIT_OR 函数完成统计工做.
BIT_* 这个函数通常是作数值之间的逻辑位运算, 可是当把它们与GROUP BY子句联合使用的时候,就能够作一些其余的任务.
统计每一个用户 买了哪些商品的详细清单.
每一个商品按顺序, 00000 , 买了的置为1 , 这样bit_or 就能够作逻辑或操做
同理能够使用BIT_AND() 来查询 每一个顾客每次来本超市都会购买的商品.
5.数据库名, 代表大小写问题
数据库对应服务器系统的目录, 库中的数据表对应目录中的文件.所以所用操做系统的大小写敏感性决定了数据库名和表名的大小写敏感性.
列,索引,存储子程序,触发器米国在任何平台对大小写不敏感
UNIX中,表别名区分大小写 ; 其余 Windows Mac OS X中对大小写不敏感.
6.使用外键须要注意的问题
InnoDB 外键起做用,其余引擎如MyISAM中,使用 REFERENCES tbl_name(col_name) 定义列时能够使用外部关键字 , 可是没有效果,只是用来 做为备忘录/注释 来提醒用户,这个列正指向另外一个表中的某个列.
SHOW CREATE TABLE 命令查看建表语句时, MyISAM存储引擎并不显示外键语句,而InnoDB存储引擎则显示.