1. 正则表达式
MySQL中REGEXP在进行匹配时是区分大小写的.
示例代码:1
2
3SELECT name, email
FROM usr
WHERE email REGEXP '@163[.,]com$';
2. RAND() 随机行
可以对结果集进行随机排序,对做统计性的东西有帮助,如:随机抽样;
示例代码:1
2
3SELECT *
FROM usr
ORDER BY RAND();
3. GROUP BY + WITH ROLLUP
不仅能检索出各组的聚合信息,还可以检索出本组的聚合信息;
示例代码:1
2
3SELECT year,country,product,sum(profit)
FROM sales
GROUP BY year,country,product WITH ROOLUP;
【注意】
- 使用
ROLLUP
时不能使用ORDER BY
进行排序; LIMIT
在ROLLUP
后面;
4. BIT GROUP FUNCTIONS
将int类型数值转化成二进制,用0,1表示有无,方便做统计;
示例代码:
统计顾客在商店都买过什么商品:
1
2
3SELECT customer_id, bit_or(kind)
FROM order_rab
GROUP BY customer_id;统计顾客在商店每次都买什么商品:
1
2
3SELECT customer_id, bit_and(kind)
FROM order_rab
GROUP BY customer_id;
5. 大小写敏感
MySQL 数据库名称、表名和字段名大小写的敏感性取决于宿主系统的大小写敏感性,UNIX 大小写敏感,WINDOWS && MAC 就大小写不敏感。因为在 MySQL,一个数据库就对于一个文件夹,一个表对于至少一个文件;可以在MySQL启动时设置 lower_case_tables_name
系统环境变量来确实是否要大小写敏感;
6. 外键
只有 InnoDB 存储引擎支持外键,在建表时如果引用了外键,并且存储引擎选择的是非 InnoDB,则该外键并不起作用,但并不会报错,只会作为备忘或注释告诉用户新建表中正在引用其他表的某一列。