[MySQL] 常用SQL技巧--18.5
2016-09-27 11:47
369 查看
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
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=1on all systems. The main disadvantage with this is that when you use
SHOW TABLESor
SHOW DATABASES, you do not see the names in their original lettercase.
相关文章推荐
- mysql客户首末单时间 group by用法_20160927
- How to increase MySQL memory limit?
- Mysql Memory Allocation
- mysql分区
- 公开课总结发布《MySQL DBA快速入门PostgreSQL》
- 数据库备份导出之mysqldump
- MySQL连接数据库查询
- MySql取得日期(前一天、某一天)
- mysql客户端工具的使用
- MySQL递归查询树状表的子节点、父节点具体实现
- Elasticsearch+MySQL数据同步示例
- MySQL性能优化 真实生产环境(QC)
- Suse 11 Install Mysql 5.7.15
- mysql 统计
- mysql随机抽样
- MySQL提权
- mysql装完电脑里面没mysql相关服务
- MySQL5.7在线收缩undo log
- mysql数据库主从配置
- MySQL5.7在线收缩undo log