《SQL反模式之“意大利面条式查询”》
2015-01-12 17:28
393 查看
对SQL简约率的探讨
1、简约率:当你有两个相互竞争的理论能得出同样的结论,那么简单的那个更好。
2、当我们需要查询多个表的多个字段时,可以不必局限于一个复杂的sql,而是可以采用分而治之的方法:比如,采用union单独查询结果集,以免生成笛卡尔积影响查询结果的正确性。
3、使用sql自动生成sql,批量生成sql,防止复杂的sql
SELECT CONCAT('UPDATE Inventory' SET last_used =''',MAX(u.usage_date),'''',' WHERE inventory_id = ', u.inventory_id,';') AS update_statement
FROM ComputerUsage U
GROUP BY u.inventory_id;
1、简约率:当你有两个相互竞争的理论能得出同样的结论,那么简单的那个更好。
2、当我们需要查询多个表的多个字段时,可以不必局限于一个复杂的sql,而是可以采用分而治之的方法:比如,采用union单独查询结果集,以免生成笛卡尔积影响查询结果的正确性。
3、使用sql自动生成sql,批量生成sql,防止复杂的sql
SELECT CONCAT('UPDATE Inventory' SET last_used =''',MAX(u.usage_date),'''',' WHERE inventory_id = ', u.inventory_id,';') AS update_statement
FROM ComputerUsage U
GROUP BY u.inventory_id;
相关文章推荐
- SQL反模式笔记2——分层存储与查询
- SQL反模式笔记16——模糊查询
- DELPHI常用函数快速查询
- 大数据量查询(转)
- HR表查询雇员工作几年几月
- mysql 查询时自动增加一列自增列
- GOOGLE 地图,查询地名,移动标记,生成静态地图
- Oracle查询单条记录
- SQL Server查询性能优化——创建索引原则(二)
- MS SQL 标识列的查询
- 利用dialog编写nfdump查询的图形化窗口
- mysql in 子查询 效率慢 优化(转)
- 浅析C#如何连接数据库实现查询功能
- LINQ中的高级查询
- Linux 基本系统信息查询
- Hibernate使用Criteria查询部分字段
- 简单的数据库查询
- Linq单值查询
- Python进行数据的Group by、取最大值、子查询及从分表取数据一例