PostgreSQL笔记(SQL语言注意点)

来源:互联网 发布:小学生学英语软件 编辑:程序博客网 时间:2024/06/04 19:50

连接查询
注意区别以下三种情况

1.SELECT * 
2.    FROM weather, cities
3.    WHERE city = name;
 
1.SELECT *
2.    FROM weather 
3.    LEFT OUTER JOIN cities ON (weather.city = cities.name);
 
 
1.SELECT W1.city, W1.temp_lo AS low, W1.temp_hi AS high,
2.    W2.city, W2.temp_lo AS low, W2.temp_hi AS high
3.    FROM weather W1, weather W2
4.    WHERE W1.temp_lo < W2.temp_lo
5.    AND W1.temp_hi > W2.temp_hi;
 
 
聚集函数使用下WHERE 和 HAVING 的基本区别
WHERE 在分组和聚集计算之前选取输入行(它控制哪些行进入聚集计算),而 HAVING 在分组和聚集之后选取输出行。
因此,WHERE 子句不能包含聚集函数;因为试图用聚集函数判断那些行将要输入给聚集运算是没有意义的。
相反,HAVING 子句总是包含聚集函数。当然,你可以写不使用聚集的 HAVING 子句,但这样做没什么好处,
因为同样的条件可以更有效地用于 WHERE 阶段。