Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ORACLE SQL³£ÓÃÓÅ»¯·½·¨

1       ²éѯsqlÓÅ»¯
1.1    Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò£¨Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧORACLE£©
½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬Òò´Ëfrom×Ó¾äÖÐдÔÚ×îºóµÄ±í£¨»ù´¡±ídriving table£©½«±»×îÏÈ´¦Àí¡£ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏ£¬Äã±ØÐëÑ¡Ôñ¼Ç¼ÌõÊý×îÉٵıí×÷Ϊ»ù´¡±í¡£µ±ORACEL´¦Àí¶à¸ö±íʱ£¬»áÔËÓÃÅÅÐò¼°ºÏ²¢µÄ·½Ê½Á¬½ÓËüÃÇ¡£Ê×ÏÈ£¬É¨ÃèµÚÒ»¸ö±í£¨from×Ó¾äÖÐ×îºóµÄÄǸö±í£©²¢¶Ô¼Ç¼½øÐÐÅÉÐò£¬È»ºóɨÃèµÚ¶þ¸ö±í£¨from×Ó¾äÖÐ×îºóµÚ¶þ¸ö±í£©£¬×îºó½«ËùÓдӵڶþ¸ö±íÖмìË÷³öµÄ¼Ç¼ÓëµÚÒ»¸ö±íÖкÏÊʼǼ½øÐкϲ¢¡£
ÀýÈ磺±íTAB1 16,384Ìõ¼Ç¼
±íTAB2 1Ìõ¼Ç¼
Ñ¡ÔñTAB2×÷Ϊ»ù´¡±í£¨×îºÃµÄ·½·¨£©
Select count(*) from tab1,tab2 Ö´ÐÐʱ¼ä0.96Ãë
Ñ¡ÔñTAB2×÷Ϊ»ù´¡±í£¨²»¼Ñ·½·¨£©
Select count(*) from tab2,tab1 Ö´ÐÐʱ¼ä26.09Ãë
Èç¹ûÓÐ3¸öÒÔÉϵıíÁ¬½Ó²éѯ£¬ÄǾÍÐèҪѡÔñ½»²æ±í£¨intersection table£©×÷Ϊ»ù´¡±í£¬½»²æ±íÊÇÖ¸ÄǸö±»ÆäËû±íËùÒýÓÃµÄ±í¡£
ÀýÈ磺EMP±íÃèÊöÁËLOCATION±íºÍCATEGORY±íµÄ½»¼¯
SELECT *
from LOCATION L£¬
          CATEGORY C£¬
          EMP E
WHERE E.EPM_NO BETWEEN 1000 AND 2000
AND E.CAT_NO=C.CAT_NO
AND E.LOCN=L.LOCN
½«±ÈÏÂÁÐSQL¸üÓÐЧÂÊ
SELECT *
from EMP E£¬
LOCATION L£¬
          CATEGORY C
WHERE E.EPM_NO BETWEEN 1000 AND 2000
AND E.CAT_NO=C.CAT_NO
AND E.LOCN=L.LOCN
 
1.2    ¼õÉÙ·ÃÎÊÊý¾Ý¿âµÄ´ÎÊý
µ±Ö´ÐÐÿÌõSQLÓï¾äʱ£¬ORACLEÔÚÄÚ²¿Ö´ÐÐÁËÐí¶à¹¤×÷£º½âÎöSQLÓï¾ä£¬¹ÀËãË÷ÒýµÄÀûÓÃÂÊ£¬°ó¶¨±äÁ¿£¬¶ÁÊý¾Ý¿éµÈµÈ¡£Óɴ˿ɼû£¬¼õÉÙ·ÃÎÊÊý¾ÝµÄ´ÎÊý£¬¾ÍÄÜʵ¼ÊÉϼõÉÙORACLEµÄ¹¤×÷Á¿¡£
ÀýÈ磺
ÒÔÏÂÓÐÈýÖÖ·½·¨¿ÉÒÔ¼ìË÷³ö¹ÍÔ±ºÅµÈÓÚ0342»ò0291µÄÖ°Ô±¡£
 
·½·¨1£¨×îµÍЧ£©
SELECT EMP_NAME,SALARY,GRADE
from EMP
WHERE EMP_NO=342;
SELECT EMP_NAME,SALARY,GRADE
from EMP
WHERE EMP_NO=29;
 
·½·¨2£¨¸ßЧ£©
SELECT A.EMP_NAME,A.SALARY,A.GRADE,
           B.EMP_NAME,B.SALARY,B.GRADE
FORM EMP A,EMP B
WHERE A.EMP_NO=342
AND B.EMP_NO=29
 
1.3    ¼õÉÙ¶Ô±íµÄ²


Ïà¹ØÎĵµ£º

³£ÓÃSQLÓï¾ä£¨Oracle£©(ת)

ORACLEÖÐ×ֶεÄÊý¾ÝÀàÐÍ
   ×Ö·ûÐÍ    char        ·¶Î§  ×î´ó2000¸ö×Ö½Ú ¶¨³¤
               char(10)   'ÕÅÈý' ºóÌí¿Õ¸ñ6¸ö°Ñ10¸ö×Ö½Ú²¹Âú  'ÕÅÈý &nb ......

oracle ÐÞ¸Ä×Ö¶ÎÀàÐ͵ķ½·¨

½ñÌ칫˾ÒòΪҵÎñÐèÒª,ÐÞÒªÐÞ¸Äij¸ö×Ö¶ÎÊý¾ÝÀàÐÍÓÐnumber(5),±äΪnumber(5,2)ÐÍ
ÒªÊÇûÓÐÊý¾ÝµÄ»°Ö±½ÓÓÃÒÔÏÂÓï¾ä¼´¿É
alter   table  tb_test  modify permile  number(5,2);
µ«ÊÇÓÐÊý¾ÝµÄ»° ¾Í²»ÄÜÓÃÉÏÃæ·½·¨ÁË,
alter table tb_test add permile_temp number(5,2)
update tb_test set  ......

Oracle 30¸öhint

ÔÚSQLÓï¾äÓÅ»¯¹ý³ÌÖУ¬¾­³£»áÓõ½hint,
ÒÔÏÂÊÇÔÚSQLÓÅ»¯¹ý³ÌÖг£¼ûOracleÖÐ"HINT"µÄ30¸öÓ÷¨1. /*+ALL_ROWS*/
±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ»ùÓÚ¿ªÏúµÄÓÅ»¯·½·¨,²¢»ñµÃ×î¼ÑÍÌÍÂÁ¿,ʹ×ÊÔ´ÏûºÄ×îС»¯.
ÀýÈç:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ ......

PL/SQLѧϰ±Ê¼Ç


1£®SQL²¢Ðвéѯ
alter session enable parallel dml execute immediate 'alter session enable parallel dml'; --Ð޸ĻỰ²¢ÐÐDML      select /*+parallel(a,4)*/ * from table_name a       select /*+parallel(a,8)*/ * from table_name a    ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ