¼òµ¥Èý²½×ß¶ÂËÀSQLServer×¢Èë©¶´
SQL×¢ÈëÊÇʲô?
¡¡¡¡Ðí¶àÍøÕ¾³ÌÐòÔÚ±àдʱ£¬Ã»ÓжÔÓû§ÊäÈëÊý¾ÝµÄºÏ·¨ÐÔ½øÐÐÅжϣ¬Ê¹Ó¦ÓóÌÐò´æÔÚ°²È«Òþ»¼¡£Óû§¿ÉÒÔÌá½»Ò»¶ÎÊý¾Ý¿â²éѯ´úÂë(Ò»°ãÊÇÔÚä¯ÀÀÆ÷µØÖ·À¸½øÐÐ,ͨ¹ýÕý³£µÄwww¶Ë¿Ú·ÃÎÊ)£¬¸ù¾Ý³ÌÐò·µ»ØµÄ½á¹û£¬»ñµÃijЩÏëµÃÖªµÄÊý¾Ý£¬Õâ¾ÍÊÇËùνµÄSQL Injection£¬¼´SQL×¢Èë¡£
¡¡¡¡ÍøÕ¾µÄ¶ñÃΗ—SQL×¢Èë
¡¡¡¡SQL×¢Èëͨ¹ýÍøÒ³¶ÔÍøÕ¾Êý¾Ý¿â½øÐÐÐ޸ġ£ËüÄܹ»Ö±½ÓÔÚÊý¾Ý¿âÖÐÌí¼Ó¾ßÓйÜÀíԱȨÏÞµÄÓû§£¬´Ó¶ø×îÖÕ»ñµÃϵͳ¹ÜÀíԱȨÏÞ¡£ºÚ¿Í¿ÉÒÔÀûÓûñµÃµÄ¹ÜÀíԱȨÏÞÈÎÒâ»ñµÃÍøÕ¾ÉϵÄÎļþ»òÕßÔÚÍøÒ³ÉϼӹÒľÂíºÍ¸÷ÖÖ¶ñÒâ³ÌÐò£¬¶ÔÍøÕ¾ºÍ·ÃÎʸÃÍøÕ¾µÄÍøÓѶ¼´øÀ´¾Þ´óΣº¦¡£
¡¡¡¡·ÀÓùSQL×¢ÈëÓÐÃî·¨
¡¡¡¡µÚÒ»²½:ºÜ¶àÐÂÊÖ´ÓÍøÉÏÏÂÔØSQLͨÓ÷À×¢ÈëϵͳµÄ³ÌÐò£¬ÔÚÐèÒª·À·¶×¢ÈëµÄÒ³ÃæÍ·²¿ÓÃÀ´·ÀÖ¹±ðÈ˽øÐÐÊÖ¶¯×¢Èë²âÊÔ¡£
¡¡¡¡¿ÉÊÇÈç¹ûͨ¹ýSQL×¢Èë·ÖÎöÆ÷¾Í¿ÉÇáËÉÌø¹ý·À×¢Èëϵͳ²¢×Ô¶¯·ÖÎöÆä×¢Èëµã¡£È»ºóÖ»ÐèÒª¼¸·ÖÖÓ£¬ÄãµÄ¹ÜÀíÔ±Õ˺ż°ÃÜÂë¾Í»á±»·ÖÎö³öÀ´¡£
¡¡¡¡µÚ¶þ²½:¶ÔÓÚ×¢Èë·ÖÎöÆ÷µÄ·À·¶£¬Í¨¹ýʵÑ飬·¢ÏÖÁËÒ»ÖÖ¼òµ¥ÓÐЧµÄ·À·¶·½·¨¡£Ê×ÏÈÎÒÃÇÒªÖªµÀSQL×¢Èë·ÖÎöÆ÷ÊÇÈçºÎ¹¤×÷µÄ¡£ÔÚ²Ù×÷¹ý³ÌÖУ¬·¢ÏÖÈí¼þ²¢²»Êdzå×Å“admin”¹ÜÀíÔ±Õ˺ÅÈ¥µÄ£¬¶øÊdzå×ÅȨÏÞ(Èçflag=1)È¥µÄ¡£ÕâÑùÒ»À´£¬ÎÞÂÛÄãµÄ¹ÜÀíÔ±Õ˺ÅÔõô±ä¶¼ÎÞ·¨ÌÓ¹ý¼ì²â¡£
µÚÈý²½:¼ÈÈ»ÎÞ·¨ÌÓ¹ý¼ì²â£¬ÄÇÎÒÃǾÍ×öÁ½¸öÕ˺ţ¬Ò»¸öÊÇÆÕͨµÄ¹ÜÀíÔ±Õ˺ţ¬Ò»¸öÊÇ·ÀÖ¹×¢ÈëµÄÕ˺ţ¬Èç¹ûÕÒÒ»¸öȨÏÞ×î´óµÄÕ˺ÅÖÆÔì¼ÙÏó£¬ÎüÒýÈí¼þµÄ¼ì²â£¬¶øÕâ¸öÕ˺ÅÀïµÄÄÚÈÝÊÇ´óÓÚǧ×ÖÒÔÉϵÄÖÐÎÄ×Ö·û£¬¾Í»áÆÈʹÈí¼þ¶ÔÕâ¸öÕ˺ŽøÐзÖÎöµÄʱºò½øÈëÈ«¸ººÉ״̬ÉõÖÁ×ÊÔ´ºÄ¾¡¶øËÀ»ú¡£ÏÂÃæÎÒÃǾÍÀ´ÐÞ¸ÄÊý¾Ý¿â°É¡£
¡¡¡¡1.¶Ô±í½á¹¹½øÐÐÐ޸ġ£½«¹ÜÀíÔ±µÄÕ˺Å×ֶεÄÊý¾ÝÀàÐͽøÐÐÐ޸ģ¬Îı¾Ð͸ijÉ×î´ó×Ö¶Î255(ÆäʵҲ¹»ÁË£¬Èç¹û»¹Ïë×öµÃÔÙ´óµã£¬¿ÉÒÔÑ¡Ôñ±¸×¢ÐÍ)£¬ÃÜÂëµÄ×Ö¶ÎÒ²½øÐÐÏàͬÉèÖá£
¡¡¡¡2.¶Ô±í½øÐÐÐ޸ġ£ÉèÖùÜÀíԱȨÏÞµÄÕ˺ŷÅÔÚID1£¬²¢ÊäÈë´óÁ¿ÖÐÎÄ×Ö·û(×îºÃ´óÓÚ100¸ö×Ö)¡£
¡¡¡¡3.°ÑÕæÕýµÄ¹ÜÀíÔ±ÃÜÂë·ÅÔÚID2ºóµÄÈκÎÒ»¸öλÖÃ(Èç·ÅÔÚID549ÉÏ)¡£
¡¡¡¡ÎÒÃÇͨ¹ýÉÏÃæµÄÈý²½Íê³ÉÁ˶ÔÊý¾Ý¿âµÄÐ޸ġ£
¡¡¡¡ÁíÍâÒªÃ÷°×Äú×öµÄID1ÕËºÅÆäʵҲÊÇÕæÕýÓÐȨÏÞµÄÕ˺ţ¬ÏÖÔÚ¼ÆËã»ú´¦ÀíËÙ¶ÈÄÇô¿ì£¬ÒªÊÇÓöÉϸöÒ»¶¨Òª½«ËüËã³öÀ´µÄÈí¼þ£¬ÕâÒ²ÊDz»°²È«µÄ¡£Ö»ÒªÔÚ¹ÜÀíÔ±µÇ¼µÄÒ³ÃæÎļþÖÐдÈë×Ö·ûÏÞÖÆ¾ÍÐÐÁË£¬¾ÍËã¶Ô·½Ê¹ÓÃÕâ¸öÓÐÉÏǧ×Ö·ûµÄÕ˺ÅÃÜÂëÒ²»á±»µ²×¡µÄ£¬¶øÕæÕýµÄÃÜÂëÔò¿ÉÒÔ²»ÊÜÏÞÖÆ¡£
Ïà¹ØÎĵµ£º
1.¾ø¶ÔÖµ
S:select abs(-1) value
O:select abs(-1) value from dual
2.È¡Õû(´ó)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.È¡Õû£¨Ð¡£©
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.È ......
ÏÖÔÚÒ»°ã³£ÓõÄÓÐÒÔÏÂ2ÖÖ·½·¨:
1. select top @pagesize * from table1 where id not in (select top @pagesize*(@page-1) id from table1 order by id) order by id
2. select * from (select top @pagesize * from (select top @pagesize*@page * from table1 order by id) a order by id desc) b or ......
×òÌìÏÂÎç¿ìϰàµÄʱºò£¬ÎÞÒâÖÐÌýµ½¹«Ë¾Á½Î»Í¬ÊÂÔÚ̽ÌÖÅúÁ¿ÏòÊý¾Ý¿â²åÈëÊý¾ÝµÄÐÔÄÜÓÅ»¯ÎÊÌ⣬¶ÙʱÀ´ÁËÐËȤ£¬°Ñ×Ô¼ºµÄÏë·¨ÏòÁ½Î»Í¬ÊÂ˵ÁËһϣ¬ÓÚÊÇÓÐÁ˱¾ÎÄ¡£
¹«Ë¾¼¼Êõ±³¾°£ºÊý¾Ý¿â·ÃÎÊÀࣨxxx.DataBase.Dll£©µ÷Óô洢¹ý³ÌʵÏÖÊý¾Ý¿âµÄ·ÃÎÊ¡£
¼¼Êõ·½°¸Ò»£º
ѹËõʱ¼äϳÌÐòԱд³öµÄµÚÒ»¸ö°æ±¾£¬½ö½öΪÁËÍê³ÉÈÎÎñ£¬Ã»ÓÐ´Ó³Ì ......
ÔÚ¼ÆËã»úÖÐÊý¾ÝÓÐÁ½ÖÖÌØÕ÷£ºÀàÐͺͳ¤¶È¡£ËùνÊý¾ÝÀàÐ;ÍÊÇÒÔÊý¾ÝµÄ±íÏÖ·½Ê½ºÍ´æ´¢·½Ê½À´»®·ÖµÄÊý¾ÝµÄÖÖÀà¡£
ÔÚSQL Server ÖÐÿ¸ö±äÁ¿¡¢²ÎÊý¡¢±í´ïʽµÈ¶¼ÓÐÊý¾ÝÀàÐÍ¡£ÏµÍ³ÌṩµÄÊý¾ÝÀàÐÍ·ÖΪ¼¸´óÀ࣬Èç±í4-2 Ëùʾ¡£
ÆäÖУ¬BIGINT¡¢ SQL_VARIANT ºÍTABLE ÊÇSQL Server 2 ......
ÔÚsqlserver2005ÏÂʹÓÃÏÂÃæÓï¾ä
WITH t AS (
SELECT ROW_NUMBER() OVER(ORDER BY id DESC) as row_number, id,ss
&nb ......