05 2014 档案

摘要:SQL Server 2008 引入了一个称为MERGE 的语句,它能在一条语句中根据逻辑条件对数据进行不同的修改操作(INSERT、UPDATE和DELETE)。MERGE语句是SQL 标准的一部分,而T-SQL版本的MERGE语句也增加了一些非标准的扩展。因为MERGE语句是新增的,所以必须使用... 阅读全文
posted @ 2014-05-28 23:34 守护之翼 阅读(118) 评论(0) 推荐(0) 编辑
摘要:T-SQL支持标准的UPDATE 语句,用于更新表中的数据。T-SQL 也支持UPDATE 语句的一种非标准用法,在UPDATE 语句中使用联接和变量1.UPDATE 语句UPDATE 语句是标准的SQL 语句,用于对表中数据 行的一个子集进行更新。为了标识作为更新目标的子集行,须要在WHERE 子... 阅读全文
posted @ 2014-05-27 23:46 守护之翼 阅读(192) 评论(0) 推荐(0) 编辑
摘要:T-SQL 提供了两个从表中删除数据行的语句:DELETE 和 TRUNCATE 。1.DELETE 语句DELETE 语句是标准的SQL 语句,它用于根据指定的谓词从表中删除数据。这个标准的语句只有两个子句:用于指定目标表名的FROM子句和用于指定谓词条件的WHERE 子句。只有能让谓词条件计算结... 阅读全文
posted @ 2014-05-27 00:12 守护之翼 阅读(201) 评论(0) 推荐(0) 编辑
摘要:1.INSERT VALUES 语句INSERT VALUES 语句可以将基于指定值的行插入表。INSERT INTO dbo.Orders(orderid,orderdate) VALUES(10001,'20090212');SQL Server 2008增强了VALUES 语句的功能,允许在一... 阅读全文
posted @ 2014-05-26 00:47 守护之翼 阅读(265) 评论(0) 推荐(0) 编辑
摘要:逆透视转换(unpivoting)是一种把数据从列的状态旋转为行的状态的技术。通常,它涉及查询数据的透视状态,将来自单个记录中多个列的值扩展为单个列中具有相同值的多个记录。换句话说,把透视表中的每个源行潜在地转换成多个行,每行代表源透视表的一个指定的列值。使用标准SQL 进行逆透视转换逆透视转换的标... 阅读全文
posted @ 2014-05-19 00:09 守护之翼 阅读(1311) 评论(0) 推荐(0) 编辑
摘要:透视数据(pivoting)是一种把数据从行的状态旋转为列的状态的处理,在这个过程中可能需要对值进行聚合。每个透视转换将涉及三个逻辑处理阶段,每个阶段都有相关的元素:分组阶段处理相关的分组或行元素,扩展(spreading)阶段处理相关的扩展或列元素,聚合阶段处理相关的聚合元素和聚合函数。总之,透视... 阅读全文
posted @ 2014-05-18 23:29 守护之翼 阅读(258) 评论(0) 推荐(0) 编辑
摘要:在集合论中,集合A与B的差集(A-B)是由属于集合A,但不属于集合B的元素组成的集合。可以认为两个集合的差A-B就是从A中减去B中也属于A的元素。在T-SQL中,集合之差是用EXCEPT集合运算实现的。EXCEPT运算对两个输入查询的结果集进行操作,返回出现在第一个结果集中,但不出现在第二个结果集中... 阅读全文
posted @ 2014-05-17 23:14 守护之翼 阅读(3608) 评论(2) 推荐(0) 编辑
摘要:在集合论中,两个集合(记为集合A和B)的交集是由既属于A,也属于B的所有元素组成的集合。在T-SQL 中,INTERSECT 集合运算对两个输入查询的结果集取其交集,只返回在两个查询结果集中都出现的行。INTERSECT DISTINCT集合运算INTERSECT 集合运算在逻辑上首先删除两个输入多... 阅读全文
posted @ 2014-05-16 00:07 守护之翼 阅读(1878) 评论(0) 推荐(0) 编辑
摘要:在集合论中,两个集合(记为集合A和B)的并集是一个包含集合A和B中所有元素的集合。换句话说,如果一个元素属于任何一个输入集合,那么它也属于结果集。在T-SQL中,UNION 集合运算可以将两个输入查询的结果集组合成一个结果集。如果一个行在任何一个输入集合中出现,它也会在UNION运算的结果中出现。T... 阅读全文
posted @ 2014-05-15 23:26 守护之翼 阅读(1930) 评论(0) 推荐(0) 编辑
摘要:内联表值函数是一种可重用的表表达式,能够支持输入参数。除了支持输入参数以外,内联表值函数在其他方面都与视图相似。(可以将内联表值函数看作是一种参数化的视图,尽管没有这种正式的说法)。例: CREATE FUNCTION fn_GetCustOrders (@cid as int) RETURN... 阅读全文
posted @ 2014-05-15 00:28 守护之翼 阅读(2037) 评论(0) 推荐(0) 编辑
摘要:视图和内联表值函数(inline TVF)是两种可重用的表表达式,它们的定义储存在一个数据库对象中。一旦创建,这些对象就是数据库的永久部分;只有用删除语句显式删除,它们才会从数据库中移除。在其他很多方面,视图和内联表值函数的处理方式都类似于派生表和CTE。例如,当查询视图或内联TVF时,SQL Se... 阅读全文
posted @ 2014-05-14 00:24 守护之翼 阅读(115) 评论(0) 推荐(0) 编辑
摘要:公用表表达式(CTE,Common table expression)是和派生表很相似的另一种形式的表表达式,而且具有一些重要优势。CTE 是在 SQL Server 2005 中引入的,是ANSI SQL (1999及以后版本)标准的一部分。例:WITH USACusts AS( SELECT ... 阅读全文
posted @ 2014-05-13 23:44 守护之翼 阅读(164) 评论(0) 推荐(0) 编辑
摘要:派生表(也称为表子查询)是在外部查询的FROM子句中定义的。派生表的存在范围为定义它的外部查询,只要外部查询一结束,派生表也就不存在了。定义派生表的查询语句要定在一对圆括号内,后面跟着AS子句和派生表的名称。例: SELECT * FROM (SELECT custid FROM Custo... 阅读全文
posted @ 2014-05-13 00:07 守护之翼 阅读(461) 评论(0) 推荐(0) 编辑
摘要:相关子查询是指引用了外部查询中出现的表的列的子查询。这就意味着子查询要依赖于外部查询,不能独立地调用它。在逻辑上,子查询会为每个外部行单独计算一次。例: SELECT custid,orderid,orderdate,empid FROM dbo.Orders AS O1 WHERE ... 阅读全文
posted @ 2014-05-12 22:51 守护之翼 阅读(150) 评论(0) 推荐(0) 编辑
摘要:每个子查询都有所谓于的外部查询。独立子查询是独立于其外部查询的子查询。在逻辑上,独立子查询在执行外部查询之前只要先执行一次,接着外部查询再使用子查询的结果继续进行查询。1.独立标量子查询标量子查询是返回单个值的子查询,而不管它是不是独立子查询。标量子查询可以出现在外部查询中期望使用单个值的任何地方(... 阅读全文
posted @ 2014-05-11 23:57 守护之翼 阅读(233) 评论(0) 推荐(0) 编辑
摘要:与内联接和交叉联接不同,外联接是在ANSI SQL-92 中才被引入的,因此它只有一种标准语法——在表名之间指定JOIN关键字,在ON子句中指定联接条件。外联接会应用内联接所应用的两个逻辑处理步骤(笛卡尔积和ON过滤),此外还多加一个外联接特有的第三步:添加外部行。在外联接中,要把一个表标记为“保留... 阅读全文
posted @ 2014-05-08 23:32 守护之翼 阅读(218) 评论(0) 推荐(0) 编辑
摘要:内联接要应用两个逻辑查询处理步骤:它首先像交叉联接一样,对两个输入表进行笛卡尔积运算;然后根据用户指定的谓词对结果行进行过滤。和交叉联接一样,内联接也有两种标准语法:ANSI SQL-92:需在两个表名之间指定 INNER JOIN 关键字。INNER 关键字是可选的,因为内联接是默认的联接方式,所... 阅读全文
posted @ 2014-05-06 23:35 守护之翼 阅读(163) 评论(0) 推荐(0) 编辑
摘要:在逻辑上,交叉联接是一种最简单的联接。交叉联接只实现一个逻辑查询步骤(笛卡尔积)。这一步是对输入的两个表进行操作,把它们联接起来,生成二者的笛卡尔积。也就是将一个输入表的每行与另一个表的所有行进行匹配。如果一个表有m行,而另一个表有n行,将得到m*n行的结果集。SQL Server 支持交叉联接的两... 阅读全文
posted @ 2014-05-04 22:52 守护之翼 阅读(155) 评论(0) 推荐(0) 编辑
摘要:在 SQL 中,实现的是三值谓词逻辑。通常一个命题要么为 TRUE,要么就为 FALSE。而在 SQL 中,它用 NULL 符号来表示缺少值。SQL的谓词的计算机结果可以是TRUE、FALSE或UNKNOWN(未知)。如果逻辑表达式只涉及已经存在的值,那么最终的计算机结果要么为TRUE,要么为FAL... 阅读全文
posted @ 2014-05-02 00:11 守护之翼 阅读(486) 评论(0) 推荐(0) 编辑
摘要:CASE 表达式是一个标量表达式,它基于条件逻辑来返回一个值。注意,CASE 是一个表达式,而不是一条语句;也就是说,不能用它来控制活动的流程,也不能根据条件逻辑来做某些处理。相反,它只是根据条件逻辑来返回某个值。因为CASE是一个标量表达式,所以它可以支持任何标量表达式(如SELECT、WHERE... 阅读全文
posted @ 2014-05-01 23:28 守护之翼 阅读(391) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示