PL/SQLµ¥Ðк¯ÊýºÍ×麯ÊýÏê½â
¡¡¡¡º¯ÊýÊÇÒ»ÖÖÓÐÁã¸ö»ò¶à¸ö²ÎÊý²¢ÇÒÓÐÒ»¸ö·µ»ØÖµµÄ³ÌÐò¡£ÔÚSQLÖÐOracleÄÚ½¨ÁËһϵÁк¯Êý£¬ÕâЩº¯Êý¶¼¿É±»³ÆÎªSQL»òPL/SQLÓï¾ä£¬º¯ÊýÖ÷Òª·ÖΪÁ½´óÀࣺ
¡¡¡¡ µ¥Ðк¯Êý
¡¡¡¡ ×麯Êý
¡¡¡¡±¾ÎĽ«ÌÖÂÛÈçºÎÀûÓõ¥Ðк¯ÊýÒÔ¼°Ê¹ÓùæÔò¡£
¡¡¡¡SQLÖеĵ¥Ðк¯Êý
¡¡¡¡SQLºÍPL/SQLÖÐ×Ô´øºÜ¶àÀàÐ͵ĺ¯Êý£¬ÓÐ×Ö·û¡¢Êý×Ö¡¢ÈÕÆÚ¡¢×ª»»¡¢ºÍ»ìºÏÐ͵ȶàÖÖº¯ÊýÓÃÓÚ´¦Àíµ¥ÐÐÊý¾Ý£¬Òò´ËÕâЩ¶¼¿É±»Í³³ÆÎªµ¥Ðк¯Êý¡£ÕâЩº¯Êý¾ù¿ÉÓÃÓÚSELECT,WHERE¡¢ORDER BYµÈ×Ó¾äÖУ¬ÀýÈçÏÂÃæµÄÀý×ÓÖоͰüº¬ÁËTO_CHAR,UPPER,SOUNDEXµÈµ¥Ðк¯Êý¡£
SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')
from emp
Where UPPER(ename) Like 'AL%'
ORDER BY SOUNDEX(ename)
¡¡¡¡µ¥Ðк¯ÊýÒ²¿ÉÒÔÔÚÆäËûÓï¾äÖÐʹÓã¬ÈçupdateµÄSET×Ӿ䣬INSERTµÄVALUES×Ӿ䣬DELETµÄWHERE×Ó¾ä,ÈÏÖ¤¿¼ÊÔÌØ±ð×¢ÒâÔÚSELECTÓï¾äÖÐʹÓÃÕâЩº¯Êý£¬ËùÒÔÎÒÃǵÄ×¢ÒâÁ¦Ò²¼¯ÖÐÔÚSELECTÓï¾äÖС£
¡¡¡¡NULLºÍµ¥Ðк¯Êý
¡¡¡¡ÔÚÈçºÎÀí½âNULLÉÏ¿ªÊ¼ÊǺÜÀ§Äѵ쬾ÍËãÊÇÒ»¸öºÜÓоÑéµÄÈËÒÀÈ»¶Ô´Ë¸Ðµ½À§»ó¡£NULLÖµ±íʾһ¸öδ֪Êý¾Ý»òÕßÒ»¸ö¿ÕÖµ£¬ËãÊõ²Ù×÷·ûµÄÈκÎÒ»¸ö²Ù×÷ÊýΪNULLÖµ£¬½á¹û¾ùΪÌá¸öNULLÖµ,Õâ¸ö¹æÔòÒ²ÊʺϺܶຯÊý£¬Ö»ÓÐCONCAT,DECODE,DUMP,NVL,REPLACEÔÚµ÷ÓÃÁËNULL²ÎÊýʱÄܹ»·µ»Ø·ÇNULLÖµ¡£ÔÚÕâЩÖÐNVLº¯Êýʱ×îÖØÒªµÄ£¬ÒòΪËûÄÜÖ±½Ó´¦ÀíNULLÖµ£¬NVLÓÐÁ½¸ö²ÎÊý£ºNVL(x1,x2),x1ºÍx2¶¼Ê½±í´ïʽ£¬µ±x1Ϊnullʱ·µ»ØX2,·ñÔò·µ»Øx1¡£
¡¡¡¡ÏÂÃæÎÒÃÇ¿´¿´empÊý¾Ý±íËü°üº¬ÁËнˮ¡¢½±½ðÁ½ÏÐèÒª¼ÆËã×ܵIJ¹³¥
column name emp_id salary bonus
key type pk
nulls/unique nn,u nn
fk table
datatype number number number
length 11.2 11.2
¡¡¡¡²»ÊǼòµ¥µÄ½«Ð½Ë®ºÍ½±½ð¼ÓÆðÀ´¾Í¿ÉÒÔÁË£¬Èç¹ûijһÐÐÊÇnullÖµÄÇô½á¹û¾Í½«ÊÇnull£¬±ÈÈçÏÂÃæµÄÀý×Ó£º
update emp
set salary=(salary+bonus)*1.1
¡¡¡¡Õâ¸öÓï¾äÖУ¬¹ÍÔ±µÄ¹¤×ʺͽ±½ð¶¼½«¸üÐÂΪһ¸öеÄÖµ£¬µ«ÊÇÈç¹ûûÓн±½ð£¬¼´ salary + null,ÄÇô¾Í»áµÃ³ö´íÎóµÄ½áÂÛ£¬Õâ¸öʱºò¾ÍҪʹÓÃnvlº¯ÊýÀ´ÅųýnullÖµµÄÓ°Ïì¡£
ËùÒÔÕýÈ·µÄÓï¾äÊÇ£º
update emp
set salary=(salary+nvl(bonus,0)*1.1
¡¡¡¡µ¥ÐÐ×Ö·û´®º¯Êý
¡¡¡¡µ¥ÐÐ×Ö·û´®º¯ÊýÓÃÓÚ²Ù×÷×Ö·û´®Êý¾Ý£¬ËûÃÇ´ó¶àÊýÓÐÒ»¸ö»ò¶à¸ö²ÎÊý£¬ÆäÖоø´ó¶àÊý·µ»Ø×Ö·û´®
¡¡¡¡ASCII(<c1>)</c1>
¡¡¡¡c1ÊÇÒ»×Ö·û´®£¬·µ»Øc1µÚÒ»¸ö×ÖĸµÄASCIIÂ룬ËûµÄÄæº¯ÊýÊÇCHR()
SELECT ASCII('A') BIG_A,ASCII('z') BIG_z from e
Ïà¹ØÎĵµ£º
--default-character-set=utf8 ÓëÐÞ¸ÄsqlÎļþ¼ÓÈ룺SET NAMES 'utf8';
µ¼Èë½Å±¾Ê±£¬SET NAMES 'xxx' £¬xxxÓ¦¸ÃºÍsql½Å±¾ÎļþµÄʵ¼Ê±àÂëÒ»Ö£¬Èç¹ûÄãÉèÖõÄʱutf-8 £¬ÄÇôÇëÈ·ÈÏÄãµÄsql½Å±¾Îļþʱutf-8±£´æµÄ:
iconv -f UTF-8 xxx.sql
Èç¹ûÏÔʾÕý³££¬ÄÇôÕâÒ»²½¾ÍOKÁË
ÁíÍâ×¢ÒâÄãµÄ½Å±¾ÀÓÐûÓиø¿â±íÉèÖ ......
Case¾ßÓÐÁ½ÖÖ¸ñʽ¡£¼òµ¥Caseº¯ÊýºÍCaseËÑË÷º¯Êý¡£
--¼òµ¥Caseº¯Êý
CASE sex
WHEN '1' THEN 'ÄÐ'
WHEN '2' THEN 'Å®'
ELSE 'ÆäËû' END
--CaseËÑË÷º¯Êý
CASE WHEN sex = '1' THEN 'ÄÐ'
WHEN sex = '2' THEN 'Å®'
ELSE 'ÆäËû' END
ÕâÁ½ÖÖ·½Ê½£¬¿ÉÒÔʵÏÖÏàͬµÄ¹¦ÄÜ¡£¼òµ¥Caseº¯ÊýµÄд·¨Ïà ......
±êÇ©£ºÊý¾Ý·ÃÎÊ ADO.NET
µ÷ÓÃSQL´æ´¢¹ý³Ì ´æ´¢¹ý³ÌÔÚÒ»¸öµ¥ÔªÖзâ×°Á˸´ÔÓµÄSQL²éѯºÍÊý¾Ý¹ý³Ì£¬¿ÉÒÔÓɶà¸ö³ÌÐò»òÓû§Ö®¼äµ÷Óá£
Àý£º
......
Êýѧº¯Êý
1.¾ø¶ÔÖµ
S:select abs(-1) value
O:select abs(-1) value from dual
2.È¡Õû(´ó)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.È¡Õû£¨Ð¡£©
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.È¡Õû£¨½ØÈ¡£©
S:select cast(-1.002 as in ......