SQLServer ÓÅ»¯SQLÓï¾ä£ºin ºÍnot inµÄÌæ´ú·½°¸
ÔÎijö´¦£ºhttp://www.cnblogs.com/luoht/archive/2010/03/01/1676049.html
ÓÃINд³öÀ´µÄSQLµÄÓŵãÊDZȽÏÈÝÒ×д¼°ÇåÎúÒ׶®£¬Õâ±È½ÏÊʺÏÏÖ´úÈí¼þ¿ª·¢µÄ·ç¸ñ¡£
¡¡¡¡µ«ÊÇÓÃINµÄSQLÐÔÄÜ×ÜÊDZȽϵ͵ģ¬´ÓSQLÖ´ÐеIJ½ÖèÀ´·ÖÎöÓÃINµÄSQLÓë²»ÓÃINµÄSQLÓÐÒÔÏÂÇø±ð£º
¡¡¡¡SQLÊÔͼ½«Æäת»»³É¶à¸ö±íµÄÁ¬½Ó£¬Èç¹ûת»»²»³É¹¦ÔòÏÈÖ´ÐÐINÀïÃæµÄ×Ó²éѯ£¬ÔÙ²éѯÍâ²ãµÄ±í¼Ç¼£¬Èç¹ûת»»³É¹¦ÔòÖ±½Ó²ÉÓöà¸ö±íµÄÁ¬½Ó·½Ê½²éѯ¡£Óɴ˿ɼûÓÃINµÄSQLÖÁÉÙ¶àÁËÒ»¸öת»»µÄ¹ý³Ì¡£Ò»°ãµÄSQL¶¼¿ÉÒÔת»»³É¹¦£¬µ«¶ÔÓÚº¬ÓзÖ×éͳ¼ÆµÈ·½ÃæµÄSQL¾Í²»ÄÜת»»ÁË¡£ ÍƼöÔÚÒµÎñÃܼ¯µÄSQLµ±Öо¡Á¿²»²ÉÓÃIN²Ù×÷·û
¡¡¡¡NOT IN ´Ë²Ù×÷ÊÇÇ¿ÁÐÍƼö²»Ê¹Óõģ¬ÒòΪËü²»ÄÜÓ¦ÓñíµÄË÷Òý¡£ÍƼöÓÃNOT EXISTS »ò(ÍâÁ¬½Ó+ÅжÏΪ¿Õ)·½°¸´úÌæ
¡¡¡¡ÔÚÊý¾Ý¿âÖÐÓÐÁ½¸ö±í£¬Ò»¸öÊǵ±Ç°±íInfo(id,PName,remark,impdate,upstate)£¬Ò»¸öÊDZ¸·ÝÊý¾Ý±íbakInfo(id,PName,remark,impdate,upstate)£¬½«µ±Ç°±íÊý¾Ý±¸·Ýµ½±¸·Ý±íÈ¥£¬¾ÍÉæ¼°µ½not in ºÍin ²Ù×÷ÁË£º
¡¡¡¡Ê×ÏÈ£¬Ìí¼Ó10ÍòÌõ²âÊÔÊý¾Ý
¡¡¡¡Ê¹ÓÃnot in ºÍin²Ù×÷£º
SET STATISTICS TIME ON
¡¡¡¡GO
¡¡¡¡--±¸·ÝÊý¾Ý
¡¡¡¡insert into bakInfo(id,PName,remark,impdate,upstate)
¡¡¡¡select id,PName,remark,impdate,upstate from dbo.Info
¡¡¡¡where id not in(select id from dbo.bakInfo)
¡¡¡¡GO
¡¡¡¡SET STATISTICS TIME OFF
¡¡¡¡´Ë²Ù×÷Ö´ÐÐʱ¼ä£º
¡¡¡¡SQL Server ·ÖÎöºÍ±àÒëʱ¼ä:
¡¡¡¡CPU ʱ¼ä = 0 ºÁÃ룬ռÓÃʱ¼ä = 3 ºÁÃë¡£
¡¡¡¡
¡¡¡¡SQL Server Ö´ÐÐʱ¼ä:
¡¡¡¡ CPU ʱ¼ä = 453 ºÁÃ룬ռÓÃʱ¼ä = 43045 ºÁÃë¡£
¡¡¡¡(100000 ÐÐÊÜÓ°Ïì)
¡¡¡¡SQL Server ·ÖÎöºÍ±àÒëʱ¼ä:
¡¡¡¡CPU ʱ¼ä = 0 ºÁÃ룬ռÓÃʱ¼ä = 1 ºÁÃë¡£
¡¡¡¡
¡¡¡¡
¡¡¡¡--¸ü¸Äµ±Ç°±í״̬
¡¡¡¡update Info set upstate=1 where id in(select id from dbo.bakInfo)
¡¡¡¡´Ë²Ù×÷Ö´ÐÐʱ¼ä£º
¡¡¡¡SQL Server ·ÖÎöºÍ±àÒëʱ¼ä:
¡¡¡¡CPU ʱ¼ä = 62 ºÁÃ룬ռÓÃʱ¼ä = 79 ºÁÃë¡£
¡¡¡¡SQL Server Ö´ÐÐʱ¼ä:
¡¡¡¡CPU ʱ¼ä = 188 ºÁÃ룬ռÓÃʱ¼ä = 318 ºÁÃë¡£
¡¡¡¡(100000 ÐÐÊÜÓ°Ïì)
¡¡¡¡SQL Server ·ÖÎöºÍ±àÒëʱ¼ä:
¡¡¡¡CPU ʱ¼ä = 0 ºÁÃ룬ռÓÃʱ¼ä = 1 ºÁÃë¡£
¡¡¡¡
¡¡¡¡
¡
Ïà¹ØÎĵµ£º
--¶¼Ð´ÁË ²Î¿¼Ï°É
ͨ³££¬ÄãÐèÒª»ñµÃµ±Ç°ÈÕÆںͼÆËãһЩÆäËûµÄÈÕÆÚ£¬ÀýÈ磬ÄãµÄ³ÌÐò¿ÉÄÜÐèÒªÅжÏÒ»¸öÔµĵÚÒ»Ìì»òÕß×îºóÒ»Ìì¡£ÄãÃǴ󲿷ÖÈË´ó¸Å¶¼ÖªµÀÔõÑù°ÑÈÕÆÚ½øÐзָÄê¡¢Ô¡¢Èյȣ©£¬È»ºó½ö½öÓ÷ָî³öÀ´µÄÄê¡¢Ô¡¢ÈյȷÅÔÚ¼¸¸öº¯ÊýÖмÆËã³ö×Ô¼ºËùÐèÒªµÄÈÕÆÚ£¡ÔÚÕâƪÎÄÕÂÀÎÒ½«¸æËßÄãÈçºÎʹÓÃDATEADDºÍDATEDIFFº¯Êý ......
£¨1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLE µÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏÂ,Äã±ØÐëÑ¡Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í¡£Èç¹ûÓÐ3¸öÒÔÉϵıíÁ¬½Ó²éѯ, ÄǾÍÐèÒª ......
±¾ÎÄ×ܽáÁË¿ª·¢¹¤×÷Öг£ÓõÄSQLÓï¾ä,¹©´ó¼Ò²Î¿¼……
--Óï ¾ä ¹¦ ÄÜ
--Êý¾Ý²Ù×÷
SELECT --´ÓÊý¾Ý¿â±íÖмìË÷Êý¾ÝÐкÍÁÐ
INSERT --ÏòÊý¾Ý¿â±íÌí¼ÓÐÂÊý¾ÝÐÐ
DELETE --´ÓÊý¾Ý¿â±íÖÐɾ³ýÊý¾ÝÐÐ
UPDATE --¸üÐÂÊý¾Ý¿â±íÖеÄÊý¾Ý
--Êý¾Ý¶¨Òå
CREATE TABLE --´´½¨Ò»¸öÊý¾Ý¿â±í
DROP TABLE --´ÓÊý¾Ý¿âÖÐɾ³ý±í
A ......
1
¡¢²éÕÒ±íÖжàÓàµÄÖظ´¼Ç¼£¬Öظ´¼Ç¼ÊǸù¾Ýµ¥¸ö×ֶΣ¨peopleId£©À´ÅжÏ
select
*
from
people
where
peopleId
in
(
select
peopleId
from
people
group
by
peopleId
having
cou ......