【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 全文本搜索
貌似是个好东西,先放着,用到时好好研究;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值