【sql server 2005学习笔记3】Count(),HAVING和WHERE,作为计算字段使用子查询等
1 Count()使用Count(*)对表中行的数目进行记数包括NULL,Count(column)不包括NULL
2 HAVING和WHERE
WHERE 在分组前过滤,HAVING 在分组后过滤;
3 作为计算字段使用子查询
SELECT cust_name,
cust_state,
(SELECT Count(*)
FROM orders
WHERE orders.cust_id = customers.cust_id) AS orders
FROM customers
4 INNER JOIN
ANSI SQL规范首选INNER JOIN语法;
5 多做实验
有必要对不同的选择机制进行实验,以找出最适合具体情况的方法;
6 联结
内部联结(等值联结),自联结,自然联结,外部联结;
事实上,迄今为止,我们建立的每个内部联结都是自然联结,很可能我们永远都不会用到不是自然联结的内部联结
7 外联结不推荐的写法
消息 4147,级别 15,状态 1,第 3 行
此查询使用的不是 ANSI 外部联接运算符("*=" 或 "=*")。若要不进行修改即运行此查询,请使用存储过程 sp_dbcmptlevel
将当前数据库的兼容级别设置为 80 或更低。极力建议使用 ANSI 外部联接运算符(LEFT OUTER JOIN、RIGHT OUTER JOIN)
重写此查询。在将来的 SQL Server 版本中,即使在向后兼容模式下,也不支持非 ANSI 联接运算符。
EXEC sp_dbcmptlevel 'crashcourse', '80';
SELECT customers.cust_id, orders.order_num
FROM customers, orders
WHERE customers.cust_id *= orders.cust_id;
GO
8 对组合查询结果排序
ORDER BY 出现在最后一条SELECT 语句之后;
9 全文本搜索
貌似是个好东西,先放着,用到时好好研究;
页:
[1]