ͨ¹ý·ÖÎöSQLÓï¾äµÄÖ´Ðмƻ®ÓÅ»¯SQL(ËÄ)
Î壺 ORACLEµÄÖ´Ðмƻ®
±³¾°ÖªÊ¶£ºÎªÁ˸üºÃµÄ½øÐÐÏÂÃæµÄÄÚÈÝÎÒÃDZØÐëÁ˽âһЩ¸ÅÄîÐÔµÄÊõÓ
¹²ÏísqlÓï¾ä
ΪÁ˲»Öظ´½âÎöÏàͬµÄSQLÓï¾ä(ÒòΪ½âÎö²Ù×÷±È½Ï·Ñ×ÊÔ´£¬»áµ¼ÖÂÐÔÄÜϽµ)£¬ÔÚµÚÒ»´Î½âÎöÖ®ºó£¬ORACLE½«SQLÓï¾ä¼°½âÎöºóµÃµ½µÄÖ´Ðмƻ®´æ·ÅÔÚÄÚ´æÖС£Õâ¿éλÓÚϵͳȫ¾ÖÇøÓòSGA(system global area)µÄ¹²Ïí³Ø(shared buffer pool)ÖеÄÄÚ´æ¿ÉÒÔ±»ËùÓеÄÊý¾Ý¿âÓû§¹²Ïí¡£Òò´Ë£¬µ±ÄãÖ´ÐÐÒ»¸öSQLÓï¾ä(ÓÐʱ±»³ÆÎªÒ»¸öÓαê)ʱ£¬Èç¹û¸ÃÓï¾äºÍ֮ǰµÄÖ´ÐйýµÄijһÓï¾äÍêÈ«Ïàͬ£¬²¢ÇÒ֮ǰִÐеĸÃÓï¾äÓëÆäÖ´Ðмƻ®ÈÔÈ»ÔÚÄÚ´æÖдæÔÚ£¬ÔòORACLE¾Í²»ÐèÒªÔÙ½øÐзÖÎö£¬Ö±½ÓµÃµ½¸ÃÓï¾äµÄÖ´Ðз¾¶¡£ORACLEµÄÕâ¸ö¹¦ÄÜ´ó´óµØÌá¸ßÁËSQLµÄÖ´ÐÐÐÔÄܲ¢´ó´ó½ÚÊ¡ÁËÄÚ´æµÄʹÓá£Ê¹ÓÃÕâ¸ö¹¦ÄܵĹؼüÊǽ«Ö´ÐйýµÄÓï¾ä¾¡¿ÉÄܷŵ½ÄÚ´æÖУ¬ËùÒÔÕâÒªÇóÓдóµÄ¹²Ïí³Ø(ͨ¹ýÉèÖÃshared buffer pool²ÎÊýÖµ)ºÍ¾¡¿ÉÄܵÄʹÓð󶨱äÁ¿µÄ·½·¨Ö´ÐÐSQLÓï¾ä¡£
µ±ÄãÏòORACLE Ìá½»Ò»¸öSQLÓï¾ä£¬ORACLE»áÊ×ÏÈÔÚ¹²ÏíÄÚ´æÖвéÕÒÊÇ·ñÓÐÏàͬµÄÓï¾ä¡£ÕâÀïÐèҪעÃ÷µÄÊÇ£¬ORACLE¶ÔÁ½Õß²ÉÈ¡µÄÊÇÒ»ÖÖÑϸñÆ¥Å䣬Ҫ´ï³É¹²Ïí£¬SQLÓï¾ä±ØÐëÍêÈ«Ïàͬ(°üÀ¨¿Õ¸ñ,»»ÐеÈ)¡£
ÏÂÃæÊÇÅжÏSQLÓï¾äÊÇ·ñÓë¹²ÏíÄÚ´æÖÐijһSQLÏàͬµÄ²½Ö裺
1. ¶ÔËù·¢³öÓï¾äµÄÎı¾´®½øÐÐhashed¡£Èç¹ûhashÖµÓëÒÑÔÚ¹²Ïí³ØÖÐSQLÓï¾äµÄhashÖµÏàͬ£¬Ôò½øÐеÚ2²½£º
2.½«Ëù·¢³öÓï¾äµÄÎı¾´®£¨°üÀ¨´óСд¡¢¿Õ°×ºÍ×¢ÊÍ£©ÓëÔÚµÚ£±²½ÖÐʶ±ðµÄËùÓÐ
ÒÑ´æÔÚµÄSQLÓï¾äÏà±È½Ï¡£
ÀýÈ磺
SELECT * from emp WHERE empno = 1000;
ºÍÏÂÁÐÿһ¸ö¶¼²»Í¬
SELECT * from emp WHERE empno = 1000;
SELECT * from EMP WHERE empno = 1000;
SELECT * from emp WHERE empno = 2000;
ÔÚÉÏÃæµÄÓï¾äÖÐÁÐÖµ¶¼ÊÇÖ±½ÓSQLÓï¾äÖе쬽ñºóÎÒÃǽ«ÕâÀàsql³ÉΪӲ±àÂëSQL
»ò×ÖÃæÖµSQL
ʹÓð󶨱äÁ¿µÄSQLÓï¾äÖбØÐëʹÓÃÏàͬµÄÃû×ֵİ󶨱äÁ¿(bind variables) £¬
ÀýÈ磺
a. ¸Ã2¸ösqlÓï¾ä±»ÈÏΪÏàͬ
select pin , name from people where pin = :blk1.pin;
select pin , name from people where pin = :blk1.pin;
b. ¸Ã2¸ösqlÓï¾ä±»ÈÏΪ²»Ïàͬ
select pin , name from people where pin = :blk1.ot_ind;
select pin , name from people where pin = :blk1.ov_ind;
½ñºóÎÒÃǽ«ÉÏÃæµÄÕ
Ïà¹ØÎĵµ£º
µ³Ô±¹ÜÀíϵͳµÄÊý¾Ý¿âÉè¼Æ
ÐèÒªÒÔÏÂ×ֶΣº
l ѧÉú£º
//ѧÉú»ù±¾ÐÅÏ¢
u ѧÉúѧºÅ[id]£¨char£©Ö÷¼ü
u ѧÉúÉí·ÝÖ¤ºÅ[id_num]£¨char£©
u ѧÉúÐÕÃû[name]£¨char£©
u ѧÉú³öÉúÈÕÆÚ[born_date]£¨date£©
u ѧÉú¼®¹á[native]£¨int£©Íâ¼ü
u ѧÉú¼Òͥסַ[address]£¨char£©
u&nbs ......
delete ɾ³ýÒ»ÕÅ´ó±íʱ¿Õ¼ä²»ÊÍ·Å£¬·Ç³£ÂýÊÇÒòΪռÓôóÁ¿µÄϵͳ×ÊÔ´£¬Ö§³Ö»ØÍ˲Ù×÷£¬¿Õ¼ä»¹±»ÕâÕűíÕ¼ÓÃ×Å¡£
truncate table ±íÃû (ɾ³ý±íÖмǼʱÊͷűí¿Õ¼ä)
DML Óï¾ä£º
±í¼¶¹²ÏíËø£º ¶ÔÓÚ²Ù×÷Ò»ÕűíÖеIJ»Í¬¼Ç¼ʱ£¬»¥²»Ó°Ïì
Ðм¶ÅÅËüËø£º¶ÔÓÚÒ»ÐмǼ£¬oracle »áÖ»ÔÊÐíÖ»ÓÐÒ»¸öÓû§¶ÔËüÔÚͬһʱ¼ä½øÐÐÐ޸IJÙ×÷ ......
ÎÒÃÇÒª×öµ½²»µ«»áдSQL,»¹Òª×öµ½Ð´³öÐÔÄÜÓÅÁ¼µÄSQL,ÒÔÏÂΪ±ÊÕßѧϰ¡¢ÕªÂ¼¡¢²¢»ã×ܲ¿·Ö×ÊÁÏÓë´ó¼Ò·ÖÏí£¡
£¨1£©Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
orACLEµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏ ......
×öÊý¾Ý¿â¿ª·¢»ò¹ÜÀíµÄÈ˾³£Òª´´½¨´óÁ¿µÄ²âÊÔÊý¾Ý£¬¶¯²»¶¯¾ÍÐèÒªÉÏÍòÌõ£¬Èç¹ûÒ»ÌõÒ»ÌõµÄ¼È룬ÄÇ»áÀË·Ñ´óÁ¿µÄʱ¼ä£¬±¾ÎĽéÉÜÁËOracleÖÐÈçºÎͨ¹ýÒ»ÌõSQL¿ìËÙÉú³É´óÁ¿µÄ²âÊÔÊý¾ÝµÄ·½·¨¡£
²úÉú²âÊÔÊý¾ÝµÄSQLÈçÏ£º
SQL> select rownum as id,
2 &nb ......
×î½ü¹«Ë¾ÔÚÕÐÈË£¬Í¬ÊÂÎÊÁ˼¸¸ö×ÔÈÏΪÊý¾Ý¿â¿ÉÒÔµÄӦƸÕß¹ØÓÚ¿âÁ¬½ÓµÄÎÊÌ⣬»Ø´ð²»¾¡ÀíÏë¡«
ÏÖÔÚÔÚÕâдд¹ØÓÚËüÃǵÄ×÷ÓÃ
¼ÙÉèÓÐÈçÏÂ±í£º
Ò»¸öΪͶƱÖ÷±í£¬Ò»¸öΪͶƱÕßÐÅÏ¢±í¡«¼Ç¼ͶƱÈËIP¼°¶ÔӦͶƱÀàÐÍ£¬×óÓÒÁ¬½Óʵ¼Ê˵ÊÇÎÒÃÇÁªºÏ²éѯµÄ½á¹ûÒÔÄĸö±íΪ׼¡«
1£ºÈçÓÒ½ÓÁ¬ right join »ò right outer join£º
ÎÒÃÇÒÔÓÒ±ß ......