开发sql查询的一些方法
我在一本书上看到过一位作者介绍了一些在开发sql查询中的一些个人的方法,我觉得可以进行借鉴。特在此分享一下。
标准的sql语法鼓励从后向前写语句的方法来开发查询。由于select是放在第一位的,所以人们倾向于首先写这个子句。而实际上作者鼓励大家像他的查询开发的顺序相匹配,如下:
FROM table_list
WHERE conditions
GROUP BY column_list
HAVING conditions
SELECT column_list
作者说,他发现一般情况下开发一个新的SQL查询时,下面列出的这些步骤还是很有用的。作者从FROM子句开始工作。执行每一步时,连续测试和修改查询。通常,使用SQL*PLUS局部的完成执行查询然后察看结果实现。下面是所作的步骤:
1、判断那个表包括自己想得到的数据
2、为这些表找出关联条件。在这一点上,为这些关联条件写WHERE子句,首先将所有的关联列放到选择列表中。如果关联许多表,那么一次向查询增加一个,并在每次添加后测试结果。
3、一旦确定关联正确,向WHERE 字句中增加需要的任何其他条件。由于这样做可能掩饰关联发生的问题,所以不应提前做这些。
4、已经把结果截取到需要的数据后,察看需要做的任何分组。
5、如果确实使用了GROUP BY 子句,那么只在已经知道了GROUP BY 子句正确后才写HAVING子句。
6、最后返回来查看SELECT语句是否正确。删除列出的列来校验关联是否运行正常,应用任何需要的SQL函数,增加那些在前面的任何步骤中都未强迫增加的其他各种各样的列。
这个过程可以把一些复杂查询的开发降低到表常规的工作。关键是一次建立查询的一部分,当继续运行时,测试和确认每一部分。
试试,也许用得上。
|