ORACLE WITH AS Ó÷¨
¼ÇµÃÒÔǰÔÚÂÛ̳Àï¿´µ½inthirtiesÓõ½¹ýWITH ASÕâ¸ö×ÖÑÛ£¬µ±Ê±Ã»ÌرðÔÚÒâ¡£½ñÌìÔÚÒ»¸öÌû×ÓÀïÓÖ¿´µ½ÓÐÈËÓÃÕâ¸ö£¬ËùÒÔ¾ÍÈ¥ÍøÉÏËÑÁËËÑÏà¹ØÄÚÈÝ£¬×Ô¼ºÐ¡ÊÔÁËÒ»°Ñ£¬Ð´ÏÂÀ´£¬·½±ãÒÔºóÍüÁ˵Ļ°Ñ§Ï°¡£
===================================================================================
ÏȾٸöÀý×Ó°É£º
ÓÐÁ½ÕÅ±í£¬·Ö±ðΪA¡¢B£¬ÇóµÃÒ»¸ö×ֶεÄÖµÏÈÔÚ±íAÖÐѰÕÒ£¬Èç¹ûA±íÖдæÔÚÊý¾Ý£¬ÔòÊä³öA±íµÄÖµ£»Èç¹ûA±íÖв»´æÔÚ£¬ÔòÔÚB±íÖÐѰÕÒ£¬ÈôB±íÖÐÓÐÏàÓ¦¼Ç¼£¬ÔòÊä³öB±íµÄÖµ£»Èç¹ûB±íÖÐÒ²²»´æÔÚ£¬ÔòÊä³ö"no records”×Ö·û´®¡£
with
sql1 as (select to_char(a) s_name from test_tempa),
sql2 as (select to_char(b) s_name from test_tempb where not exists (select s_name from sql1 where rownum=1))
select * from sql1
union all
select * from sql2
union all
select 'no records' from dual
where not exists (select s_name from sql1 where rownum=1)
and not exists (select s_name from sql2 where rownum=1);
Ôپٸö¼òµ¥µÄÀý×Ó
with a as (select * from test)
select * from a;
Æäʵ¾ÍÊǰÑÒ»´ó¶ÑÖØ¸´Óõ½µÄSQLÓï¾ä·ÅÔÚwith as ÀïÃæ£¬È¡Ò»¸ö±ðÃû£¬ºóÃæµÄ²éѯ¾Í¿ÉÒÔÓÃËü
ÕâÑù¶ÔÓÚ´óÅúÁ¿µÄSQLÓï¾äÆðµ½Ò»¸öÓÅ»¯µÄ×÷Ó㬶øÇÒÇå³þÃ÷ÁË
ÏÂÃæÊÇËÑË÷µ½µÄÓ¢ÎÄÎĵµ×ÊÁÏ
About Oracle WITH clause
Starting in Oracle9i release 2 we see an incorporation of the SQL-99 “WITH clause”, a tool for materializing subqueries to save Oracle from having to re-compute them multiple times.
The SQL “WITH clause” is very similar to the use of Global temporary tables (GTT), a technique that is often used to improve query speed for complex subqueries. Here are some important notes about the Oracle “WITH clause”:
• The SQL “WITH clause” only works on Oracle 9i release 2 and beyond.
• Formally, the “WITH clause” is called subquery factoring
• The SQL “WITH clause” is used when a subquery is executed multiple times
• Also useful for recursive queries (SQL-99, but not Oracle SQL)
To keep it simple, the fo
Ïà¹ØÎĵµ£º
1.oralceɾ³ýÃüÁî
1.1.ɾ³ýÓû§
drop user username cascade;
1.2.ɾ³ý±í¿Õ¼ä
DROP TABLESPACE dataspace INCLUDING CONTENTS AND DATAFILES;
2.´´½¨±í¿Õ¼ä
2.1.½¨Á¢±í¿Õ¼ä
CREATE TABLESPACE dataspace
DATAFILE '/Ŀ¼/dataspace.dbf' SIZE 500M
UNIFORM SIZE 128k; //Ö¸¶¨Çø³ß´çΪ128k,Èç²»Ö¸¶¨£¬Çø³ß´çĬÈÏÎ ......
ÐÇÆÚÒ» ·¢ÏÖÒ»¸ö±íÓкܶàÖØ¸´Êý¾Ý Ëæ»úʹÓÃɾ³ýÖØ¸´Êý¾ÝµÄÓï¾ä¡£
ÐÇÆÚ¶þ ·¢ÏÖ ÕâÓï¾äÅÜÁ˺ܾö¼Ã»ÅÜÍ꣬13¸öСʱÁË£¡Ö»²»¹ýɾ³ý10¸öÔµÄÊý¾Ý¶øÒÑ
ÒÀÈ»¶ÏÁËËü£¬¿ÉËü»Ø¹ö»¨ÁË4¸öСʱ£¬ÉÏÎçÓ°ÏìÁËÊý¾Ý¿âµÄ·þÎñËÙ¶ÈÁË¡£
È»ºóÒ»¸öÔÂÒ»¸öÔ¼ì²éÖØ¸´Êý¾ÝµÄ·¶Î§£¬×îºó¶¨Î»µ½9Ôµ½10Ô¡£É¾³ýËü£¬ÓÃÄÇÌõÓï¾äºÜÂý£¬Ò»¸öСʱºó ......
˵µ½Èí½âÎö£¨soft prase£©ºÍÓ²½âÎö£¨hard prase£©£¬¾Í²»Äܲ»ËµÒ»ÏÂOracle¶ÔsqlµÄ´¦Àí¹ý³Ì¡£µ±Äã·¢³öÒ»ÌõsqlÓï¾ä½»¸¶Oracle£¬ÔÚÖ´ÐкͻñÈ¡½á¹ûǰ£¬Oracle¶Ô´Ësql½«½øÐм¸¸ö²½ÖèµÄ´¦Àí¹ý³Ì£º
1¡¢Óï·¨¼ì²é£¨syntax check£©
¼ì²é´ËsqlµÄƴдÊÇ·ñÓï·¨¡£
2¡¢ÓïÒå¼ì²é£¨semantic check£©
ÖîÈç¼ì²ésqlÓï¾äÖеķÃÎÊ¶Ô ......
Ò».ÎïÀí¶Á(physical read)
µ±Êý¾Ý¿éµÚÒ»´Î¶ÁÈ¡µ½,¾Í»á»º´æµ½buffer cache ÖÐ,¶øµÚ¶þ´Î¶ÁÈ¡ºÍÐ޸ĸÃÊý¾Ý¿éʱ¾ÍÔÚÄÚ´æbuffer cache ÁË ÒÔÏÂÊÇÀý×Ó:
1.1 µÚÒ»´Î¶ÁÈ¡:
C:"Documents and Settings"Paul Yi>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Thu Feb 28 09:32:04 2008
Copyright (c) 19 ......
1¡¢´´½¨±í¿Õ¼ä
CREATE TABLESPACE mytablespace DATAFILE
'F:\oracle\product\10.2.0\oradata\myoracle\MYTABLESPACE01.DBF' SIZE 500M AUTOEXTEND ON NEXT
100M MAXSIZE UNLIMITED
LOGGING
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCAT ......