SQL ÓÅ»¯¼¼ÇÉ
1 ±ÜÃâÎ޼ƻ®µÄÈ«±íɨÃè
ÈçÏÂÇé¿ö½øÐÐÈ«±íɨÃ裺
- ¸Ã±íÎÞË÷Òý
- ¶Ô·µ»ØµÄÐÐÎÞÈ˺ÍÏÞÖÆÌõ¼þ£¨ÎÞWhere×Ӿ䣩
- ¶ÔÓÚË÷ÒýÖ÷ÁУ¨Ë÷ÒýµÄµÚÒ»ÁУ©ÎÞÏÞÖÆÌõ¼þ
- ¶ÔË÷ÒýÖ÷ÁеÄÌõ¼þº¬ÔÚ±í´ïʽÖÐ
- ¶ÔË÷ÒýÖ÷ÁеÄÏÞÖÆÌõ¼þÊÇis (not) null»ò!=
- ¶ÔË÷ÒýÖ÷ÁеÄÏÞÖÆÌõ¼þÊÇlike²Ù×÷ÇÒÖµÊÇÒ»¸öbind variable»ò%´òÍ·µÄÖµ
2 ֻʹÓÃÑ¡ÔñÐÔË÷Òý
Ë÷ÒýµÄÑ¡ÔñÐÔÊÇÖ¸Ë÷ÒýÁÐÖв»Í¬ÖµµÃÊýÄ¿ºÍ±êÖ¾ÖмǼÊýµÄ±È£¬Ñ¡ÔñÐÔ×îºÃµÄÊÇ·Ç¿ÕÁеÄΨһË÷ÒýΪ1.0¡£
¸´ºÏË÷ÒýÖÐÁеĴÎÐòµÄÎÊÌ⣺
1 ÔÚÏÞ¶¨Ìõ¼þÀï×îÆµ·±Ê¹ÓõÄÁÐÓ¦¸ÃÊÇÖ÷ÁÐ
2 ×î¾ßÓÐÑ¡ÔñÐÔµÄÁУ¨¼´×îÇåÎúµÄÁУ©Ó¦¸ÃÊÇÖ÷ÁÐ
Èç¹û1ºÍ2 ²»Ò»Ö£¬¿ÉÒÔ¿¼Âǽ¨Á¢¶à¸öË÷Òý¡£
ÔÚ¸´ºÏË÷ÒýºÍ¶à¸öµ¥¸öË÷ÒýÖÐ×÷Ñ¡Ôñ£º
¿¼ÂÇÑ¡ÔñÐÔ ¿¼ÂǶÁÈ¡Ë÷ÒýµÄ´ÎÊý ¿¼ÂÇAND-EQUAL²Ù×÷
3 ¹ÜÀí¶à±íÁ¬½Ó£¨Nested Loops, Merge JoinsºÍHash Joins£© ÓÅ»¯Áª½Ó²Ù×÷
Merge JoinsÊǼ¯ºÏ²Ù×÷ Nested LoopsºÍHash JoinsÊǼǼ²Ù×÷·µ»ØµÚÒ»Åú¼Ç¼ѸËÙ
Merge JoinsµÄ²Ù×÷ÊÊÓÃÓÚÅú´¦Àí²Ù×÷£¬¾Þ´ó±í ºÍÔ¶³Ì²éѯ
1È«±íɨÃè --¡µ 2ÅÅÐò --¡µ3±È½ÏºÍºÏ²¢ ÐÔÄÜ¿ªÏúÖ÷ÒªÔÚǰÁ½²½
ÊÊÓÃÈ«±íɨÃèµÄÇéÐΣ¬¶¼ÊÊÓÃMerge Joins²Ù×÷£¨±ÈNested LoopsÓÐЧ£©¡£
¸ÄÉÆ1µÄЧÂÊ£º ÓÅ»¯I/O£¬ Ìá¸ßʹÓÃORACLE¶à¿é¶ÁµÄÄÜÁ¦£¬ ʹÓò¢ÐвéѯµÄÑ¡Ïî
¸ÄÉÆ1µÄЧÂÊ£ºÌá¸ßSort_Area_SizeµÄÖµ£¬ ʹÓÃSort Direct Writes£¬ÎªÁÙʱ¶ÎÌṩרÓñí¿Õ¼ä
4 ¹ÜÀí°üº¬ÊÓͼµÄSQLÓï¾ä
ÓÅ»¯Æ÷Ö´Ðаüº¬ÊÓͼµÄSQLÓï¾äÓÐÁ½ÖÖ·½·¨£º
- ÏÈÖ´ÐÐÊÓͼ£¬Íê³ÉÈ«²¿µÄ½á¹û¼¯£¬È»ºóÓÃÆäÓàµÄ²éѯÌõ¼þ×÷¹ýÂËÆ÷Ö´Ðвéѯ
- ½«ÊÓͼÎı¾¼¯³Éµ½²éѯÀïÈ¥
º¬ÓÐgroup by×Ó¾äµÄÊÓͼ²»Äܱ»¼¯³Éµ½Ò»¸ö´óµÄ²éѯÖÐÈ¥¡£
ÔÚÊÓͼÖÐʹÓÃunion£¬²»×èÖ¹ÊÓͼµÄSQL¼¯³Éµ½²éѯµÄÓï·¨ÖÐÈ¥¡£
5 ÓÅ»¯×Ó²éѯ
6 ʹÓø´ºÏKeys/S
Ïà¹ØÎĵµ£º
1¡¢ËµÃ÷£º¸´ÖƱí(Ö»¸´Öƽṹ,Ô´±íÃû£ºa бíÃû£ºb) (Access¿ÉÓÃ)
·¨Ò»£ºselect * into b from a where 1 <>1
·¨¶þ£ºselect top 0 * into b from a
2¡¢ËµÃ÷£º¿½±´±í(¿½±´Êý¾Ý,Ô´±íÃû£ºa Ä¿±ê±íÃû£ºb) (Access¿ÉÓÃ)
insert into b(a, b, c) select d,e,f from b;
3¡¢ËµÃ÷£º¿çÊý¾Ý¿âÖ®¼ä±íµÄ¿½±´(¾ßÌåÊý¾ÝʹÓà ......
1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLEµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏÂ,Äã±ØÐëÑ¡Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í¡£Èç¹ûÓÐ3¸öÒÔÉϵıíÁ¬½Ó²éѯ, ÄǾÍÐèҪѡÔñ½»²æ±í(intersection ......
ÅжÏÊý¾Ý¿âÀàÐÍ
(select count(*) fromsysobjects)>0 //sqlÊý¾Ý¿â
(select count(*) from msysobjects)>0 //accessÊý¾Ý¿â
µÃµ½SqlÓû§Ãû
user>0
Conversion failed when converting the nvarchar value 'dbo' to data type int.
ÖØ¹¹SQLÓï¾ä
ÕûÊýÐÍ
(A) ID=49 ID=49 And [ ²éѯÌõ¼þ] £¬¼´Ê ......
ÔÚVisual Studio 2008 ÖÐʹÓÃO/RÉè¼ÆÆ÷£º
µãÌí¼ÓÏîÄ¿£¬Ñ¡Ôñ´´½¨Linq to SQLÏîÄ¿£¬Ê¹Ó÷þÎñÆ÷×ÊÔ´¹ÜÀíÆ÷Á¬½ÓNorthwindÊý¾Ý¿â£¬½«CustomersºÍOrdersÁ½¸ö±íÍϵ½Éè¼Æ½çÃæÉÏ£¬ÏµÍ³»á×Ô¶¯´´½¨app.configºÍNorthwid.designer.cs,ǰÕßÊÇÅäÖÃÁ¬½ÓÊý¾Ý¿âµÄÁ¬½Ó×Ö´®£»ºóÕß»áÉú³ÉÒ»¸ö¼Ì³Ð×ÔDataContextµÄÀࣺNorthwindDataContext¡£
......
--1.¹ØÓÚwhereɸѡÆ÷ÖгöÏÖÖ¸¶¨ÐÇÆÚ¼¸µÄÇó½â
SQL code
--»·¾³
create table test_1
(
id int,
value varchar(10),
t_time datetime
)
insert test_1
select 1,'a','2009-04-19' union
select 2,'b','2009-04-20' union
select 3,'c','2009-04-21' union
select 4,'d','2009-04-22' union
s ......