Áù¸ö½¨Òé·ÀÖ¹SQL×¢Èëʽ¹¥»÷
SQL×¢Èë¹¥»÷µÄΣº¦ÐԺܴó¡£ÔÚ½²½âÆä·ÀÖ¹°ì·¨Ö®Ç°£¬Êý¾Ý¿â¹ÜÀíÔ±ÓбØÒªÏÈÁ˽âÒ»ÏÂÆä¹¥»÷µÄÔÀí¡£ÕâÓÐÀûÓÚ¹ÜÀíÔ±²ÉÈ¡ÓÐÕë¶ÔÐԵķÀÖδëÊ©¡£
¡¡¡¡Ò»¡¢ SQL×¢Èë¹¥»÷µÄ¼òµ¥Ê¾Àý¡£
¡¡¡¡statement := "SELECT * from Users WHERE Value= " + a_variable + "
¡¡¡¡ÉÏÃæÕâÌõÓï¾äÊǺÜÆÕͨµÄÒ»ÌõSQLÓï¾ä£¬ËûÖ÷ҪʵÏֵŦÄܾÍÊÇÈÃÓû§ÊäÈëÒ»¸öÔ±¹¤±àºÅÈ»ºó²éѯ´¦Õâ¸öÔ±¹¤µÄÐÅÏ¢¡£µ«ÊÇÈôÕâÌõÓï¾ä±»²»·¨¹¥»÷Õ߸Ä×°¹ýºó£¬¾Í¿ÉÄܳÉΪÆÆ»µÊý¾ÝµÄºÚÊÖ¡£Èç¹¥»÷ÕßÔÚÊäÈë±äÁ¿µÄʱºò£¬ÊäÈëÒÔÏÂÄÚÈÝSA001’;drop table c_order--¡£ÄÇôÒÔÉÏÕâÌõSQLÓï¾äÔÚÖ´ÐеÄʱºò¾Í±äΪÁËSELECT * from Users WHERE Value= ‘SA001’;drop table c_order--¡£
¡¡¡¡ÕâÌõÓï¾äÊÇʲôÒâ˼ÄØ?‘SA001’ºóÃæµÄ·ÖºÅ±íʾһ¸ö²éѯµÄ½áÊøºÍÁíÒ»ÌõÓï¾äµÄ¿ªÊ¼¡£c_orderºóÃæµÄË«Á¬×Ö·û ָʾµ±Ç°ÐÐÓàϵIJ¿·ÖÖ»ÊÇÒ»¸ö×¢ÊÍ£¬Ó¦¸ÃºöÂÔ¡£Èç¹ûÐ޸ĺóµÄ´úÂëÓï·¨ÕýÈ·£¬Ôò·þÎñÆ÷½«Ö´ÐиôúÂ롣ϵͳÔÚ´¦ÀíÕâÌõÓï¾äʱ£¬½«Ê×ÏÈÖ´ÐвéѯÓï¾ä£¬²éµ½Óû§±àºÅΪSA001 µÄÓû§ÐÅÏ¢¡£È»ºó£¬Êý¾Ý½«É¾³ý±íC_ORDER(Èç¹ûûÓÐÆäËûÖ÷¼üµÈÏà¹ØÔ¼Êø£¬Ôòɾ³ý²Ù×÷¾Í»á³É¹¦)¡£Ö»Òª×¢ÈëµÄSQL´úÂëÓï·¨ÕýÈ·£¬±ãÎÞ·¨²ÉÓñà³Ì·½Ê½À´¼ì²â´Û¸Ä¡£Òò´Ë£¬±ØÐëÑéÖ¤ËùÓÐÓû§ÊäÈ룬²¢×Ðϸ¼ì²éÔÚÄúËùÓõķþÎñÆ÷ÖÐÖ´Ðй¹Ôì SQLÃüÁîµÄ´úÂë¡£
¡¡¡¡¶þ¡¢ SQL×¢Èë¹¥»÷ÔÀí¡£
¡¡¡¡¿É¼ûSQL×¢Èë¹¥»÷µÄΣº¦ÐԺܴó¡£ÔÚ½²½âÆä·ÀÖ¹°ì·¨Ö®Ç°£¬Êý¾Ý¿â¹ÜÀíÔ±ÓбØÒªÏÈÁ˽âÒ»ÏÂÆä¹¥»÷µÄÔÀí¡£ÕâÓÐÀûÓÚ¹ÜÀíÔ±²ÉÈ¡ÓÐÕë¶ÔÐԵķÀÖδëÊ©¡£
¡¡¡¡SQL×¢ÈëÊÇÄ¿Ç°±È½Ï³£¼ûµÄÕë¶ÔÊý¾Ý¿âµÄÒ»ÖÖ¹¥»÷·½Ê½¡£ÔÚÕâÖÖ¹¥»÷·½Ê½ÖУ¬¹¥»÷Õ߻ὫһЩ¶ñÒâ´úÂë²åÈëµ½×Ö·û´®ÖС£È»ºó»áͨ¹ý¸÷ÖÖÊֶν«¸Ã×Ö·û´®´«µÝµ½SQLServerÊý¾Ý¿âµÄʵÀýÖнøÐзÖÎöºÍÖ´ÐС£Ö»ÒªÕâ¸ö¶ñÒâ´úÂë·ûºÏSQLÓï¾äµÄ¹æÔò£¬ÔòÔÚ´úÂë±àÒëÓëÖ´ÐеÄʱºò£¬¾Í²»»á±»ÏµÍ³Ëù·¢ÏÖ¡£
¡¡¡¡SQL×¢Èëʽ¹¥»÷µÄÖ÷ÒªÐÎʽÓÐÁ½ÖÖ¡£Ò»ÊÇÖ±½Ó½«´úÂë²åÈëµ½ÓëSQLÃüÁî´®ÁªÔÚÒ»Æð²¢Ê¹µÃÆäÒÔÖ´ÐеÄÓû§ÊäÈë±äÁ¿¡£ÉÏÃæ±ÊÕß¾ÙµÄÀý×Ó¾ÍÊDzÉÓÃÁËÕâÖÖ·½·¨¡£ÓÉÓÚÆäÖ±½ÓÓëSQLÓï¾äÀ¦°ó£¬¹ÊÒ²±»³ÆΪֱ½Ó×¢Èëʽ¹¥»÷·¨¡£¶þÊÇÒ»ÖÖ¼ä½ÓµÄ¹¥»÷·½·¨£¬Ëü½«¶ñÒâ´úÂë×¢ÈëÒªÔÚ±íÖд洢»òÕß×÷ΪÔÊé¾Ý´æ´¢µÄ×Ö·û´®¡£ÔÚ´æ´¢µÄ×Ö·û´®ÖлáÁ¬½Óµ½Ò»¸ö¶¯Ì¬µÄSQLÃüÁîÖУ¬ÒÔÖ´ÐÐһЩ¶ñÒâµÄSQL´úÂë¡£
¡¡¡¡×¢Èë¹ý³ÌµÄ¹¤×÷·½Ê½ÊÇÌáÇ°ÖÕÖ¹Îı¾×Ö·û´®£¬È»ºó×·¼ÓÒ»¸öеÄÃüÁî¡£ÈçÒÔÖ±½Ó×¢Èëʽ¹¥»÷ΪÀý¡£¾ÍÊÇÔÚÓû§ÊäÈë±äÁ¿µÄʱºò£¬ÏÈÓÃÒ»¸ö·ÖºÅ½áÊø
Ïà¹ØÎĵµ£º
drop table #Tmp --ɾ³ýÁÙʱ±í#Tmp
create table #Tmp --´´½¨ÁÙʱ±í#Tmp
(
ID int IDENTITY (1,1) not null, --´´½¨ÁÐID,²¢ÇÒÿ´ÎÐÂÔöÒ»Ìõ¼Ç¼¾Í»á¼Ó1
WokNo &nb ......
ͨ¹ýË÷Òý£¬¿ÉÒÔ¼Ó¿ìÊý¾ÝµÄ²éѯËٶȺͼõÉÙϵͳµÄÏìӦʱ¼ä£»¿ÉÒÔʹ±íºÍ±íÖ®¼äµÄÁ¬½ÓËٶȼӿ졣µ«ÊÇ£¬²»ÊÇÔÚÈκÎʱºòʹÓÃË÷Òý¶¼Äܹ»´ïµ½ÕâÖÖЧ¹û¡£ÈôÔÚ²»Ç¡µ±µÄ³¡ºÏÏ£¬Ê¹ÓÃË÷Òý·´¶ø»áÊÂÓëԸΥ¡£ Ë÷ÒýÊÇÒÔ±íÁÐΪ»ù´¡µÄÊý¾Ý¿â¶ÔÏó¡£Ë÷ÒýÖб£´æ×űíÖÐÅÅÐòµÄË÷ÒýÁÐ
¡¡¡¡
ͨ¹ýË÷Òý£¬¿ÉÒÔ¼Ó¿ìÊý¾ÝµÄ²éѯËٶȺͼõÉÙϵͳµÄÏìӦʱ¼ä£ ......
1. Nested Loop Join(ǶÌ×Ñ»·Áª½á)
Ëã·¨£º
Æä˼·Ï൱µÄ¼òµ¥ºÍÖ±½Ó£º¶ÔÓÚ¹ØϵRµÄÿ¸öÔª×é r ½«ÆäÓë¹ØϵSµÄÿ¸öÔª×é s ÔÚJOINÌõ¼þµÄ×Ö¶ÎÉÏÖ±½Ó±È½Ï²¢É¸Ñ¡³ö·ûºÏÌõ¼þµÄÔª×顣д³Éα´úÂë¾ÍÊÇ£º
´ú¼Û£º
±»Áª½áµÄ±íËù´¦ÄÚ²ã»òÍâ²ãµÄ˳Ðò¶Ô´ÅÅÌI/O¿ªÏúÓÐ×ŷdz£ÖØÒªµÄÓ°Ïì¡£¶øCPU¿ªÏúÏà¶ÔÀ´ËµÓ°Ïì½ÏС£¬Ö÷ÒªÊÇÔª×é¶ÁÈ ......
Ê×ÏȽéÉÜÒ»ÏÂʲôÊÇ´æ´¢¹ý³Ì£º´æ´¢¹ý³Ì¾ÍÊǽ«³£ÓõĻòºÜ¸´ÔӵŤ×÷£¬Ô¤ÏÈÓÃSQLÓï¾äдºÃ²¢ÓÃÒ»¸öÖ¸¶¨µÄÃû³Æ´æ´¢ÆðÀ´£¬²¢ÇÒÕâÑùµÄÓï¾äÊÇ·ÅÔÚÊý¾Ý¿âÖеģ¬»¹¿ÉÒÔ¸ù¾ÝÌõ¼þÖ´Ðв»Í¬SQLÓï¾ä£¬ ÄÇôÒÔºóÒª½ÐÊý¾Ý¿âÌṩÓëÒѶ¨ÒåºÃµÄ´æ´¢¹ý³ÌµÄ¹¦ÄÜÏàͬµÄ·þÎñʱ£¬Ö»Ðèµ÷ÓÃexecute,¼´¿É×Ô¶¯Íê³ÉÃüÁî¡£
¡¡¡¡Çë´ó¼ÒÀ´Á˽âÒ»ÏÂ´æ´ ......
1 --´ÓTable ±íÖÐÈ¡³öµÚ m Ìõµ½µÚ n ÌõµÄ¼Ç¼£º(Not In °æ±¾)
2
3 SELECT TOP n-m+1 *
4 from Table
5 WHERE (id NOT IN (SELECT TOP m-1 id from Table ))
6
7
8 --´ÓTABLE±íÖÐÈ¡³öµÚmµ½nÌõ¼Ç¼ (Exists°æ±¾)
9
10 SELECT TOP n-m+1 * from ......