[MySQL] 常用SQL技巧--18.5
1.正则表达式使用
MySQl利用REGEXP命令,提供正则表达式功能。
例子:select 'abcdef' REGEXP '^a';
select 'efg' REGEXP '[^XYZ]';
2. 用RAND()函数提取随机行
使用RAND()函数从表中随机抽取记录行,这对一些抽样分析统计非常有用。
例如:select * from category order by rand() limit 5;
3. 利用group by的with rollup子句做统计报表
在SQL语句中,使用group by的with rollup子句可以检索出更多的分组聚和信息;方便做报表。
4. 数据库名、表名大小写的问题
在MySQL中,数据库对应操作系统下的数据目录。数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于
存储引擎)。因此,操作系统大小写敏感性决定了数据库名和表名对大小写的敏感性(触发器和表别名也敏感)。
大多数Unix操作系统对大小写敏感,区分大小写;而在Windows中,对大小写不敏感,不区分大小写。
列、索引、存储过程(不包括触发器)在任何平台上对大小写都不敏感。
建议将库名,表名,触发器名,别名统统写成小写,并在参数中设置lower_case_tables_name=1;
Use lower_case_table_names=1
on all systems. The main disadvantage with this is that when you use SHOW TABLES
or SHOW DATABASES
, you do not see the names in their original lettercase.