£Ó£Ñ£Ì×¢ÈëÊÇ´ÓÕý³£µÄWWW¶Ë¿Ú·ÃÎÊ£¬¶øÇÒ±íÃæ¿´ÆðÀ´¸úÒ»°ãµÄWebÒ³Ãæ·ÃÎÊÃ»Ê²Ã´Çø±ð£¬ ËùÒÔĿǰÊÐÃæµÄ·À»ðǽ¶¼²»»á¶Ô£Ó£Ñ£Ì×¢Èë·¢³ö¾¯±¨£¬Èç¹û¹ÜÀíԱû²é¿´IISÈÕÖ¾µÄϰ¹ß£¬¿ÉÄܱ»ÈëÇֺܳ¤Ê±¼ä¶¼²»»á·¢¾õ¡£
Ëæ×ÅB/SģʽӦÓÿª·¢µÄ·¢Õ¹£¬Ê¹ÓÃÕâÖÖģʽ±àдӦÓóÌÐòµÄ³ÌÐòÔ±Ò²Ô½À´Ô½¶à¡£µ«ÊÇÓÉÓÚÕâ¸öÐÐÒµµÄÈëÃÅÃż÷²»¸ß£¬³ÌÐòÔ±µÄˮƽ¼°¾ÑéÒ²²Î²î²»Æë£¬Ï൱´óÒ»²¿·Ö³ÌÐòÔ±ÔÚ±àд´úÂëµÄʱºò£¬Ã»ÓжÔÓû§ÊäÈëÊý¾ÝµÄºÏ·¨ÐÔ½øÐÐÅжϣ¬Ê¹Ó¦ÓóÌÐò´æÔÚ°²È«Òþ»¼¡£Óû§¿ÉÒÔÌá½»Ò»¶ÎÊý¾Ý¿â²éѯ´úÂ룬¸ù¾Ý³ÌÐò·µ»ØµÄ½á¹û£¬»ñµÃijЩËûÏëµÃÖªµÄÊý¾Ý£¬Õâ¾ÍÊÇËùνµÄSQL Injection£¬¼´SQL×¢Èë¡£
SQL×¢ÈëÊÇ´ÓÕý³£µÄWWW¶Ë¿Ú·ÃÎÊ£¬¶øÇÒ±íÃæ¿´ÆðÀ´¸úÒ»°ãµÄWebÒ³Ãæ·ÃÎÊÃ»Ê²Ã´Çø±ð£¬ËùÒÔĿǰÊÐÃæµÄ·À»ðǽ¶¼²»»á¶ÔSQL×¢Èë·¢³ö¾¯±¨£¬Èç¹û¹ÜÀíԱû²é¿´IISÈÕÖ¾µÄϰ¹ß£¬¿ÉÄܱ»ÈëÇֺܳ¤Ê±¼ä¶¼²»»á·¢¾õ¡£
µ«ÊÇ£¬SQL×¢ÈëµÄÊÖ·¨Ï൱Áé»î£¬ÔÚ×¢ÈëµÄʱºò»áÅöµ½ºÜ¶àÒâÍâµÄÇé¿ö¡£Äܲ»Äܸù¾Ý¾ßÌåÇé¿ö½øÐзÖÎö£¬¹¹ÔìÇÉÃîµÄSQLÓï¾ä£¬´Ó¶ø³É¹¦»ñÈ¡ÏëÒªµÄÊý¾Ý£¬ÊǸßÊÖÓ듲ËÄñ”µÄ¸ù±¾Çø±ð¡£
SQL×¢Èë©¶´È«½Ó´¥--ÈëÃÅÆª
SQL×¢ÈëÊÇ´ÓÕý³£µÄWWW¶Ë¿Ú·ÃÎÊ£¬¶øÇÒ±íÃæ¿´ÆðÀ´¸úÒ»°ãµÄWebÒ³Ãæ·ÃÎÊÃ»Ê²Ã´Çø±ð£¬ËùÒÔÄ ......
¹úÍâ¿Õ¼äÃ²ËÆ¶ÔÖÐÎıȽϸÐð Èç¹ûÊý¾ÝÀàÐÍÉè¼ÆÎª varchar ÀàÐ͵ϰ ´æ´¢µÄÊý¾Ý»ù±¾ÉÏÊÇ "£¿£¿£¿£¿"
ºÜ¼òµ¥ ½« varchar ÀàÐÍ Éè¼ÆÎª nvarchar ÀàÐÍ
create table cs
(
txt1 nvarchar(50) null
)
insert into cs (txt1 ) values ('²âÊÔ') -- Èë¿âʱÊý¾Ýʱ £¿£¿£¿£¿
insert into cs (txt1) values (N'²âÊÔ') -- »ù±¾ÉϾͽâ¾öÁËÎÊÌâ
Èç¹ûÍøÕ¾ Ìí¼ÓÊý¾ÝµÄ»° ÓòÎÊý²éѯ»ù±¾ÉÏÊÐûÓÐÎÊÌâµÄ
ÆäËûµÄÎÒûÓÐÊÔ£¡
²»Ò»¶¨È«²¿ÓÐÓã¡ ......
A¡£
SQLÓï¾äµÄ²¢¼¯UNION£¬½»¼¯JOIN(ÄÚÁ¬½Ó£¬ÍâÁ¬½Ó)£¬½»²æÁ¬½Ó(CROSS
JOINµÑ¿¨¶û»ý)£¬²î¼¯(NOT IN)
1.
a. ²¢¼¯UNION
SELECT column1, column2 from table1
UNION
SELECT column1, column2 from table2
b. ½»¼¯JOIN
SELECT * from table1 AS a JOIN table2 b ON a.name=b.name
c. ²î¼¯NOT IN
SELECT * from table1 WHERE name NOT IN(SELECT name from table2)
d. µÑ¿¨¶û»ý
SELECT * from table1 CROSS JOIN table2
Óë
SELECT * from table1,table2Ïàͬ
2. SQLÖеÄUNION
UNIONÓëUNION ALLµÄÇø±ðÊÇ£¬Ç°Õß»áÈ¥³ýÖØ¸´µÄÌõÄ¿£¬ºóÕß»áÈԾɱ£Áô¡£
a. UNION
SQL Statement1
UNION
SQL Statement2
b. UNION ALL
SQL Statement1
UNION ALL
SQL Statement2
3. SQLÖеĸ÷ÖÖJOIN
SQLÖеÄÁ¬½Ó¿ÉÒÔ·ÖΪÄÚÁ¬½Ó£¬ÍâÁ¬½Ó£¬ÒÔ¼°½»²æÁ¬½Ó
(¼´Êǵѿ¨¶û»ý)
a. ½»²æÁ¬½ÓCROSS JOIN
Èç¹û²»´øWHEREÌõ¼þ×Ӿ䣬Ëü½«»á·µ»Ø±»Á¬½ÓµÄÁ½¸ö±íµÄµÑ¿¨¶û»ý£¬·µ»Ø½á¹ûµÄÐÐÊýµÈÓÚÁ½¸ö±íÐÐÊýµÄ³Ë»ý£»
¾ÙÀý
SELECT * from table1 CROSS JOIN table2
µÈͬÓÚ
SELECT * from table1,table2
Ò»°ã²»½¨ÒéʹÓø÷½·¨£¬ÒòΪÈç¹ûÓÐWHERE×Ó¾äµÄ»°£¬ÍùÍù»áÏÈÉú³ÉÁ½¸ö±íÐÐÊý³Ë»ýµÄÐеÄÊý¾Ý±í ......
SQL·ÖÒ³
ÍòÄÜ·ÖÒ³
.net´úÂë
select top ÿҳÏÔʾµÄ¼Ç¼Êý * from topic where id not in
(select top £¨µ±Ç°µÄÒ³Êý-1£©×ÿҳÏÔʾµÄ¼Ç¼Êý id from topic order by id desc)
order by id desc
select top ÿҳÏÔʾµÄ¼Ç¼Êý * from topic where id not in
(select top £¨µ±Ç°µÄÒ³Êý-1£©×ÿҳÏÔʾµÄ¼Ç¼Êý id from topic order by id desc)
order by id desc
sql2005·ÖÒ³
.net´úÂë
with temptbl as (
SELECT ROW_NUMBER() OVER (ORDER BY id desc)AS Row,
...
)
SELECT * from temptbl where Row between @startIndex and @endIndex &nb ......
sql serverÊý¾Ý¿â±¸·Ý·½°¸
2008-08-05 13:15
SQL Server Êý¾Ý¿â±¸·Ý·½°¸
ΪÁ˱£Ö¤SQL Server Êý¾ÝµÄ°²È«£¬Êý¾Ý¿â¹ÜÀíÔ±Ó¦¶¨ÆÚ±¸·ÝÊý¾Ý¿â£¬ÔÚ²»Í¬Çé¿öÏÂÓ¦²ÉÓò»Í¬±¸·ÝÊý¾Ý¿â±¸·Ý²ßÂÔ£¬Ò»·½ÃæÎ¬³ÖÊý¾ÝµÄ°²È«ÐÔ£¬ÁíÒ»·½ÃæÒ²¿É±£³ÖSQL Server ÄÜ˳³©ÔËÐС£¾¡×î´óµÄŬÁ¦¼õÉÙÓÉÓÚÊý¾ÝµÄË𻵶Կͻ§Ôì³ÉµÄËðʧ¡£
¸ÅÄî
1) ±¸·Ý¹¤×÷¹æ»®
¼ÆËã»úÈíÓ²¼þµÄÎȶ¨ÐÔ»¹Î´´ïµ½·Ç³£Îȶ¨µÄ״̬£¬¼ÆËã»úÖеÄÊý¾ÝÈÔÓÐËðʧ»ò»Ù»µµÄÇé¿ö·¢Éú¡£´æÔÚÓÚ¼ÆËã»úÄÚµÄÊý¾Ý²»°²È«£¬¼´Ê¹²ÉÓÃÈÝ´íÉ豸£¬Ò²ÎÞ·¨±£Ö¤Êý¾Ý¿â 100%°²È«¡£ ¼ÆËã»úÓ²¼þµÄ·ÑÓÿÉÄܸܺߣ¬µ«¼ÆËã»úÊý¾Ý¸üÕä¹ó£¬×öºÃÊý¾Ý±¸·Ý£¬¿É±£Ö¤ÔÚ¸÷ÖÖÒâÍâ·¢ÉúÇé¿öʱ£¬ÈÔÄܱ£³ÖÓÐÊý¾Ý¿âµÄÍêÕûÐÔ¡£ ¹ÜÀíÔ±±ØÐ뻨ʱ¼äÀ´±¸·ÝÊý¾Ý¿â£¬µ« SQL SERVERÒ²Ìṩ²»ÉÙ×Ô¶¯»¯¹¦ÄÜ¡£
2£©±¸·Ý·½Ê½
Êý¾Ý¿â——ÍêÈ«
¾ÍÊDZ¸·ÝÕû¸öÊý¾Ý¿âµÄÄÚÈÝ¡£Èô½«Õû¸öÊý¾Ý¿âµÄÄÚÈݶ¼±¸·ÝÏÂÀ´£¬ÐèºÜ¶àµÄ´æ´¢¿Õ¼äÀ´´æ·Å±¸·ÝÊý¾Ý£¬µ«ÆäºÃ´¦ÊÇÔÚ»¹ÔÊý¾Ý¿âʱ£¬Ò²Ö»Òª½«Õû¸öÊý¾Ý¿â´ÓÒ»·ÝÊý¾Ý¿â±¸·Ý»¹Ôµ½ SQL SERVER ÖоͿÉÒÔÁË¡£ËüÊÇÆäËû±¸·ÝµÄ»ù´¡£¬ÔÚ×öÆäËû±¸·Ý֮ǰ£¬±ØÐëµÃ×ö´ËÖÖ·½Ê½µÄ±¸·Ý¡£
Êý¾Ý¿â——²îÒì £¨Differential£©
Ö»±¸·Ý´ÓÉÏÒ»´ÎÖ´ÐÐ&ld ......
string s = " 80,81,83,82";
string[] s1 = s.Split(',');
int[] p = new int[s1.Count()];
for (int i = 0; i < s1.Count(); i++)
{
p.SetValue(Convert.ToInt32(s1[i]), i);
}
public IQueryable<tbQuestions> SelectQuestions(int[] p)
{
var result = from s1 in db.tbQuestions
&n ......