摘要:
SQL有着非常强大且灵活的查询方式,而多表连接操作往往也可以用子查询进行替代,子查询本质上是嵌套进其他select,update,insert,delete语句的一个被限制的select语句,在子查询中,只有下面几个子句可以使用1、select子句(必须)2、from子句(必须)3、where子句(可选)4、group by(可选)5、having(可选)6、order by(只有在top关键字被使用时才可用)子查询可以嵌套在其他子查询中,这个嵌套最多可以达到32层。子查询也叫内部查询(inner query)或者内部选择(innder select),而包含子查询的查询语句也叫外部查询(o. 阅读全文
posted @ 2012-01-29 22:41
指尖流淌
阅读(12783)
评论(0)
推荐(1)
摘要:
sql server 2008提供了一个增强的Sql命令Merge,用法参看MSDN。能根据两张表数据的不同,对两张表进行数据执行插入,更新或删除等操作,一般用在数据的抽取,例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两张表数据进行同步。看例子,假如,有一总产品列表,一个分店产品列表,需要从分店添加产品时更新产品列表。总产品表,分店产品表结构完全一致:if OBJECT_ID('Demo_AllProducts')is not null drop table Demo_AllProductsgoCreate table Demo_AllProducts( 阅读全文
posted @ 2012-01-29 18:35
指尖流淌
阅读(463)
评论(0)
推荐(0)
摘要:
在SQL Server 2008中新增功能,可以使用单个insert命令插入多行举例:CREATE TABLE [dbo].[test2]( [编号] [int] NULL, [姓名] [varchar](20) NULL, [一季度] [int] NULL, [二季度] [int] NULL, [三季度] [int] NULL, [四季度] [int] NULL) insert into test2(编号,姓名,一季度,二季度,三季度,四季度)values(1,'a1',1,1,1,1),(2,'a2',2,2,2,2),(2,'a3',3,3 阅读全文
posted @ 2012-01-29 17:33
指尖流淌
阅读(379)
评论(0)
推荐(0)
摘要:
SQL Server查询1、查询的时候应该尽量按照复合索引中的顺序来做条件查询;2、如果在程序中有for或者是freach,在存储过程中又有if exist,那就要看是否可以再表中加入复合索引了,if not exists可以转换为if exists来使用索引;3、在查询尽量少使用*或者全表字段来查询。第一,返回的数据集比较大;第二,产生更多的IO操作;第三,会使用到Bookmarklookup的查询计划,性能有所下降;如果能使用覆盖索引来查询是最理想的。4、下面关于查询的性能比较1、返回行数较多:索引覆盖>聚集索引>表扫描>堆积的非聚集索引>聚集的非聚集索引2、返回行 阅读全文
posted @ 2012-01-29 17:02
指尖流淌
阅读(391)
评论(0)
推荐(0)

浙公网安备 33010602011771号