最近买了几本SQL2005的书, 看到书中有些比较经典的问题列记出来, 方便日后工作查找。
这本书是<<SQL Server 2005 高级程序设计>> 美国:Robert Vieira著, 董明等译。一本十分基础的书。
Inner join, left join, right jion的区别
表A 表B 通达UserID关联。
Inner join: A.UserID=B.UserID 取得满足二个表都有相同的UserID的记录
left join: A.UserID=B.UserID 取得满足表A中UserID的记录, 也就是等号左边的表A中UserID的记录, 在表B中找不到的内容用null来代替
right join: A.UserID=B.UserID 取得满足表B中UserID的记录, 也就是等号右边的表B中UserID的记录,在表A中找不到的内容用null来代替
All Any Some的区别
All:要满足所有记录
Some, Any: 满足任一个就可以
表A中有UserID三个记录,UserID分别为3 9 13
以5为条件为例:
select * from dbo.A where 5>all(select id from A) 因为UserID里面有3, 所以有一个没满足大于5, 所以结果是false
select * from dbo.A where 5>any(select id from A) 因为UserID里面有9 13 , 所以有一个大于5, 所以结果是true