µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

Oracleѧϰ±Ê¼Ç

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/11/27 1:10:56 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

Îð´«ÍøÉÏ£¡ÑϽûıÀû£¡ Oracleѧϰ±Ê¼Ç

³£Ñ岩

? ¶ÔÄÚÁ¬½Óand¡¢whereÓÃË­¶¼ÐУ¬µ«ÍâÁ¬½ÓÔòÓÐÑϸñµÄʹÓÃλÖᣠ? ¹ýÂËÇý¶¯±íÒ»¶¨ÓÃwhere×Ӿ䡣

13.6·ÇµÈÖµÁ¬½Ó

²»Í¬±íûÓй²Í¬ÊôÐÔµÄÁУ¬µ«Á½ÕűíµÄÁпÉÒÔд³ÉÒ»¸öSQLÌõ¼þ±í´ïʽ¡£ eg1£ºÏÔʾ¿Í»§µÄÄêÁä¶Î select t1.real_name,round((sysdate-t1.birthdate)/365) age,t2.name from account t1 join age_segment t2 on round((sysdate-t1.birthdate)/365) between t2.lowage and t2.hiage; eg2£ºÏÔʾ¿Í»§huangrongµÄÄêÁä¶Î select t1.real_name,round((sysdate-t1.birthdate)/365) age,t2.name from account t1 join age_segment t2 on round((sysdate-t1.birthdate)/365) between t2.lowage and t2.hiage and real_name='huangrong'; eg3£ºÏÔʾÇàÄêÄêÁä¶ÎÖеĿͻ§Êý select t1.real_name,round((sysdate-t1.birthdate)/365) age,t2.name from account t1 join age_segment t2 on round((sysdate-t1.birthdate)/365) between t2.lowage and t2.hiage and t2.name like'ÇàÄê%'; eg4£ºÏÔʾ¸÷¸öÄêÁä¶ÎµÄ¿Í»§Êý£¨Ã»Óпͻ§µÄÄêÁä¶ÎµÄ¿Í»§ÊýΪ0£© select max(t2.name),count(t1.id) from account t1 right join age_segment t2 on round((sysdate-t1.birthdate)/365) between t2.lowage and t2.hiage group by t2.id;¸ãÇå³þΪºÎÓÃt1.idͳ¼Æ£¨Ë¼¿¼Á¬½Ó¹ý³Ì£©£» ÈôûÓпͻ§µÄÄêÁä¶Î²»ÓóöÏÖÔÚ½á¹û¼¯ÖÐÔò²ÉÓÃÄÚÁ¬½Ó¡£ 13.7±íÁ¬½Ó×ܽá 1£©ÄÚÁ¬½Ó£¬½â¾öÆ¥ÅäÎÊÌâ ¢ÙµÈÖµÁ¬½Ó£ºon×Ó¾äºóÓеÈÖµÌõ¼þ¡£ ¢Ú·ÇµÈÖµÁ¬½Ó£º²»Í¬±íûÓй²Í¬ÊôÐÔµÄÁУ¬µ«Á½ÕűíµÄÁпÉÒÔд³ÉÒ»¸öSQLÌõ¼þ±í´ïʽ¡£ ¢Û×ÔÁ¬½Ó£ºÍ¬Ò»ÕÅ±í£¬Í¨¹ýÆð±ðÃû£¬±í´ïÁÐÖ®¼äµÄ¹ØÏµ¡£ 2£©ÍâÁ¬½Ó£¬½â¾ö²»Æ¥ÅäÎÊÌâºÍ±íÖÐËùÓмǼ³öÏÖÔÚ½á¹û¼¯ ¢ÙµÈÖµÁ¬½Ó£ºon×Ó¾äºóÓеÈÖµÌõ¼þ¡£ ¢Ú·ÇµÈÖµÁ¬½Ó£º²»Í¬±íûÓй²Í¬ÊôÐÔµÄÁУ¬µ«Á½ÕűíµÄÁпÉÒÔд³ÉÒ»¸öSQLÌõ¼þ±í´ïʽ¡£

¢Û×ÔÁ¬½Ó£ºÍ¬Ò»ÕÅ±í£¬Í¨¹ýÆð±ðÃû£¬±í´ïÁÐÖ®¼äµÄ¹ØÏµ¡£ 3£©½»²æÁ¬½Ó£¬µÑ¿¨¶û»ý

27

Îð´«ÍøÉÏ£¡ÑϽûıÀû£¡ Oracleѧϰ±Ê¼Ç

³£Ñ岩

Ê®ËÄ¡¢¼¯ºÏ

14.1±íÁ¬½ÓÖ÷Òª½â¾öµÄÎÊÌâ

1£©Á½Õűí¼Ç¼֮¼äµÄÆ¥ÅäÎÊÌâ¡£ 2£©Á½Õűí¼Ç¼֮¼äµÄ²»Æ¥ÅäÎÊÌâ¡£ 3£©Æ¥ÅäÎÊÌâ+²»Æ¥ÅäÎÊÌâ¡£

14.2¼¯ºÏÔËËã

1£©Èô½«Á½ÕÅ±í¿´³É¼¯ºÏ£¬Æ¥ÅäÎÊÌâ¾ÍÊǼ¯ºÏÔËËãÖеĽ»¼¯¡£ 2£©Èô½«Á½ÕÅ±í¿´³É¼¯ºÏ£¬²»Æ¥ÅäÎÊÌâ¾ÍÊǼ¯ºÏÔËËãÖеIJ 3£©Æ¥ÅäÎÊÌâ+²»Æ¥ÅäÎÊÌâ¾ÍÊǼ¯ºÏÔËËãÖеIJ¢¼¯¡£ 14.3¼¯ºÏÔËËã·û 1£©union£º½á¹û¼¯ÎªÁ½¸ö²éѯ½á¹ûµÄ²¢¼¯£¬ÊÇÈ¥µôÖØ¸´ÖµµÄ£¬×îºóÓÐ×Ô¶¯ÉýÐò¡£ 2£©union all£º½á¹û¼¯ÎªÁ½¸ö²éѯ½á¹ûµÄ²¢¼¯£¬Êǰüº¬Öظ´ÖµµÄ£¬Êä³öЧ¹ûΪ¼Ç¼ÉýÐò¡£ 3£©tersect£º½á¹û¼¯ÎªÁ½¸ö²éѯ½á¹ûµÄ½»¼¯£¬²»°üº¬Öظ´Öµ¡£ 4£©minus£º½á¹û¼¯ÎªÊôÓÚµÚÒ»¸ö²éѯµÄ½á¹û¼¯£¬µ«²»ÊôÓÚµÚ¶þ¸ö²éѯµÄ½á¹û¼¯£¬¼´´ÓµÚÒ»¸ö²éѯµÄ½á¹û¼¯ÖмõÈ¥ËûÃǵĽ»¼¯£¬²»°üº¬Öظ´Öµ£»A-B=C£¬AΪ±»¼õÊý£¬BΪ¼õÊý£¬CΪ²î£»´ÓAÖмõÈ¥ºÍBÖÐÏàͬµÄ²¿·Ö¡£ ? ×¢ÒâÊÂÏ¼¯ºÏÔËËãÒªÇóÁ½¸öselectÓï¾äÊÇͬ¹¹µÄ£¬¼´ÁеĸöÊýºÍÊý¾ÝÀàÐͱØÐëÒ»Ö¡£ eg1£ºµ±Ô°üÔÚÏßʱ³¤Îª20Сʱ£¬µ¥Î»·ÑÓÃÕÇ5·Ö£¬Îª40СʱÕÇ3·Ö£¬ÆäËû²»±ä£¨ÓÃunion allʵÏÖ£© select base_duration,unit_cost+0.05 from cost where base_duration=20 union all select base_duration,unit_cost+0.03 from cost where base_duration=40 union all select base_duration,unit_cost from cost where base_duration not in(20,40) or base_duration is null;ЧÂʵͣ¬»»³Écase when½ÏºÃ eg2£ºÁгö¿Í»§ÐÕÃûÒÔ¼°ËûµÄÍÆ¼öÈË select t2.real_name,t1.real_name from account t1 join account t2 on t1.id=t2.recommender_id union all select real_name,'No recommender' from account where recommender_id is null; eg3£ºsun280ºÍsun-serverÉϵÄÔ¶³ÌµÇ¼ҵÎñʹÓÃÁËÄÄЩÏàͬµÄ×ʷѱê×¼ ·½Ê½Ò»£ºselect name from cost where id in( select cost_id from host h join service s on h.id=s.unix_host and h.name='sun280' intersect select cost_id from host h join service s on h.id=s.unix_host and h.name='sun-server'); ·½Ê½¶þ£ºselect name from cost where id in( select cost_id 28

Îð´«ÍøÉÏ£¡ÑϽûıÀû£¡ Oracleѧϰ±Ê¼Ç

³£Ñ岩

from service s where s.unix_host in ( select id from host where name='sun280') intersect select cost_id from host h join service s on h.id=s.unix_host and h.name='sun-server'); eg4£ºÄĄ̈UNIX·þÎñÆ÷ÉÏûÓпªÍ¨Ô¶³ÌµÇ¼ҵÎñ select id from host minus select unix_host from servce; 14.4×Ó²éѯ¡¢Á¬½Ó¡¢¼¯ºÏ×ܽá

1£©Æ¥ÅäÎÊÌ⣺in¡¢exists¡¢inner join¡¢intersect

2£©²»Æ¥ÅäÎÊÌ⣺not in¡¢not exists¡¢(outer join+whereÆ¥Åä±í·Ç¿ÕÁÐ is null)¡¢minus 3£©Æ¥Åä+²»Æ¥ÅäÎÊÌ⣺outer join¡¢union¡¢union all

29

Îð´«ÍøÉÏ£¡ÑϽûıÀû£¡ Oracleѧϰ±Ê¼Ç

³£Ñ岩

Ê®Îå¡¢ÅÅÃû·ÖÒ³ÎÊÌâ

15.1ʲôÊÇrownum

rownumÊÇÒ»¸öαÁУ¬¶Ô²éѯ·µ»ØµÄÐбàºÅ¼´Ðкţ¬ÓÉ1¿ªÊ¼ÒÀ´ÎµÝÔö¡£

? ×¢ÒâÊÂÏ¹Ø¼üµã£ºOracleµÄrownumÊýÖµÊÇÔÚ»ñȡÿÐÐÖ®ºó²Å¸³ÓèµÄ£¡

15.2 where rownum<=5µÄÖ´Ðйý³Ì

1£©Oracle»ñÈ¡µÚÒ»¸ö·ûºÏÌõ¼þµÄ1ÐУ¬½«Ëü½Ð×öµÚÒ»ÐС£

2£©ÓÐ5ÐÐÁËÂð£¿Èç¹ûûÓУ¬Oracle¾ÍÔÙ·µ»ØÐУ¬ÒòΪËüÒªÂú×ãÐкÅСÓÚµÈÓÚ5µÄÌõ¼þ¡£Èç¹ûµ½ÁË5ÐУ¬ÄÇôOracle¾Í²»ÔÙ·µ»ØÐС£ 3£©Oracle»ñÈ¡ÏÂÒ»ÐУ¬²¢µÝÔöÐкţ¨´Ó2µ½3ÔÙµ½4ÔÙµ½5?£©¡£ 4£©·µ»Øµ½µÚ2²½¡£ 15.3 where rownum=5µÄÖ´Ðйý³Ì 1£©ÓÉÓÚOracleûÓлñÈ¡µ½µÚÒ»¸ö·ûºÏÌõ¼þµÄ1ÐУ¬¼´µÚÒ»ÐС£ 2£©ËùÒÔOracleÎÞ·¨»ñÈ¡ÏÂÒ»ÐУ¬¼´ÎÞ·¨´Ó±àºÅΪ1µÄµÚÒ»ÐпªÊ¼µÝÔöÐкţ¨´Ó2µ½3ÔÙµ½4ÔÙµ½5?£©¡£ 3£©×îÖÕ½á¹ûΪ¿Õ¡£ eg1£ºÕÒ³öÕÊÎñÐÅÏ¢±íµÄǰÈýÌõ¼Ç¼ select rownum,id,real_name,create_date from account where rownum <= 3; eg2£ºÕÒ³öÕÊÎñÐÅÏ¢±íµÄµÚËÄÌõµ½µÚÁùÌõ¼Ç¼£¿ select rn,real_name from (select rownum rn,real_name from account where rownum<=6) where rn>=4; ? ×¢ÒâÊÂÏ´Ëʱrownum±ØÐëÓбðÃû£¬·ñÔò½á¹û½«°´ÕÕ×Ó²éѯºóµÄ±í½øÐÐαÁвéÕÒ£¬½á¹û¾ÍΪ¿ÕÁË¡£ eg3£º×îÍí¿ªÍ¨ÏµÍ³µÄǰÈý¸ö¿Í»§£¿ select rownum,real_name,create_date from (select real_name,create_date from account order by create_date desc) where rownum<=3; ? ×¢ÒâÊÂÏҪÏÈÅÅÐòºó¹ýÂË£¬×¢Òâwhere¡¢order byµÄÖ´ÐÐ˳Ðò¡£ eg4£º×îÍí¿ªÍ¨ÏµÍ³µÄµÚËĵ½µÚÁùÃû¿Í»§£¿ select rn,real_name,create_date from (select rownum rn,real_name,create_date from (select real_name,create_date from account order by create_date desc) where rownum<=6) where rn>=4; 30

ËÑË÷¸ü¶à¹ØÓÚ£º Oracleѧϰ±Ê¼Ç µÄÎĵµ
Oracleѧϰ±Ê¼Ç.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c1fo2j1t3wa9s4tl8lgrm6o2vt5lzqa00cp3_9.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top