Oracleѧϰ±Ê¼Ç4 ÉÔ¸´ÔӵIJéѯºÍ·ÖÒ³
ÈÔȻʹÓÃSCOTTÓû§À´²Ù×÷£º
1¡¢ ÏÔʾ¹¤×ʱȲ¿ÃÅ30µÄËùÓÐÔ±¹¤µÄ¹¤×ʶ¼¸ßµÄÔ±¹¤µÄÐÅÏ¢£º
Select * from emp where sal>all(select sal from emp where deptno=30);
2¡¢ ÏÔʾ¹¤×ʱȲ¿ÃÅ30µÄÈÎÒâÒ»¸öÔ±¹¤µÄ¹¤×ʸ߾ͿÉÒÔµÄÔ±¹¤µÄÐÅÏ¢£º
Select * from emp where sal>any(select sal from emp where deptno=30);
Æäʵ£¬»»ÖÖ·½·¨Ò²ÊÇ¿ÉÒԵģº
Select * from emp where sal>(select min(sal) from emp where deptno=30);
3¡¢ ÕÒ³öºÍSMITHµÄ²¿Ãźš¢¹¤×÷¶¼ÏàͬµÄÔ±¹¤µÄÐÅÏ¢£º
Select * from emp where (deptno,job)=(Select deptno,job from emp where ename=’SMITH’);
4¡¢ ÈçºÎÏÔʾ¸ßÓÚ×Ô¼º²¿ÃÅÆ½¾ù¹¤×ʵÄÔ±¹¤µÄÐÅÏ¢
½â¾öÕâ¸ö¸´ÔÓÒ»µãµÄ²éѯ£¬ÎÒÃÇ¿ÉÒÔÕâÑù¿¼ÂÇ£º
ÏÈÕÒ³öÿ¸ö²¿Ãŵį½¾ù¹¤×Ê£º
Select deptno,avg(sal) avg_sal from emp group by deptno;½á¹ûÈçÏ£º
SQL> select deptno,avg(sal) avg_sal from emp group by deptno;
DEPTNO AVG_SAL
------ ----------
30 1566.66666
20 2175
10 2916.66666
È»ºóÎÒÃǾͿÉÒÔ°ÑÕâÕÅ±íµ±³ÉÒ»ÕÅ×Ó±íʹÓãº
select a2.ename,a2.sal,a2.deptno,a1.avg_sal from emp a2,(select deptno,avg(sal) avg_sal from emp group by deptno) a1 where a2.deptno=a1.deptno and a2.sal>a1.avg_sal;
½á¹ûΪ£º
ENAME SAL DEPTNO AVG_SAL
---------- --------- ------ ----------
ALLEN 1600.00 30 1566.66666
JONES 2975.00 20 2175
BLAKE 2850.00 30 1566.66666
SCOTT 3000.00 20 2175
K
Ïà¹ØÎĵµ£º
Ò»£®ÒýÑÔ
ORACLE
Êý¾Ý¿â×Ö·û¼¯£¬¼´Oracle
È«Çò»¯Ö§³Ö(Globalization Support)
£¬»ò¼´¹ú¼ÒÓïÑÔÖ§³Ö£¨NLS
£©Æä×÷ÓÃÊÇÓñ¾¹úÓïÑԺ͸ñʽÀ´´æ´¢¡¢´¦ÀíºÍ¼ìË÷Êý¾Ý¡£ÀûÓÃÈ«Çò»¯Ö§³Ö£¬ORACLE
ΪÓû§Ìṩ×Ô¼ºÊìϤµÄÊý¾Ý¿âĸÓï»·¾³£¬ÖîÈçÈÕÆÚ¸ñʽ¡¢Êý×Ö¸ñʽºÍ´æ´¢ÐòÁеȡ£Oracle
¿ÉÒÔÖ§³Ö¶àÖÖÓïÑÔ¼°×Ö·û¼ ......
1.¼à¿ØÊÂÀýµÄµÈ´ý£º
select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(*)
from v$session_wait
group by event order by 4;
2.»Ø¹ö¶ÎµÄÕùÓÃÇé¿ö£º
select name,waits,gets,waits/gets ratio from v$rollstat a,v$rollnam ......
ÏȽ¨ÁËÕŲâÊÔ±í
SQL> select * from test_a;
ID PLAYNAME SCORE
-------------------- --- ......
Oracle±íµÄ¹ÜÀí
±íÃûºÍÁÐÃûµÄÃüÃû¹æÔò£º
1±ØÐëÒÔ×Öĸ¿ªÍ·
2³¤¶È²»Äܳ¬¹ý30¸ö×Ö·û
3²»ÄÜʹÓÃOracleµÄ±£Áô×Ö
4Ö»ÄÜʹÓÃÈçÏÂ×Ö·û£ºA-Z,a-z,0-9,$,#µÈ
OracleÖ§³ÖµÄÊý¾ÝÀàÐÍ£º
1char ¶¨³¤£¬×î´ó2000×Ö·û
Àý×Ó£ºchar(10) ‘Ïþ»Ô’ ǰËĸö×Ö·û·Å’Ïþ»Ô’£¬ºóÌíÁù¸ö¿Õ¸ñ²¹È«
2varchar2(20) ±ä³¤£¬×î´ ......
±íµÄ²éÕÒ£º
select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';
ÒýºÅÀï±ßµÄ×Ö·ûÊÇÇø·Ö´óСдµÄ¡£
²éÕÒÖ®ºó°Ñ½á¹ûÅÅÐò£º
select * from emp order by sal asc;
ascÊÇÉýÐò£¬descÊǽµÐò
¶ÔÁÐÖØÃüÃû£¬Ö»Òª´ò¸ö¿Õ¸ñ£¬ºó¸úÐÂÁÐÃû¾Í¿ÉÒÔ
select ename,sal*12+nvl(comm,0)*12 "Äêн" from ......