如何编写sql
2015-09-12 19:15
267 查看
编写sql,特别是查询sql,那么我们怎么编写,怎么写出一个有效而且简洁的sql呢?
思想篇
我们首先要了解相关的表结构,如果单表可以实现,那么就不要关联,如果是多表关联才能实现,那么就要弄清楚表之间通过什么列进行关联,而且要考虑是内关联还是外关联。
不管是查询单表还是多表,都要分析出,数据的规律,说白了,单表的数据可以表示一个静态的业务,但是动态的业务是需要多表才能实现的,因此,可以通过总结表的数据的规律,来进行编写查询sql。
表的数据表示了业务,那么业务的查询也要通过数据的规律来分析,即通过业务—–分析数据规律——编写查询sql,按照这样的思路去开展!
另外,表关联后,要知道怎么关联的,以及关联后的中间表是什么样子的,然后考虑关联条件或者where子句过滤掉了哪些数据,最后如果来组织(比如group by 或者order by)这些数据并进行聚合等等,还有就是有没有使用索引,是怎么执行查询计划的,要明白这个查询流程,这样写出的sql才是功能正常,并且性能最优的。
思想篇
我们首先要了解相关的表结构,如果单表可以实现,那么就不要关联,如果是多表关联才能实现,那么就要弄清楚表之间通过什么列进行关联,而且要考虑是内关联还是外关联。
不管是查询单表还是多表,都要分析出,数据的规律,说白了,单表的数据可以表示一个静态的业务,但是动态的业务是需要多表才能实现的,因此,可以通过总结表的数据的规律,来进行编写查询sql。
表的数据表示了业务,那么业务的查询也要通过数据的规律来分析,即通过业务—–分析数据规律——编写查询sql,按照这样的思路去开展!
另外,表关联后,要知道怎么关联的,以及关联后的中间表是什么样子的,然后考虑关联条件或者where子句过滤掉了哪些数据,最后如果来组织(比如group by 或者order by)这些数据并进行聚合等等,还有就是有没有使用索引,是怎么执行查询计划的,要明白这个查询流程,这样写出的sql才是功能正常,并且性能最优的。
相关文章推荐
- mysql 在创建批处理脚本日志表信息
- oracle用户下执行crontab -e报错
- mysqlslap的使用记录
- CentOS6.5安装redis(3.0.3)
- 【ORACLE】使用数据泵的生产环境impd,expdp数据迁移
- ORA-01033:oracle初始化或者关闭错误
- MongoDB学习笔记<两>
- SQLite数据存储
- sql 排名函数 rank() , row_number() , dense_rank() over
- 天狗云基于TngouDB中文索引数据库而开发的搜索接口平台
- 不知道数据库中表的列类型的前提下,使用JDBC正确的取出数据(取出Result结果集中的字段(不同类型))
- navicat primium快捷键与mysql基本操作命令
- Android Studio 项目中集成百度地图SDK报Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()I错误
- mysql 6条有用的语句
- MongoDB中添加管理员和普通用户以及认证的方法
- 分布式并行数据库将在 OLTP 领域促进去“Oracle”
- 数据库相关总结
- MongoDB学习笔记
- mysql操作指南-----如何查看mysql 端口号
- 重新安装了mysql,以前的数据库如何导入到新的数据库