º«Ë³Æ½oracle±Ê¼Ç£¨×Ô¼ºÐ޸ľ«»ª²¢Ìí¼Ó´¥·¢Æ÷ÄÚÈÝ£©

group by ºÍ having×Ó¾ä

group byÓÃÓÚ¶Ô²éѯµÄ½á¹û·Ö×éͳ¼Æ£¬ having×Ó¾äÓÃÓÚÏÞÖÆ·Ö×éÏÔʾ½á¹û¡£

ÎÊÌ⣺ÈçºÎÏÔʾÿ¸ö²¿ÃŵÄƽ¾ù¹¤×ʺÍ×î¸ß¹¤×Ê£¿

SELECT AVG(sal), MAX(sal), deptno FROM emp GROUP by deptno;

£¨×¢Ò⣺ÕâÀï°µ²ØÁËÒ»µã£¬Èç¹ûÄãÒª·Ö×é²éѯµÄ»°£¬·Ö×éµÄ×Ö¶ÎdeptnoÒ»¶¨Òª³öÏÖÔÚ²éѯµÄÁбíÀïÃ棬·ñÔò»á±¨´í¡£ÒòΪ·Ö×éµÄ×ֶζ¼²»³öÏֵĻ°£¬¾Íû°ì·¨·Ö×éÁË£©

ÎÊÌ⣺ÏÔʾÿ¸ö²¿ÃŵÄÿÖÖ¸ÚλµÄƽ¾ù¹¤×ʺÍ×îµÍ¹¤×Ê£¿

SELECT min(sal), AVG(sal), deptno, job FROM emp GROUP by deptno, job;

ÎÊÌ⣺ÏÔʾƽ¾ù¹¤×ʵÍÓÚ2000µÄ²¿ÃźźÍËüµÄƽ¾ù¹¤×Ê£¿

SELECT AVG(sal), MAX(sal), deptno FROM emp GROUP by deptno having AVG(sal) < 2000; ÕâÀïdeptno¾ÍÒ»¶¨Òª³öÏÖÔÚgroup by ÖÐ ¶ÔÊý¾Ý·Ö×éµÄ×ܽá

1 ·Ö×麯ÊýÖ»ÄܳöÏÖÔÚÑ¡ÔñÁбí(select)¡¢having¡¢order by×Ó¾äÖÐ(²»ÄܳöÏÖÔÚwhereÖÐ) 2 Èç¹ûÔÚselectÓï¾äÖÐͬʱ°üº¬ÓÐgroup by, having, order by ÄÇôËüÃǵÄ˳ÐòÊÇgroup by, having, order by

ÏÔʾ²¿ÃÅƽ¾ù¹¤×Ê´óÓÚ4000µÄ²¿ÃŵÄƽ¾ù¹¤×Ê£¬²¿Ãźţ¬¸ù¾Ý²¿ÃźÅÅÅÐò¡£

select avg(Sal),deptno from emp group by deptno having avg(sal)>4000 order by deptno;

3 ÔÚÑ¡ÔñÁÐÖÐÈç¹ûÓÐÁС¢±í´ïʽºÍ·Ö×麯Êý£¬ÄÇôÕâЩÁкͱí´ïʽ±ØÐëÓÐÒ»¸ö³öÏÖÔÚgroup by ×Ó¾äÖУ¬·ñÔò¾Í»á³ö´í¡£

¶à±í²éѯ ˵Ã÷

¶à±í²éѯÊÇÖ¸»ùÓÚÁ½¸öºÍÁ½¸öÒÔÉϵıí»òÊÇÊÓͼµÄ²éѯ¡£

¹æ¶¨£º¶à±í²éѯµÄÌõ¼þÊÇ ÖÁÉÙ²»ÄÜÉÙÓÚ ±íµÄ¸öÊý-1 ²ÅÄÜÅųýµÑ¿¨¶û¼¯

SELECT e.ename, e.sal, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno;

µÚ10½² ²éѯ3 ¶à±í²éѯ£¬×Ó²éѯ

ÎÊÌ⣺ÏÔʾ²¿ÃźÅΪ10µÄ²¿ÃÅÃû¡¢Ô±¹¤ÃûºÍ¹¤×Ê£¿

SELECT a2.dname, a1.ename, a1.sal FROM emp a1, dept a2 WHERE a1.deptno = a2.deptno and a1.deptno = 10;

±íempÈ¡±ðÃûa1£¬±ídepthÈ¡±ðÃûa2

ÎÊÌ⣺ÏÔʾ¸÷¸öÔ±¹¤µÄÐÕÃû£¬¹¤×ʼ°¹¤×ʵļ¶±ð£¿

SELECT e.ename, e.sal, s.grade FROM emp e, salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal;

ÎÊÌ⣺ÏÔʾ¹ÍÔ±Ãû£¬¹ÍÔ±¹¤×ʼ°ËùÔÚ²¿ÃŵÄÃû×Ö£¬²¢°´²¿ÃÅÅÅÐò£¿

SELECT e.ename, e.sal, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno ORDER by e.deptno; ²¿ÃűàºÅ²»ÄÜ©µôÊÇÄĸö±íµÄ¡£

×ÔÁ¬½Ó

×ÔÁ¬½ÓÊÇÖ¸ÔÚͬһÕűíµÄÁ¬½Ó²éѯ

ÎÊÌ⣺ÏÔʾij¸öÔ±¹¤µÄÉϼ¶Áìµ¼µÄÐÕÃû£¿ ±ÈÈçÏÔʾԱ¹¤?FORD?µÄÉϼ¶

SELECT worker.ename, boss.ename FROM emp worker,emp boss WHERE worker.mgr = boss.empno AND worker.ename = 'FORD';

select a1.ename||'µÄÉÏ˾ÊÇ'||a2.ename \Ô±¹¤¹Øϵ±í\ʹÓÃÁËÁ¬½Ó×Ö·û´®|| ºó£¬£¨a1.ename||'µÄÉÏ˾ÊÇ'||a2.ename£©±ä³ÉÒ»¸öÕûÌ壬¸øËüÈ¡±ðÃûÔ±¹¤¹Øϵ±í¡£ Ô±¹¤¹Øϵ±í

---------------------------- SMITHµÄÉÏ˾ÊÇFORD ALLENµÄÉÏ˾ÊÇBLAKE

×Ó²éѯ

×Ó²éѯÊÇָǶÈëÔÚÆäËûsqlÓï¾äÖеÄselectÓï¾ä£¬Ò²½ÐǶÌײéѯ¡£ µ¥ÐÐ×Ó²éѯ

µ¥ÐÐ×Ó²éѯÊÇÖ¸Ö»·µ»ØÒ»ÐÐÊý¾ÝµÄ×Ó²éѯÓï¾ä Çë˼¿¼£ºÏÔʾÓëSMITHͬ²¿ÃŵÄËùÓÐÔ±¹¤£¿

SELECT * FROM emp WHERE deptno = (select deptno from emp WHERE ename = 'SMITH'); Êý¾Ý¿âÔÚÖ´ÐÐsql ÊÇ´Ó×óµ½ÓÒɨÃèµÄ£¬ Èç¹ûÓÐÀ¨ºÅµÄ»°£¬À¨ºÅÀïÃæµÄÏȱ»ÓÅÏÈÖ´ÐС£

¶àÐÐ×Ó²éѯ

¶àÐÐ×Ó²éѯָ·µ»Ø¶àÐÐÊý¾ÝµÄ×Ó²éѯ

Çë˼¿¼£ºÈçºÎ²éѯºÍ²¿ÃÅ10µÄ¹¤×÷ÏàͬµÄ¹ÍÔ±µÄÃû×Ö¡¢¸Úλ¡¢¹¤×Ê¡¢²¿ÃźŠSELECT DISTINCT job FROM emp WHERE deptno = 10;

SELECT * FROM emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno = 10);

£¨×¢Ò⣺²»ÄÜÓÃjob=..£¬ÒòΪµÈºÅ=ÊÇÒ»¶ÔÒ»µÄ£©

ÔÚ¶àÐÐ×Ó²éѯÖÐʹÓÃall²Ù×÷·û

ÎÊÌ⣺ÈçºÎÏÔʾ¹¤×ʱȲ¿ÃÅ30µÄËùÓÐÔ±¹¤µÄ¹¤×ʸߵÄÔ±¹¤µÄÐÕÃû¡¢¹¤×ʺͲ¿Ãźţ¿

SELECT ename, sal, deptno FROM emp WHERE sal > all (SELECT sal FROM emp WHERE deptno = 30);

´ó¼ÒÏëÏ뻹ÓÐûÓбðµÄ²éѯ·½·¨¡£

SELECT ename, sal, deptno FROM emp WHERE sal > (SELECT MAX(sal) FROM emp WHERE deptno = 30); Ö´ÐÐЧÂÊÉÏ£¬ º¯Êý¸ßµÃ¶à

ÔÚ¶àÐÐ×Ó²éѯÖÐʹÓÃany²Ù×÷·û

ÎÊÌ⣺ÈçºÎÏÔʾ¹¤×ʱȲ¿ÃÅ30µÄÈÎÒâÒ»¸öÔ±¹¤µÄ¹¤×ʸߵÄÔ±¹¤ÐÕÃû¡¢¹¤×ʺͲ¿Ãźţ¿ SELECT ename, sal, deptno FROM emp WHERE sal > ANY (SELECT sal FROM emp WHERE

deptno = 30);

´ó¼ÒÏëÏ뻹ÓÐûÓбðµÄ²éѯ·½·¨¡£

SELECT ename, sal, deptno FROM emp WHERE sal > (SELECT min(sal) FROM emp WHERE deptno = 30);

¶àÁÐ×Ó²éѯ

µ¥ÐÐ×Ó²éѯÊÇÖ¸×Ó²éѯֻ·µ»Øµ¥ÁС¢µ¥ÐÐÊý¾Ý£¬¶àÐÐ×Ó²éѯÊÇÖ¸·µ»Øµ¥ÁжàÐÐÊý¾Ý£¬¶¼ÊÇÕë¶Ôµ¥ÁжøÑԵģ¬¶ø¶àÁÐ×Ó²éѯÊÇÖ¸²éѯ·µ»Ø¶à¸öÁÐÊý¾ÝµÄ×Ó²éѯÓï¾ä¡£

Çë˼¿¼ÈçºÎ²éѯÓëSMITHµÄ²¿Ãź͸ÚλÍêÈ«ÏàͬµÄËùÓйÍÔ±¡£

SELECT * FROM emp WHERE (deptno, job) = (SELECT deptno, job FROM emp WHERE ename = 'SMITH');

Ç°ÃæµÄÀ¨ºÅ²»Äܶª£¬·ñÕßÎÞ·¨Ö´ÐС£

µÚ11½² ×Ó²éѯ¡¢·ÖÒ³²éѯ¡¢ºÏ²¢²éѯ ÔÚfrom×Ó¾äÖÐʹÓÃ×Ó²éѯ

Çë˼¿¼£ºÈçºÎÏÔʾ¸ßÓÚ×Ô¼º²¿ÃÅƽ¾ù¹¤×ʵÄÔ±¹¤µÄÐÅÏ¢

select emp.* from emp,(select avg(sal) asal,deptno from emp group by deptno) a1 where emp.sal>a1.asal and emp.deptno=a1.deptno;

ÆäÖУ¬Æ½¾ù¹¤×ʱØÐëÈ¡±ðÃû£¬·ñÔòºóÃæ±È½Ïʱ²»ÄÜÓ÷Ö×麯Êý£¬¸ø²éѯµÄ½á¹û¶¨ÒåÃû×ÖΪa1

ÈçºÎºâÁ¿Ò»¸ö³ÌÐòÔ±µÄˮƽ£¿

ÍøÂç´¦ÀíÄÜÁ¦£¬ Êý¾Ý¿â£¬ ³ÌÐò´úÂëµÄÓÅ»¯³ÌÐòµÄЧÂÊÒªºÜ¸ß

С×ܽ᣺

ÔÚÕâÀïÐèҪ˵Ã÷µÄµ±ÔÚfrom×Ó¾äÖÐʹÓÃ×Ó²éѯʱ£¬¸Ã×Ó²éѯ»á±»×÷Ϊһ¸öÊÓͼÀ´¶Ô´ý£¬Òò´Ë½Ð×öÄÚǶÊÓͼ£¬µ±ÔÚfrom×Ó¾äÖÐʹÓÃ×Ó²éѯʱ£¬±ØÐë¸ø×Ó²éѯָ¶¨±ðÃû¡£

×¢Ò⣺±ðÃû²»ÄÜÓÃas£¬È磺SELECT e.ename, e.deptno, e.sal, ds.mysal FROM emp e, (SELECT deptno, AVG(sal) mysal FROM emp GROUP by deptno) as ds WHERE e.deptno = ds.deptno AND e.sal > ds.mysal;

ÔÚdsÇ°²»ÄܼÓas£¬·ñÔò»á±¨´í £¨¸ø±íÈ¡±ðÃûµÄʱºò£¬²»ÄܼÓas£»µ«ÊǸøÁÐÈ¡±ðÃû£¬ÊÇ¿ÉÒÔ¼ÓasµÄ£©

·ÖÒ³²éѯ

°´¹ÍÔ±µÄidºÅÉýÐòÈ¡³ö

select * from (select a1.*,rownum rn from (select * from emp) a1 where rownum<=10) where rn >=6; ±ØÐëÏÈÓÃСÓÚ£¬·ñÔòrownumû·¨ÅÅÐòºÅ£¬µ¼ÖÂÊä³öΪ¿Õ¡£

¼¸¸ö²éѯ±ä»¯

a. Ö¸¶¨²éѯÁУ¬Ö»ÐèÒªÐÞ¸Ä×îÀï²ãµÄ×Ó²éѯ Ö»²éѯ¹ÍÔ±µÄ±àºÅºÍ¹¤×Ê

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6; b. ÅÅÐò²éѯ£¬Ö»ÐèÒªÐÞ¸Ä×îÀï²ãµÄ×Ó²éѯ ¹¤×ÊÅÅÐòºó²éѯ6-10ÌõÊý¾Ý

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp ORDER by sal) e WHERE ROWNUM <= 10) WHERE rn >= 6;

Óòéѯ½á¹û´´½¨Ð±í

Õâ¸öÃüÁîÊÇÒ»ÖÖ¿ì½ÝµÄ½¨±í·½Ê½

CREATE TABLE mytable (id, name, sal, job, deptno) as SELECT empno, ename, sal, job, deptno FROM emp;

ºÏ²¢²éѯ

ÓÐʱÔÚʵ¼ÊÓ¦ÓÃÖУ¬ÎªÁ˺ϲ¢¶à¸öselectÓï¾äµÄ½á¹û£¬¿ÉÒÔʹÓü¯ºÏ²Ù×÷·ûºÅunion£¬union all£¬intersect£¬minus

¶àÓÃÓÚÊý¾ÝÁ¿±È½Ï´óµÄÊý¾Ý¾Ö¿â£¬ÔËÐÐËٶȿ졣 1). union

¸Ã²Ù×÷·ûÓÃÓÚÈ¡µÃÁ½¸ö½á¹û¼¯µÄ²¢¼¯¡£µ±Ê¹ÓøòÙ×÷·ûʱ£¬»á×Ô¶¯È¥µô½á¹û¼¯ÖÐÖظ´ÐС£ SELECT ename, sal, job FROM emp WHERE sal >2500 UNION

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER'; 2).union all

¸Ã²Ù×÷·ûÓëunionÏàËÆ£¬µ«ÊÇËü²»»áÈ¡ÏûÖظ´ÐУ¬¶øÇÒ²»»áÅÅÐò¡£ SELECT ename, sal, job FROM emp WHERE sal >2500 UNION ALL

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';

¸Ã²Ù×÷·ûÓÃÓÚÈ¡µÃÁ½¸ö½á¹û¼¯µÄ²¢¼¯¡£µ±Ê¹ÓøòÙ×÷·ûʱ£¬»á×Ô¶¯È¥µô½á¹û¼¯ÖÐÖظ´ÐС£ 3). intersect

ʹÓøòÙ×÷·ûÓÃÓÚÈ¡µÃÁ½¸ö½á¹û¼¯µÄ½»¼¯¡£

SELECT ename, sal, job FROM emp WHERE sal >2500 INTERSECT

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER'; 4). minus

ʹÓøIJÙ×÷·ûÓÃÓÚÈ¡µÃÁ½¸ö½á¹û¼¯µÄ²î¼¯£¬ËûÖ»»áÏÔʾ´æÔÚµÚÒ»¸ö¼¯ºÏÖУ¬¶ø²»´æÔÚµÚ¶þ¸ö¼¯ºÏÖеÄÊý¾Ý¡£

SELECT ename, sal, job FROM emp WHERE sal >2500 MINUS

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER'; £¨MINUS¾ÍÊǼõ·¨µÄÒâ˼£©

´´½¨Êý¾Ý¿âÓÐÁ½ÖÖ·½·¨£º

1). ͨ¹ýoracleÌṩµÄÏòµ¼¹¤¾ß¡£¡Ì

database Configuration Assistant ¡¾Êý¾Ý¿âÅäÖÃÖúÊÖ¡¿ 2).ÎÒÃÇ¿ÉÒÔÓÃÊÖ¹¤²½ÖèÖ±½Ó´´½¨

µÚ12½² java²Ù×÷oracle£¨Î´¼ÓÈ룩¡¢ÔÚoracleÖвÙ×÷Êý¾Ý

ÔÚoracleÖвÙ×÷Êý¾Ý - ʹÓÃÌض¨¸ñʽ²åÈëÈÕÆÚÖµ ʹÓà to_dateº¯Êý

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)