T-SQL查询学习心得
《T-SQL查询》学习心得
逻辑查询中的的各个步骤
-----SQL Server2005技术内幕 T-SQL查询 Itzik Ben-Gan 著
步骤一:执行交叉联接。如果左表有n行,右表有m行,笛卡尔乘积将产生VT1 有 n*m行。 步骤二:应用ON筛选器。留意SQL语言中的三值逻辑:ture,false,unknown。
三值逻辑:主要了解unknown:unknown这个逻辑值主要出现在包含null值的逻辑表达式中,null > 1;null = null; null + x > y 等等都为unknown。查询筛选器中(ON,WHERE,HAVING)都把unknown 当做FALSE处理,这使得unknown被排除在查询结果集合之外。但在CHECK约束中 unknown被当做TRUE对待。
步骤三:添加外部行。外部行中非保留表的属性(列值)将赋予null值,生成VT3
步骤四:应用WHERE筛选器。关于ON与WHERE 哪一个筛选器被最先使用的问题:ON在添加外部行(步骤三)之前被使用,而WHERE在步骤三之后才使用。ON在保留表中移除的部分行不是最终的,它还是会加回来。WHERE则是最终的移除。这个区别只会出现在使用OUTER JOIN的时候才会出现。一般的连接会跳过步骤三。产生VT4
步骤五:分组GROUP BY 。sql server 2005支持按表达式分组。GROUP BY ALL 这一选项在2005中的支持:它将导致在where 子句中被移除的组会重新添加进VT5,从而导致如果对这个组使用聚合函数COUNT的值为0,其他MIN MAX AVG SUM将得到null值。
步骤六:应用CUBE,ROLLUP选项
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库SQL查询学习心得在线全文阅读。
相关推荐: