Oracle Ê÷µÄʹÓÃ(Connect By)
±í¡¡¡¡¡¡¡¡tree
¡¡¡¡×ֶΡ¡¡¡¡¡master
¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub
¡¡¡¡¡¡¡¡¡¡¡¡¡¡sales
¡¡¡¡insert into tree values
¡¡¡¡('Ö÷1',¡¡¡¡ 'Ö÷2',¡¡ 15);¡¡
¡¡¡¡insert into tree values¡¡¡¡¡¡
¡¡¡¡('Ö÷1',¡¡¡¡ 'Ö÷3',¡¡ 20);¡¡¡¡¡¡¡¡¡¡
¡¡¡¡insert into tree values
¡¡¡¡('Ö÷2',¡¡¡¡ 'Ö÷4',¡¡¡¡5);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡insert into tree values
¡¡¡¡('Ö÷2',¡¡¡¡ 'Ö÷5',¡¡ 10);
¡¡¡¡insert into tree values
¡¡¡¡('Ö÷3',¡¡¡¡ 'Ö÷5',¡¡ 30);
¡¡¡¡insert into tree values
¡¡¡¡('Ö÷3',¡¡¡¡ 'Ö÷6',¡¡ 40);
¡¡¡¡
¡¡¡¡SQL> select * from tree;
¡¡¡¡MASTER¡¡¡¡ SUB¡¡¡¡¡¡¡¡¡¡¡¡ SALES
¡¡¡¡---------- ---------- ----------
¡¡¡¡Ö÷1¡¡¡¡¡¡¡¡Ö÷2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡15
¡¡¡¡Ö÷1¡¡¡¡¡¡¡¡Ö÷3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡20
¡¡¡¡Ö÷2¡¡¡¡¡¡¡¡Ö÷4¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 5
¡¡¡¡Ö÷2¡¡¡¡¡¡¡¡Ö÷5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10
¡¡¡¡Ö÷3¡¡¡¡¡¡¡¡Ö÷5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡30
¡¡¡¡Ö÷3¡¡¡¡¡¡¡¡Ö÷6¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡40¡¡
¡¡¡¡
¡¡¡¡Èç¹ûÓÃÊ÷Ðͽṹ±íʾÈçÏÂ:
¡¡¡¡¡¡'Ö÷1'¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡-'Ö÷2'¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡ --'Ö÷4'
¡¡¡¡¡¡¡¡¡¡¡¡ --'Ö÷5'
¡¡¡¡¡¡'Ö÷1'¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡-'Ö÷3'¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡ --'Ö÷5'
¡¡¡¡¡¡¡¡¡¡¡¡ --'Ö÷6'
¡¡¡¡
¡¡¡¡SQL> select * from tree¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡start with sub='Ö÷2'¡¡¡¡¡¡¡¡¡¡--Ï൱ÓÚÆÕͨsqlµÄwhereÌõ¼þ
¡¡¡¡connect by prior master=sub;¡¡--±éÀúµÄ˳ÐòÊÇsubÏÈÓÚmaster±éÀú£¬Ò²¾ÍÊÇ˵´ÓsubÍùÉϱéÀúÒ»Ö±µ½master(¸ù½Úµã)
¡¡¡¡¡¡2¡¡
¡¡¡¡MASTER¡¡¡¡ SUB¡¡¡¡¡¡¡¡¡¡¡¡ SALES
¡¡¡¡---------- ---------- ----------
¡¡¡¡Ö÷1¡¡¡¡¡¡¡¡Ö÷2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡15
¡¡¡¡
¡¡¡¡
¡¡¡¡SQL> select * from tree¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡start with master='Ö÷2'
¡¡¡¡connect by prior master=sub; --subÍùÉϱéÀúÖÁ¸ù½Úµã£¨²Î¿¼Ò»ÏÂÊ÷ÐÍͼ£©¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡2¡¡¡¡3¡¡
¡¡¡¡MASTER¡¡¡¡ SUB¡¡¡¡¡¡¡¡¡¡¡¡ SALES¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡---------- ---------- ----------¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡Ö÷2¡¡¡¡¡¡¡¡Ö÷4¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 5¡¡ --ÕâÌõÊÇ×Ô¼º±¾Éí£¬Ò²¾ÍÊǵÚÒ»±é±éÀú
¡¡¡¡Ö÷1¡¡¡¡¡¡¡¡Ö÷2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡15¡¡ --ÕâÊǵÚ2´Î±éÀú£¬ÎÒÃÇ´ÓÊ÷ÐÍͼ¿ÉÒÔ¿´µ½£¬'Ö÷2'ÍùÉϱéÀúÊÇ'Ö÷1'¡¡¡¡¡¡¡¡
¡¡¡¡Ö÷2¡¡¡¡¡¡¡¡Ö÷5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10¡¡¡¡¡
Ïà¹ØÎĵµ£º
ÓбíA(×Ö¶ÎA1,A2)ºÍ±íB(×Ö¶ÎB1,B2).
×Ö¶ÎA2,B2É϶¼ÓÐË÷Òý.
A,B ±íÁª²é
sql1 Õâ¸ösql ·Ç³£¿ì 2ÃëµÄÑù×Ó
select * from A,B where A.A1=B.B1(+) and A2='Öµ1'
sql2 Õâ¸ösql Âýµ½ÈÃÈËÎÞ·¨ÈÌÊÜ
select * from A,B where A.A1=B.B1(+) and B2='Öµ1'
ÍâÁªÒÔºó ±íBÉϵÄË÷Òý²»Æð×÷ÓÃÁË.
Èç¹û»»³ÉÄÚÁª ËٶȺܿì.
sel ......
-- get all dictionary for oracle db
select * from dict;
--select * from dictionary;
-- get all columns for dictionarys
select * from dict_columns;
-- get the default name-space for current user
select username,default_tablespace from user_users;
-- get roles for current user
select * from us ......
alter system kill session'50,492';
--ÒÔϼ¸¸öΪÏà¹Ø±í
SELECT * from v$lock;
SELECT * from v$sqlarea;
SELECT * from v$session;
SELECT * from v$process ;
SELECT * from v$locked_object;
SELECT * from all_objects;
SELECT * from v$session_wait; ......
ÔÚOracle8i»òÒÔÉϰ汾ÖУ¬¿ÉÒÔ´´½¨ÒÔÏÂÁ½ÖÖÁÙʱ±í£º
1¡£»á»°ÌØÓеÄÁÙʱ±í
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT PRESERVE ROWS£»
2¡£ÊÂÎñÌØÓеÄÁÙʱ±í
CREATE GLOBAL TEMPORARY <TABLE_N ......
ÈÕ³£¿ª·¢»î¶¯ÖУ¬ÓÐʱºòÐèÒª¶ÔoracleÖ´Ðмƻ®½øÐÐ¼à¿Ø£¬ÒÔ´ËÀ´µ÷ÓųÌÐòºÍÊý¾Ý¿â·½ÃæµÄÐÔÄÜ¡£
³£Ó÷½·¨ÓÐÒÔϼ¸ÖÖ£º
Ò»¡¢Í¨¹ýPL/SQL Dev¹¤¾ß
1¡¢Ö±½ÓFile->New->Explain Plan Window£¬ÔÚ´°¿ÚÖÐÖ´ÐÐsql¿ÉÒԲ鿴¼Æ»®½á¹û¡£ÆäÖУ¬Cost±íʾcpuµÄÏûºÄ£¬µ¥Î»Îªn%£¬Cardinality±íʾִÐеÄÐÐÊý£¬µÈ¼ÛRow ......