Oracle ѧϰ£ºPL/SQLÑÐò½¥½øÈ«ÃæÑ§Ï°½Ì³Ì
¡¡¿Î³ÌÎå ×Ó²éѯ
¡¡¡¡
¡¡¡¡±¾¿ÎÖØµã£º
¡¡¡¡1¡¢ÔÚÌõ¼þδ֪µÄÇé¿öϲÉÓÃǶÌ××Ó²éѯ
¡¡¡¡2¡¢ÓÃ×Ó²éѯ×öÊý¾Ý´¦Àí
¡¡¡¡3¡¢×Ó²éѯÅÅÐò
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎİë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢¸ÅÊö£º
¡¡¡¡×Ó²éѯÊÇÒ»ÖÖSELECT¾äʽÖеĸ߼¶ÌØÐÔ£¬¾ÍÊÇÒ»¸öSELECTÓï¾ä×÷ΪÁíÒ»¸öÓï¾äµÄÒ»¸ö¶Î¡£ÎÒÃÇ¿ÉÒÔÀûÓÃ×Ó²éѯÀ´
ÔÚWHERE×Ö¶ÎÖÐÒýÓÃÁíÒ»¸ö²éѯÀ´¹¥È¡ÖµÒÔ²¹³äÆäÎÞ·¨ÊÂÏÈÔ¤ÖªµÄ×Ó½á¹û¡£
¡¡¡¡×Ó²éѯ¿ÉÒÔÓÃÔÚWHERE×Ӿ䣬HAING×Ӿ䣬SELECT»òDELETEÓï¾äÖеÄfrom ×Ӿ䡣
¡¡¡¡×¢Ò⣺1¡¢×Ó²éѯ±ØÐëÔÚÒ»¶ÔÔ²À¨ºÅÀï¡£
¡¡¡¡2¡¢±È½Ï·ûºÅ£º>, =, »òÕß IN.
¡¡¡¡3¡¢×Ó²éѯ±ØÐë³öÏÖÔÚ²Ù×÷·ûµÄÓÒ±ß
¡¡¡¡4¡¢×Ó²éѯ²»ÄܳöÏÖÔÚORDER BYÀï¡¡ (ÊÔÌâÖÐÓÐʱ³öÏÖÕÒÄÄÐгö´í)
¡¡¡¡¶þ¡¢×Ó²éѯµÄÖ´Ðйý³Ì£º
¡¡¡¡NESTED QUERY¡¡¡¡¡¡MAIN QUERY
¡¡¡¡SQL> SELECT dept_id¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ SQL> SELECT last_name, title
¡¡¡¡2 from s_emp¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2 from s_emp
¡¡¡¡3 WHERE UPPER(last_name)=’BIRI’;¡¡¡¡¡¡3 WHERE dept_id =
¡¡¡¡ÕâÀï £¬Ã¿¸ö²éѯֻÔËÐÐÒ»´Î¡£µ±È»£¬×Ó²éѯҪÊ×Ïȱ»Ö´ÐУ¬´ó¼ÒÉèÏëһϣ¬Èç¹û×Ó²éѯÖÐÓÐÒ»¸öÒÔÉϵÄÈ˵Ä
LASTNAMEΪBIRI£¬»áÈçºÎ£¿-----»á³ö´í£¬ÒòΪ²»ÄÜÓÃ=À´Á¬½Ó¡£
¡¡¡¡ORA-1427: single-row subquery returns more than
¡¡¡¡one row
¡¡¡¡ÒÔÉϵIJéѯҲ±»³ÆÖ®Îª µ¥ÐÐ×Ó²éѯ¡£
¡¡¡¡DELECT×Ó²éѯʵÀý£º
¡¡¡¡delete from new_table where cata_time > to_date('19990901','yyyymmdd') and pro_name=(
¡¡¡¡select pro_name from new_product where pro_addr in ('bj','sh'))
¡¡¡¡Èý¡¢×Ó²éѯÖеÄGROUP º¯ÊýµÄÓ¦ÓÃ
¡¡¡¡ÊµÀý 1£º
¡¡¡¡SQL> SELECT last_name, title, salary
¡¡¡¡2 from s_emp
¡¡¡¡3 WHERE salary <
¡¡¡¡4 (SELECT AVG(salary)
¡¡¡¡5 from s_emp);
¡¡¡¡ÊµÀý2£º
¡¡¡¡Ñ¡Ôñ³ö¹¤×Ê×î¸ßµÄÔ±¹¤µÄ¼Òͥסַ£º
¡¡¡¡select emp_addr from employees where salary =
¡¡¡¡(select max(salary) from employees);
¡¡¡¡ÕâÊÇÒ»¸ö¼òµ¥ÊµÓõÄÀý×Ó£¬¿ÉÒÔÑÜÉú³öºÜ¶àÇé¿ö£¬ÔÚʵ¼ÊÓ¦Óþ³£³öÏÖ£¬Çë´ó¼Ò¶à¶à˼¿¼¡£
¡¡¡¡ÊµÀý3£º
¡¡¡¡SQL> SELECT dept_id, AVG(salary)
¡¡¡¡2 from s_emp
¡¡¡¡3 GROUP BY dept_id
¡¡¡¡4 HAVING AVG(salary) >
¡¡¡¡5 (SELECT AVG(salary)
¡¡¡¡6 from s_emp
¡¡¡¡7 WHERE dept_id = 32);
¡¡¡¡×Ó²éѯ±»¶à´ÎÖ´ÐУ¬ÒòΪËü³öÏÖÔÚHAV
Ïà¹ØÎĵµ£º
Vista³öÁËÃûµÄ¼æÈÝÐÔÎÊÌâ¶à£¬ºÜ¶àÈËÒ²¿àÓÚSQL SERVER²»Äܰ²×°ÔÚVistaÏ¡£ÏÖÔÚÎÒ½«×Ô¼ºµÄ°²×°¹ý³Ì˵Ï£º
²Ù×÷ϵͳ£ºWindows Vista Home Basic
´¦Àíµ¥Ôª£ºInter P8600 2.40GHz
Ö÷´æ´¢Æ÷£º2G
Íâ´æ´¢Æ÷£º250G
Èí¼þ×¼±¸£º£¨¶¼¿ÉÒÔÔÚ΢Èí¹Ù·½ÍøÕ¾ÕÒµ½£¬¾ùÃâ·Ñ£©
1.SQL SERVER 2005 EXPRESS£¨40.6M ......
ÔÚ´æ´¢¹ý³ÌÖо³£ÐèÒªÖ´ÐгÌÐò×é³ÉµÄSQLÓï¾ä£¬¿ÉÒÔʹÓÃexec(@sql),
Ò²¿ÉÒÔʹÓÃexec sp_executesql @sql¡£µ«Ê¹ÓÃsp_executesqlÒªÓÅÓÚexec£¬½¨ÒéʹÓà sp_executesql ¶ø²»ÒªÊ¹Óà EXECUTE Óï¾äÖ´ÐÐ×Ö·û´®¡£Ö§³Ö²ÎÊýÌæ»»²»½öʹ sp_executesql ±È EXECUTE ¸üͨÓ㬶øÇÒ »¹Ê¹ sp_executesql ¸üÓÐЧ£ ......
1£º ¼Ó´ó»Ø¹ö¶Î£¨¿ÉÒÔ¸ø500MÉõÖÁ1G£©
2£º·Ö¶Îcommit
iCount :=1;
for rec in cur_name loop
insert into table_name (.....);//DML Lanaguage
if iCount =2000 then
commit;
iCount:=0;
else
iCount:= iCount +1;
......
¿Î³ÌÈý ´Ó¶à¸ö±íÖÐÌáÈ¡Êý¾Ý
¡¡¡¡
¡¡¡¡±¾¿ÎÖØµã£º
¡¡¡¡1¡¢SELECT from ¶à¸ö±í£¬Ê¹ÓõÈÁ¬½Ó»ò·ÇµÈÁ¬½Ó
¡¡¡¡2¡¢Ê¹ÓÃÍâÁ¬½ÓOUTER JOIN
¡¡¡¡3¡¢Ê¹ÓÃ×ÔÁ¬½Ó
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎİë½Ç
¡¡¡¡Ò»¡¢Á¬½ÓµÄ¸ÅÄ
¡¡¡¡
¡¡¡¡ÊÇÖ¸Ò»¸ö´Ó¶à¸ö±íÖеÄÊý¾Ý½øÐеIJéѯ¡£Á¬½ÓÒ»°ãʹÓñíµÄÖ÷¼üºÍÍâ¼ü¡£
¡¡¡¡Á¬½ÓÀàÐÍ£º
¡¡ ......
¿Î³ÌËÄ ×麯Êý
¡¡¡¡
¡¡¡¡±¾¿ÎÖØµã£º
¡¡¡¡1¡¢Á˽â¿ÉÓõÄ×麯Êý
¡¡¡¡2¡¢ËµÃ÷ÿ¸ö×麯ÊýµÄʹÓ÷½·¨
¡¡¡¡3¡¢Ê¹ÓÃGROUP BY
¡¡¡¡4¡¢Í¨¹ýHAVINGÀ´ÏÞÖÆ·µ»Ø×é
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎİë½Ç
¡¡¡¡Ò»¡¢¸ÅÄ
¡¡¡¡×麯ÊýÊÇÖ¸°´Ã¿×é·µ»Ø½á¹ûµÄº¯Êý¡£
¡¡¡¡×麯Êý¿ÉÒÔ³öÏÖÔÚSELECTºÍHAVING ×Ö¶ÎÖС£
¡¡¡¡GROUP ......