15-1.º¯¼ö

1.SQL È®Àå ¾ð¾î

SQLÀº ¿À·ÎÁö ÁúÀǸ¸À» À§ÇØ ¸¸µç ¾ð¾îÀÌ´Ù. ¾î¶² °ªÀ» Á¶»çÇ϶ó, »õ·Î¿î ·¹Äڵ带 »ðÀÔÇ϶ó, ƯÁ¤ Á¤º¸¸¦ »èÁ¦ÇÏ¶ó °°Àº ´Ü¹ßÀûÀÎ ¸í·É¸¸ ³»¸± ¼ö ÀÖ´Ù. Áß°£ °á°ú¸¦ ÀúÀåÇϰųª Á¶°ÇÀ» ÆÇ´ÜÇϰųª ºñ½ÁÇÑ ¸í·ÉÀ» ¹Ýº¹ÇÏ´Â Á¦¾î ±¸Á¶°¡ ¾ø¾î ±¸¹®ÀÌ Áߺ¹µÇ¾î ±æ°í ³­ÇØÇϸç È¿À²µµ ¶³¾îÁø´Ù.

´ë±Ô¸ðÀÇ µ¥ÀÌÅ͸¦ ü°èÀûÀ¸·Î ó¸®ÇÏ·Á¸é È帧À» ÅëÁ¦ÇÏ´Â Á¦¾î ±¸¹®ÀÌ ÇʼöÀûÀÌ´Ù. DBMS Á¦ÀÛ»ç´Â SQL¿¡ º¯¼ö¿Í Á¶°Ç¹®, ¹Ýº¹¹® µîÀÇ ¹®¹ýÀ» Ãß°¡ÇÏ¿© ÇÁ·Î±×·¡¹Ö ¾ð¾î ¼öÁØÀ¸·Î È®ÀåÇÏ¿´´Ù. ÀÚ¹Ù, C# °°Àº ¾ð¾î¿Í ¹®¹ýÀº ºñ½ÁÇ쵂 ¼öÁØÀº ´Ü¼øÇؼ­ ÇÁ·Î±×·¡¹Ö °æÇèÀÚ¿¡°Ô´Â ¾ÆÁÖ ½±´Ù.

ÀÌ·± ¹®¹ýÀû ÀåÄ¡¿Í SQLÀ» °°ÀÌ È°¿ëÇÏ¸é º¹ÀâÇÑ ÀÛ¾÷À» ºÐÇØÇÏ¿© ´Ü°èº°·Î ó¸®ÇÒ ¼ö ÀÖ°í ´ë±Ô¸ðÀÇ µ¥ÀÌÅÍ Ã³¸®¸¦ ÀÚµ¿È­ÇÒ ¼ö ÀÖ´Ù. ÁÖ·Î ÀúÀå ÇÁ·Î½ÃÀú·Î Äڵ带 ÀÛ¼ºÇÏÁö¸¸ Äõ¸®Åø¿¡¼­ Äڵ带 ¹Ù·Î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

È®Àå SQLÀº Á¦Á¶»ç¸¶´Ù ¹®¹ý°ú À̸§ÀÌ ´Ù¸£´Ù. ¿À¶óŬÀÇ PL/SQL°ú ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ TSQLÀº °³³ä°ú ±¸Á¶´Â À¯»çÇÏÁö¸¸ ¼­·Î ȣȯµÇÁö ¾Ê´Â´Ù. ´Ù¸¸, Çü½ÄÀûÀÎ Â÷ÀÌ°¡ ÀÖÀ» »Ó º»ÁúÀûÀÎ ¸ñÀûÀº °°¾Æ »óÈ£ ´ëü´Â °¡´ÉÇÏ´Ù. PL/SQL¿¡ ÀÖ´Â ±â´ÉÀº TSQL¿¡µµ ÀÖ°í ¹Ý´ëµµ ¸¶Âù°¡ÁöÀÌ´Ù.

À¯»çÇÑ ¿©·¯ ¾ð¾î¸¦ ÇѲ¨¹ø¿¡ ÀÍÈ÷´Â °ÍÀº È¥¶õ½º·¯¿ì´Ï ¿À¶óŬ PL/SQL À§ÁÖ·Î ½Ç½ÀÇÑ´Ù. PL/SQL·Î ¹®¹ýÀû ±¸Á¶¿Í È°¿ë ¹æ¹ýÀ» ÀÍÈù ÈÄ TSQLÀº Â÷ÀÌÁ¡ Á¤µµ¸¸ °£·«È÷ ¿ä¾àÇϱâ·Î ÇÑ´Ù. Çϳª¸¦ È®½ÇÈ÷ ÀÍÈ÷¸é ³ª¸ÓÁö´Â ±Ý¹æ Àͼ÷ÇØÁú ¼ö ÀÖ´Ù.

½Ç¹«¿¡¼­´Â µÎ ¾ð¾î¸¦ °ñ°í·ç ´Ù »ç¿ëÇϹǷΠ¾çÂÊÀ» ´Ù ¿¬±¸ÇØ º¸´Â °Íµµ À¯¿ëÇÏÁö¸¸ óÀ½ ¹è¿ï ¶§´Â ¿ÀÈ÷·Á Çò°¥¸®´Â ¸éÀÌ ÀÖ´Ù. ´çÀåÀº ¿À¶óŬ ¹®¹ý¸¸ ÇÊ¿äÇÏ´Ù¸é TSQLÀ̳ª MariaDBÀÇ ¹®¹ýÀº °Ç³Ê ¶Ù¾îµµ »ó°ü¾øÀ¸¸ç ÇÊ¿äÇÒ ¶§ ´Ù½Ã °øºÎÇÏ¸é µÈ´Ù.

2.°ªÀÇ Ãâ·Â

ÄÚµåÀÇ ½ÇÇà °á°ú¸¦ È®ÀÎÇÏ·Á¸é È­¸é¿¡ Ãâ·ÂÇØ ºÁ¾ß ÇÑ´Ù. ÁÖ ½Ç½ÀÅøÀÎ SQL Developer´Â SELECT ¹®ÀÇ ½ÇÇà °á°ú¸¦ ÁúÀÇ °á°úâ¿¡ µµÇ¥ ÇüÅ·Π¿¹»Ú°Ô Àß Ãâ·ÂÇÏÁö¸¸ ÄÚµå´Â SQLÀÌ ¾Æ´Ï¾î¼­ SELECT ¹®À¸·Î´Â °á°ú¸¦ È®ÀÎÇÒ ¼ö ¾ø´Ù.

DBMS_OUTPUT ÆÐÅ°ÁöÀÇ PUT_LINE ÇÁ·Î½ÃÀú·Î ¹®ÀÚ¿­À̳ª º¯¼ö¸¦ ½ºÅ©¸³Æ®Ã¢¿¡ Ãâ·ÂÇÏ¸ç ´ÙÀ½ ¼±¾ð¹®À¸·Î Ãâ·Â¹®À» ¾²°Ú´Ù´Â ¼±¾ðºÎÅÍ ÇØ¾ß ÇÑ´Ù. ÀÌ ¿É¼ÇÀÇ µðÆúÆ®°¡ OFF¿©¼­ ±×³ÉÀº º¯¼ö°ªÀ» Âï¾îº¼ ¼ö ¾ø´Ù.

 

SET SERVEROUTPUT ON;

 

±âº»ÀûÀÎ Ãâ·Â¹®ÀÌ OFFÀÎ ÀÌÀ¯´Â ¿ø·¡ DBMS´Â µ¥ÀÌÅ͸¸ ó¸®ÇÒ »Ó »ç¿ëÀÚ¸¦ Á÷Á¢ ´ë¸éÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù. °³¹ßÇÒ ¶§ ¿É¼ÇÀ» ÄÑ¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖÁö¸¸ ÇÑ ¹ø ONÀ¸·Î ¹Ù²ã ³õÀ¸¸é ¼¼¼Ç ³»¿¡¼­´Â ¼³Á¤À» °è¼Ó À¯ÁöÇÑ´Ù. °ªÀ» Ãâ·ÂÇÒ ¶§´Â ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÑ´Ù.

 

DBMS_OUTPUT.PUT_LINE(Ãâ·ÂÇÒ ³»¿ë);

 

´Ü¼øÇÑ ¹®ÀÚ¿­µµ °¡´ÉÇÏ°í º¯¼ö³ª ¿¬»ê½Äµµ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸í·É¸¸ ´Üµ¶À¸·Î ¾µ ¼ö´Â ¾øÀ¸¸ç ½ºÅ©¸³Æ® ¾È¿¡¼­ È£ÃâÇØ¾ß ÇÑ´Ù. PL/SQLÀÇ ½ºÅ©¸³Æ® ±¸Á¶´Â ´ÙÀ½°ú °°´Ù.

 

DECLARE

     º¯¼ö ¼±¾ð

BEGIN

     ¸í·É

EXCEPTION

END;

 

DECLARE¿¡¼­ º¯¼ö¸¦ ¼±¾ðÇÏ°í BEGIN ~ END »çÀÌ¿¡ ¸í·ÉÀ» ÀÛ¼ºÇÑ´Ù. ¿¹¿Ü¸¦ ó¸® ÇÏ·Á¸é EXCEPTION ºí·Ï¿¡ Äڵ带 ÀÛ¼ºÇ쵂 ÇÊ¿ä ¾øÀ¸¸é »ý·«ÇÑ´Ù. ¹¹¶óµµ Ãâ·ÂÇØ º¸·Á¸é ÃÖ¼ÒÇÑ BEGIN ~ END ºí·ÏÀº ±¸¼ºÇØ¾ß ÇÑ´Ù. °£´ÜÇÑ »ó¼ö ¹®ÀÚ¿­À» ½ºÅ©¸³Æ® Ãâ·Â¶õ¿¡ Âï¾î º¸ÀÚ.

 

BEGIN

     DBMS_OUTPUT.PUT_LINE('¾È³çÇϼ¼¿ä');

END;

¹®ÀÚ¿­ÀÌ ³ªÅ¸³ªÁö ¾ÊÀ¸¸é SERVEROUTPUT ¿É¼ÇÀ» ONÀ¸·Î Ä×´ÂÁö È®ÀÎÇØ º¸ÀÚ. ¿É¼ÇÀ» ÄÑ ³ù´õ¶óµµ Àç½ÃÀÛÇÏ¸é ´Ù½Ã OFFµÇ¾î ¹ö¸®¹Ç·Î ¸Å¹ø ´Ù½Ã ÄÑ Áà¾ß ÇÑ´Ù. ¿©·¯ °¡Áö ÀÌÀ¯·Î ¿¡·¯°¡ ¹ß»ýÇÒ ¼ÒÁöµµ ¸¹´Ù. ´ÙÀ½ ±¸¹®Àº ¿¡·¯ÀÌ´Ù.

 

BEGIN

     DBMS_OUTPUT.PUT_LINE('¾È³çÇϼ¼¿ä')

END

 

PL/SQLÀº Çü½ÄÀÌ ¾ö°ÝÇØ ¿ÀŸ¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. Ãâ·Â¹®Àº ¼¼¹ÌÄÝ·ÐÀ¸·Î ³¡³ª¸ç END ´ÙÀ½¿¡µµ ºí·°ÀÇ ³¡ÀÓÀ» ºÐ¸íÈ÷ Ç¥½ÃÇϱâ À§ÇØ ¼¼¹ÌÄÝ·ÐÀ» Âï´Â´Ù. °£´ÜÇÑ ¿¬»êÀ̳ª ÇÔ¼ö È£Ãâµµ °¡´ÉÇÏ´Ù.

 

BEGIN

     DBMS_OUTPUT.PUT_LINE(2 + 3 * 4);

     DBMS_OUTPUT.PUT_LINE(POWER(2, 3));

END;

 

´ÙÇ×½Ä Á¤µµ´Â Á¤È®È÷ °è»êÇØ ³»¸ç POWER ÇÔ¼ö·Î 2ÀÇ 3½ÂÀ» ±¸Çß´Ù. °¢°¢ 14¿Í 8À» Ãâ·ÂÇÑ´Ù. °ýÈ£ ¾È¿¡ º¯¼ö¸¦ ÀûÀ¸¸é ÇöÀç°ªÀ» Ãâ·ÂÇÑ´Ù.

3.º¯¼öÀÇ ¼±¾ð

º¯¼ö(Variable)´Â ÀÛ¾÷ ÁßÀÇ Àӽà °á°ú¸¦ ÀúÀåÇÏ´Â ÀåÄ¡ÀÌ´Ù. Äõ¸® °á°ú¸¦ Àá½Ã ÀúÀåÇØ ³õ°í Àç»ç¿ëÇϰųª ÇʵåÀÇ °ªÀ» Àоî Á¶ÀÛÇÒ ¶§ »ç¿ëÇÑ´Ù. »ç¿ëÇϱâ Àü¿¡ ¼±¾ðºÎÅÍ Çϴµ¥ DECLARE ºí·Ï¿¡¼­ À̸§°ú ŸÀÔÀ» ¹àÈù´Ù.

 

º¯¼ö¸í ŸÀÔ [ := ÃʱⰪ ]

 

º¯¼ö³¢¸® ±¸ºÐÇÏ°í ÀÌÈÄ º¯¼ö¸¦ ĪÇÏ·Á¸é °íÀ¯ÇÑ À̸§ÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ´ë»óÀ» Àß »ó¡ÇÏ´Â À̸§À» ÀÚÀ¯·Ó°Ô ºÙÀÌµÇ ¸íĪ ±ÔÄ¢À» ÁöÄÑ¾ß ÇÑ´Ù. SQL Å°¿öµå´Â ¾µ ¼ö ¾øÀ¸¸ç Áß°£¿¡ °ø¹éÀÌ µé¾î°¡¼­µµ ¾ÈµÈ´Ù. ¿À¶óŬÀº °ü½ÀÀûÀ¸·Î º¯¼ö¸í¿¡ v_ Á¢µÎ¸¦, »ó¼ö¸í¿¡ c_ Á¢µÎ¸¦ ºÙ¿© ¸íĪ¸¸À¸·Î ÀÚ°ÝÀ» ½±°Ô ±¸ºÐÇÑ´Ù.

º¯¼ö¿¡ °ªÀ» ´ëÀÔÇÒ ¶§´Â := ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. =Àº °°´Ù´Â ¶æÀÇ ºñ±³ ¿¬»êÀÚÀÌÁö ´ëÀÔ ¿¬»êÀÚ°¡ ¾Æ´ÔÀ» ÁÖÀÇÇÏÀÚ. ½À°üÀûÀ¸·Î : = ½ÄÀ¸·Î ¶ç¿ì´Â ½Ç¼ö¸¦ ¸¹ÀÌ Çϴµ¥ ÇÑ ¿¬»êÀÚ¿©¼­ :=·Î ºÙ¿© ¾´´Ù. ¼±¾ðÇÒ ¶§ ¹Ì¸® ÃʱⰪÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ°í ÄÚµå ºí·Ï¿¡¼­ °ªÀ» ´ëÀÔÇÒ ¼öµµ ÀÖ´Ù. ÃʱⰪµµ ¾ø°í ´ëÀÔµµ ÇÏÁö ¾ÊÀ¸¸é NULL°ªÀ» °¡Áø´Ù.

 

DECLARE

    v_price INT := 1000;

    v_num INT := 5;

    v_total INT;

BEGIN

    v_total := v_price * v_num;

    DBMS_OUTPUT.PUT_LINE(v_total);

END;

 

°¡°ÝÀ» ÀúÀåÇÏ´Â v_price º¯¼ö¿Í °³¼ö¸¦ ÀúÀåÇÏ´Â v_num º¯¼ö¸¦ Á¤¼öÇüÀ¸·Î ¼±¾ðÇÏ°í °¢°¢ 1000°ú 5·Î ÃʱâÈ­Çß´Ù. ÇÑ ¹ø¿¡ Çϳª¾¿ º¯¼ö¸¦ ¼±¾ðÇÏ¸ç ¼³»ç ŸÀÔÀÌ °°¾Æµµ ÇѲ¨¹ø¿¡ µÎ º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö´Â ¾ø´Ù. v_totalÀº ÃʱⰪ ¾øÀÌ ¼±¾ðÇß´Ù°¡ BEGIN ºí·Ï¿¡¼­ v_price¿Í v_numÀ» °öÇÑ °ªÀ» ´ëÀÔÇß´Ù. ÀÌ °ªÀ» Ãâ·ÂÇϸé ÃÑ °¡°ÝÀº 5000ÀÌ´Ù.

¿À¶óŬ ÄÚµå´Â ¹®¹ýÀº ¾ö°ÝÇÏÁö¸¸ Çü½ÄÀº ÀÚÀ¯·Ó´Ù. ¸Å ÁÙ¸¶´Ù °³ÇàÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï¸ç µé¿©¾²±âµµ °­Á¦ÇÏÁö ¾Ê´Â´Ù. ¼¼¹ÌÄÝ·ÐÀ¸·Î °¢ ÁÙÀ» ±¸ºÐÇϹǷΠÇÑ ÁÙ¿¡ ¿©·¯ ¸í·ÉÀ» Àû¾îµµ »ó°ü¾ø´Ù. DECLARE¿Í º¯¼ö ¼±¾ð¹®À» °°Àº ÁÙ¿¡ ÀûÀ» ¼ö ÀÖ°í BEGN~END±îÁö ÇÑ ÁÙ¿¡ ´Ù ½áµµ »ó°ü¾ø´Ù.

 

DECLARE v_price INT := 1000;v_num INT := 5;v_total INT;

BEGIN v_total := v_price * v_num;DBMS_OUTPUT.PUT_LINE(v_total);END;

 

±×·¯³ª ÀÌ·¸°Ô ¾²¸é ¾îµð±îÁö°¡ ÇÑ ¸í·ÉÀÎÁö Àß º¸ÀÌÁö ¾Ê¾Æ °¡µ¶¼ºÀÌ ¶³¾îÁö°í ÆíÁýÇϱ⵵ ¾î·Æ´Ù. °¡±ÞÀû ÁÙ´ç ÇÑ ¸í·É¸¸ ¾²°í µé¿©¾²±â¸¦ Àß ÇØ µÎ´Â °ÍÀÌ °ü¸®¿¡ À¯¸®ÇÏ´Ù. »ó¼ö¸¦ ¼±¾ðÇÒ ¶§´Â CONSTANT Å°¿öµå¸¦ ºÙÀÌ¸ç ¼±¾ð½Ã ¹Ýµå½Ã ÃʱⰪÀ» ÁÖ¾î¾ß ÇÑ´Ù.

 

DECLARE

    c_mile CONSTANT NUMBER := 1.609;

    v_kilo INT;

BEGIN

    v_kilo := 400;

    DBMS_OUTPUT.PUT_LINE(v_kilo * c_mile);

END;

 

c_mileÀº 1¸¶ÀÏÀÌ 1.609ų·Î¹ÌÅͶó´Â ¶æÀÌ¸ç º¯ÇÏÁö ¾Ê´Â °ªÀÌ´Ù. ¹Ýº¹ÀûÀ¸·Î »ç¿ëÇÒ ¼öÄ¡¿¡ À̸§À» ºÙ¿© »ó¼ö·Î Á¤ÀÇÇØ µÎ¸é ¿Ü¿ì±â ½±°í ÀÏ°ý ¼öÁ¤µµ ¿ëÀÌÇÏ´Ù. »ó¼ö´Â Ãʱâ½Ä¿¡¼­¸¸ °ªÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ¾î Ãʱâ½ÄÀ» »ý·«Çϸé ÀÌÈÄ °ªÀ» ´ëÀÔÇÒ ¹æ¹ýÀÌ ¾ø¾î ¿¡·¯ÀÌ´Ù. ÃʱâÈ­ ÈÄ¿¡´Â Àб⸸ ÇØ¾ß Çϸç BEGIN ºí·Ï¿¡¼­ c_mile := 1.5 ½ÄÀ¸·Î ´Ù¸¥ °ªÀ» ´ëÀÔÇÒ ¼ö ¾ø´Ù.

ƯÁ¤ Å×À̺íÀÇ Çʵå¿Í °°Àº ŸÀÔÀÇ º¯¼ö¸¦ ¼±¾ðÇÏ·Á¸é ŸÀÔ ÀÚ¸®¿¡ Å×À̺í.Çʵå%TYPE À¸·Î ¾´´Ù. ÇʵåÀÇ °ªÀ» ´ëÀÔ¹Þ´Â º¯¼ö¶ó¸é ¼±¾ðÇÒ ¶§ºÎÅÍ Çʵå¿Í °°Àº ŸÀÔÀ¸·Î ¼±¾ðÇØ µÎ´Â °ÍÀÌ Æí¸®ÇÏ´Ù. Çʵå ŸÀÔÀ» ÀÏÀÏÀÌ Á¶»çÇÒ ÇÊ¿ä ¾ø°í Â÷ÈÄ Çʵå ŸÀÔÀ» º¯°æÇÏ¸é º¯¼öÀÇ Å¸ÀÔµµ ÀÚµ¿À¸·Î °°ÀÌ ¹Ù²ï´Ù.

 

DECLARE

    v_price tItem.price%TYPE := 1000;

    v_num v_price%TYPE := 5;

    v_total v_price%TYPE;

BEGIN

    v_total := v_price * v_num;

    DBMS_OUTPUT.PUT_LINE(v_total);

END;

 

v_price¸¦ tItem Å×À̺íÀÇ price Çʵå¿Í °°Àº ŸÀÔÀ¸·Î ¼±¾ðÇÑ´Ù. ÀÌ Çʵ尡 INT·Î Á¤ÀǵǾî ÀÖ¾î v_priceµµ INT ŸÀÔÀÌ µÈ´Ù. Çʵå»Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ º¯¼ö¿Í °°Àº ŸÀÔÀ¸·Î ¼±¾ðÇÒ ¶§µµ º¯¼ö¸í%TYPE ½ÄÀ¸·Î ŸÀÔÀ» ¹àÈù´Ù. v_num°ú v_totalÀº v_price¿Í °°Àº ŸÀÔÀÌ´Ù.

¿À¶óŬÀº ¿ø·¡ ÁøÀ§ÇüÀÎ BOOLEAN ŸÀÔÀÌ ¾ø´Ù. ÀÌ Á¡Àº ´Ù¸¥ DBMSµµ ¸¶Âù°¡Áö¿©¼­ CHAR(1) ŸÀÔ¿¡ Y/N ¶Ç´Â T/F µîÀ¸·Î ÁøÀ§ÇüÀ» ÀúÀåÇÑ´Ù. ±×·¯³ª Äڵ忡¼­´Â BOOLEAN ŸÀÔÀÌ ÀÖÀ¸¸ç TRUE, FALSE, NULL Áß ÇϳªÀÇ °ªÀ» ÀúÀåÇÑ´Ù. Çʵ忡´Â ¾µ ¼ö ¾ø´Â BOOLEAN ŸÀÔÀÌ Äڵ忡¸¸ Á¸ÀçÇÏ´Â ÀÌÀ¯´Â Á¶°Ç½ÄÀÌ Àֱ⠶§¹®ÀÌ´Ù.

 

DECLARE

    v_isOk BOOLEAN;

BEGIN

    v_isOk := (1 = 1);

    IF v_isOK THEN

        DBMS_OUTPUT.PUT_LINE('OK');

    END IF;

END;

 

1 = 1 ºñ±³ ¿¬»ê¹®ÀÇ Æò°¡ °á°ú¸¦ v_isOk¿¡ ´ëÀÔÇØ µÎ¸é IF ¹®¿¡¼­ Á¶°Ç½Ä ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Ù. Á¶°Ç½ÄÀÌ ±æ°Å³ª ¿©·¯ ¹ø »ç¿ëÇÑ´Ù¸é º°µµÀÇ BOOLEAN º¯¼ö¿¡ ´ëÀÔÇØ µÎ°í °è¼Ó »ç¿ëÇÏ´Â °ÍÀÌ À¯¸®ÇÏ´Ù.

¿¬½À ¹®Á¦

1.½Ã, ºÐ, Ãʸ¦ º¯¼ö·Î ¼±¾ðÇÑ ÈÄ ¸ðµÎ °öÇÏ¿© ÇÏ·ç´Â ¸î ÃÊÀÎÁö °è»êÇÏ¿© Ãâ·ÂÇ϶ó.

4.Çʵ尪 ´ëÀÔ

SQLÀÇ º¯¼ö´Â ÁÖ·Î Å×À̺íÀÇ Çʵ尪À» Àá½Ã ÀúÀåÇÏ´Â ¿ëµµ·Î »ç¿ëÇÑ´Ù. Å×À̺íÀÇ Çʵ尪À» ÀÐ¾î º¯¼ö¿¡ ´ëÀÔÇÒ ¶§´Â SELECT INTO ±¸¹®À» »ç¿ëÇϸç INTO ´ÙÀ½¿¡ º¯¼ö¸¦ Àû´Â´Ù. ¹°·Ð ÀÌ º¯¼ö´Â Çʵå¿Í ȣȯµÇ´Â ŸÀÔÀ̾î¾ß ÇÑ´Ù.

´ÙÀ½ ÄÚµå´Â ÁÖ¹® Å×ÀÌºí¿¡¼­ 1¹ø ÁÖ¹®À» ÇÑ »ç¶÷ÀÇ À̸§À» Á¶»çÇÑ´Ù. tOrder Å×À̺íÀÇ member¸¦ ÀÐ¾î ´ëÀÔÇϱâ À§ÇÑ º¯¼öÀ̹ǷΠ¼±¾ðÇÒ ¶§ºÎÅÍ tOrder.member Çʵå¿Í °°Àº ŸÀÔÀ¸·Î ¼±¾ðÇß´Ù. ÀÌ Çʵ尡 VARCHAR(20)À¸·Î Á¤ÀǵǾî ÀÖ¾î v_memberµµ °°Àº ŸÀÔÀÌ µÈ´Ù.

 

DECLARE

    v_member tOrder.member%TYPE;

BEGIN

    SELECT member INTO v_member FROM tOrder WHERE orderID = 1;

    DBMS_OUTPUT.PUT_LINE(v_member);

END;

 

ù ÁÖ¹®À» ÇÑ ÃáÇâÀ̸¦ Á¶»çÇÏ¿© Ãâ·ÂÇÑ´Ù. µÎ °³ ÀÌ»óÀÇ Çʵ尪À» ÇѲ¨¹ø¿¡ Á¶»çÇÒ ¶§´Â SELECT a, b INTO v_a, v_b ½ÄÀ¸·Î Çʵå¸í°ú º¯¼ö¸¦ ÄÞ¸¶·Î ±¸ºÐÇÏ¿© ³ª¿­ÇÑ´Ù. Çʵå¿Í º¯¼ö¸¦ ¼ø¼­´ë·Î ´ëÀÀ½ÃÄÑ ´ëÀÔÇÑ´Ù.

 

DECLARE

    v_member tOrder.member%TYPE;

    v_item VARCHAR(20);

BEGIN

    SELECT member, item INTO v_member, v_item FROM tOrder WHERE orderID = 1;

    DBMS_OUTPUT.PUT_LINE(v_member || 'ÀÇ ' || v_item || ' ÁÖ¹®');

END;

 

ù ÁÖ¹®À» ÇÑ »ç¶÷°ú »óÇ°À» Á¶»çÇÏ¿© ¹®ÀÚ¿­·Î Ãâ·ÂÇß´Ù. "ÃáÇâÀÇ Ã»¹ÙÁö ÁÖ¹®"À» Ãâ·ÂÇÑ´Ù. º¯¼ö´Â ÇϳªÀÇ °ª¸¸ ÀúÀåÇÒ ¼ö ÀÖÀ¸¹Ç·Î SELECT ¹®À¸·Î Á¶È¸ÇÏ´Â °ªµµ ¹Ýµå½Ã Çϳª¿©¾ß ÇÑ´Ù. ¾ø°Å³ª ¿©·¯ °³ÀÌ¸é ¿¹¿Ü°¡ ¹ß»ýÇϸç À̶§´Â ¿¹¿Ü ó¸® ±¸¹®À¸·Î Ư¼öÇÑ Ã³¸®¸¦ ÇØ¾ß ÇÑ´Ù.

Çʵå Çϳª°¡ ¾Æ´Ñ ·¹ÄÚµå Àüü¸¦ ÀÐÀ» ¶§´Â Å×À̺í%ROWTYPE ŸÀÔÀÇ º¯¼ö¸¦ ¼±¾ðÇÏ¸ç ·¹ÄÚµå ÇÑ ÇàÀ» Åë°·Î ÀúÀåÇÑ´Ù. SELECT *À¸·Î ÀÐÀº ÇàÀ» ÀÌ º¯¼ö¿¡ ´ëÀÔÇØ ³õ°í º¯¼ö.ÇÊµå ½ÄÀ¸·Î Çʵ尪À» Çϳª¾¿ Àд´Ù. ´ÙÀ½Àº tCityÀÇ ºÎ»ê ·¹Äڵ带 º¯¼ö·Î Àоî Ãâ·ÂÇÑ´Ù.

 

DECLARE

    v_row tCity%ROWTYPE;

BEGIN

    SELECT * INTO v_row FROM tCity WHERE name = 'ºÎ»ê';

    DBMS_OUTPUT.PUT_LINE(TRIM(v_row.name) || ', ' || v_row.area || ', ' || v_row.popu);

END;

 

v_row¸¦ tCityÀÇ ·¹ÄÚµå ŸÀÔÀ¸·Î ¼±¾ðÇÏ°í SELECT * INTO v_row ¸í·ÉÀ¸·Î ÇÑ Çà Àüü¸¦ ´ëÀÔÇß´Ù. ÀÌÈÄ v_row.name, v_row.area ½ÄÀ¸·Î Çà ³»ºÎÀÇ Çʵ尪À» Àд´Ù. ºÎ»êÀÇ À̸§°ú ¸éÀû, Àα¸¼ö¸¦ ±¸ÇØ Ãâ·ÂÇß´Ù.

 

ºÎ»ê, 765, 342

 

ÇÑ Çà Àüü¸¦ ÇѲ¨¹ø¿¡ ´ëÀÔ¹Þ¾Æ¾ß ÇϹǷΠº¸Åë SELECT * INTO ±¸¹®À¸·Î ´ëÀÔÇÑ´Ù. ÀϺΠÇʵ常 ´ëÀÔ¹ÞÀ¸·Á¸é INTO ±¸¹®¿¡µµ Çʵå¸íÀ» ÀÏÀÏÀÌ Àû¾î ÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â µµ½ÃÀÇ À̸§°ú ¼Ò¼Ó Áö¿ª¸¸ Á¶»çÇÑ´Ù.

 

DECLARE

    v_row tCity%ROWTYPE;

BEGIN

    SELECT name, region INTO v_row.name, v_row.region FROM tCity WHERE name = 'Ãáõ';

    DBMS_OUTPUT.PUT_LINE(v_row.region || 'µµÀÇ ' || v_row.name);

END;

 

"°­¿øµµÀÇ Ãáõ"À» Ãâ·ÂÇÑ´Ù. º¯¼ö Çϳª·Î´Â ÇÑ Çุ ´ëÀÔ¹ÞÀ» ¼ö ÀÖÀ¸´Ï °á°ú ·¹ÄÚµå´Â ¹Ýµå½Ã Çϳª¿©¾ß ÇÑ´Ù. Å×À̺í Àüü¸¦ ÀÐÀ¸·Á¸é Ä¿¼­¿Í ·çÇÁ¸¦ »ç¿ëÇÏ¿© ÇÑ Ç྿ ¼ø¼­´ë·Î Àоî¾ß ÇÑ´Ù.

·¹ÄÚµå ŸÀÔÀº º¹¼ö °³ÀÇ ¿­·Î ±¸¼ºµÈ ÇϳªÀÇ ·¹Äڵ带 Ç¥ÇöÇÑ´Ù. RECORD Å°¿öµå ´ÙÀ½ÀÇ °ýÈ£ ¾È¿¡ Çʵ带 ³ª¿­ÇÏ¿© Á¤ÀÇÇÑ´Ù. ´ÙÀ½ ÄÚµåÀÇ cap ŸÀÔÀº ¸éÀû°ú Àα¸ µÎ °³ÀÇ Çʵ带 °¡Áö´Â ·¹ÄÚµåÀÌ´Ù. ÀÌ Å¸ÀÔÀÇ º¯¼ö city¸¦ ¼±¾ðÇÏ¸é µÎ °³ÀÇ º¯¼ö¸¦ ÇѲ¨¹ø¿¡ ´ëÀÔ¹ÞÀ» ¼ö ÀÖ´Ù.

 

DECLARE

    TYPE cap IS RECORD(area INT, popu INT);

    city cap;

BEGIN

    SELECT area, popu INTO city FROM tCity WHERE name = 'ºÎ»ê';

    DBMS_OUTPUT.PUT_LINE(city.area || ',' || city.popu);

END;

 

ÀüÅëÀûÀÎ ¾ð¾îÀÇ ±¸Á¶Ã¼¿¡ ÇØ´çÇϸç ÀÓÀÇ Å¸ÀÔÀÇ º¯¼ö ¿©·¯ °³¸¦ ¸ð¾Æ ³õÀº ŸÀÔÀÌ´Ù. Å×À̺íÀÇ Çʵå Áß ÀϺΠ¸î °³¸¸ ÀÐ°í ½ÍÀ» ¶§ ÇÊ¿äÇÑ Çʵ常 ¸ð¾Æ ·¹ÄÚµå ŸÀÔÀ» ¼±¾ðÇÑ´Ù. cap ŸÀÔÀº µµ½ÃÀÇ Àα¸¿Í ¸éÀûÀ» ÇѲ¨¹ø¿¡ ÀÐ¾î µéÀ̴ ŸÀÔÀÌ¸ç ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÒ ¼öµµ ÀÖ´Ù.

 

TYPE cap IS RECORD(area tCity.area%TYPE, popu tCity.popu%TYPE);

 

¾îÂ÷ÇÇ ÀÐÀ» ´ë»óÀÌ Á¤ÇØÁ® ÀÖÀ¸´Ï ¾Æ¿¹ ÇØ´ç Çʵå¿Í ŸÀÔÀ» ¸ÂÃß¾î µÎ¸é °ü¸®Çϱâ ÁÁ´Ù. ºÎ»êÀÇ ¸éÀû°ú Àα¸¸¦ Á¶»çÇÏ¿© ±× °á°ú¸¦ cap ŸÀÔÀÇ º¯¼ö city¿¡ ¹Ù·Î ´ëÀÔÇÒ ¼ö ÀÖ´Ù. ½ÇÇà °á°ú´Â 765,342ÀÌ´Ù.

5.º¯¼öÀÇ È°¿ë

°ªÀ» ÀúÀåÇÏ´Â º¯¼öÀÇ ´É·ÂÀº È°¿ëÇÒ °÷ÀÌ ¸¹´Ù. UPDATE³ª INSERT ¹®À¸·Î º¯¼ö°ªÀ» Çʵ忡 ÀúÀåÇÒ ¼ö ÀÖ°í WHERE ÀýÀÇ Á¶°Ç¹®¿¡µµ »ç¿ëÇÑ´Ù. ŸÀÔ¸¸ ÀÏÄ¡Çϸé Çʵ尡 ¿Ã ¼ö ÀÖ´Â ¸ðµç °÷¿¡ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

º¯¼ö¿¡ Áß°£°ªÀ» Àá½Ã ÀúÀåÇØ µÎ¸é ¼­ºêÄõ¸®¸¦ µÎ °³ÀÇ ¹®ÀåÀ¸·Î ºÐ¸®ÇÏ¿© ¼ø¼­´ë·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â Àα¸°¡ °¡Àå ¸¹Àº µµ½Ã¸¦ Á¶»çÇÑ´Ù.

 

DECLARE

    v_maxPopu INT;

    v_cityName VARCHAR(10);

BEGIN

    SELECT MAX(popu) INTO v_maxPopu FROM tCity;

    SELECT name INTO v_cityName FROM tCity WHERE popu = v_maxPopu;

    DBMS_OUTPUT.PUT_LINE(v_cityName);

END;

 

v_maxPopu¿¡ ÃÖ´ë Àα¸¼ö¸¦ Á¶»çÇØ ³õ°í ´ÙÀ½ Äõ¸®¹®¿¡¼­ ÀÌ º¯¼ö¸¦ Á¶°ÇÀý¿¡ »ç¿ëÇÏ¿© ÃÖ´ë Àα¸¼ö¸¦ °¡Áø µµ½Ã¸íÀ» v_cityName º¯¼ö¿¡ ´ëÀÔÇÏ¿© Ãâ·ÂÇÏ¿´´Ù. µÎ Áú¹®À» ÇÑ ¹ø¿¡ ó¸®ÇÏ´Â ¼­ºêÄõ¸®¸¦ µÎ°í ÀÌ·± Äڵ带 ±»ÀÌ ¾µ ÇÊ¿ä´Â ¾øÁö¸¸ Á¶»çÇÑ °ªÀ» ¿©·¯ ¹ø ¾´´Ù¸é º¯¼ö°¡ ´õ È¿À²ÀûÀÌ´Ù.

ÇʵåÀÇ °ªÀ» ÀÐ¾î ¸ðÁ¾ÀÇ °è»êÀ» ÇÑ ÈÄ ´Ù½Ã Çʵ忡 ´ëÀÔÇÒ ¶§µµ º¯¼ö°¡ À¯¿ëÇÏ´Ù. º¯¼ö´Â ÀúÀå ÀåÄ¡°¡ ¾Æ´Ñ ¸Þ¸ð¸® ³»ºÎ¿¡ ÀÖ¾î ¾î¶² º¹ÀâÇÑ ¿¬»êÀ̵ç ÃÊ°í¼ÓÀ¸·Î ó¸®ÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â ¼­¿ïÀÇ Àα¸¸¦ 2¹è·Î ¸¸µç´Ù. v_popu¿¡ Àα¸¼ö¸¦ Á¶»çÇÏ¿© 2¹è·Î ¸¸µç ÈÄ ´Ù½Ã ´ëÀÔÇÑ´Ù.

 

DECLARE

    v_popu INT;

BEGIN

    SELECT popu INTO v_popu FROM tCity WHERE name = '¼­¿ï';

    v_popu := v_popu * 2;

    UPDATE tCity SET popu = v_popu WHERE name = '¼­¿ï';

END;

 

ÀÌ Á¤µµ 󸮴 UPDATE ¹®À¸·Î SET num = num * 2ÇÏ´Â °ÍÀÌ ´õ °£´ÜÇÏ´Ù. ±×·¯³ª ÀÏ´Ü °ªÀ» º¯¼ö·Î ´ëÀÔ¹Þ¾ÒÀ¸¸é ÀÌ º¯¼ö¸¦ ¸¶À½´ë·Î °¡°øÇÒ ¼ö ÀÖ´Ù´Â ¸é¿¡¼­ Äõ¸®¹®°ú´Â ¼öÁØÀÌ ´Ù¸£´Ù. º¹ÀâÇÑ ¼ö½ÄÀ» Àû¿ëÇÒ ¼ö ÀÖ°í ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¹Ì¸® Á¤ÀÇÇÑ ±ÔÄ¢´ë·Î °ªÀ» Á¶ÀÛÇÒ ¼öµµ ÀÖÀ¸¸ç Á¶°Ç¿¡ µû¶ó ´Ù¸¥ 󸮸¦ ÇÒ ¼öµµ ÀÖ´Ù.

ÄÚµåÀÇ Äõ¸®¹®µµ ½ÇÇà °á°ú¸¦ Å×ÀÌºí¿¡ Á÷Á¢ ¹Ý¿µÇÏÁö ¾Ê°í Àӽà ¿µ¿ª¿¡ ÀúÀåÇÑ´Ù. µû¶ó¼­ °ªÀ» º¯°æÇÑ ÈÄ Ä¿¹ÔÀº µû·Î ÇØ Áà¾ß ÇÑ´Ù. ¾÷µ¥ÀÌÆ® °á°ú¸¦ ´õ È®ÀÎÇÒ °Íµµ ¾ø´Ù¸é ¾Æ¿¹ ÄÚµå ³»¿¡ COMMIT; ¸í·ÉÀ» °°ÀÌ Æ÷ÇÔ½ÃÄÑ µÎ¸é µÈ´Ù.

¿¬½À ¹®Á¦

2.tStaff Å×ÀÌºí¿¡¼­ ¿ù±ÞÀÌ °¡Àå ¸¹Àº Á÷¿øÀº ¾î´À ºÎ¼­ÀÇ ´©±¸ÀÎÁö Á¶»çÇÏ¿© Ãâ·ÂÇ϶ó.

6.Ä÷º¼Ç

¹è¿­Àº °°Àº ŸÀÔÀÇ º¯¼ö ÁýÇÕÀÌ´Ù. VARRAY ¹è¿­Àº ¼±¾ðÇÒ ¶§ Å©±â¿Í ŸÀÔÀ» ¹àÈ÷¸ç »ý¼ºÀÚ·Î ÃʱâÈ­ÇÑ´Ù. óÀ½ ¼±¾ðÇÑ Å©±â±îÁö¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÷ÀÚ´Â 1ºÎÅÍ ½ÃÀÛÇÏ´Â Á¤¼öÀÌ¸ç º¯¼ö(÷ÀÚ) Çü½ÄÀ¸·Î ÀÐ°í ¾´´Ù.

 

DECLARE

    TYPE int_array IS VARRAY(5) OF NUMBER;

    ar int_array;

BEGIN

    ar := int_array(8, 9, 0, 6, 2);

    FOR idx IN 1..5

    LOOP

        DBMS_OUTPUT.PUT_LINE(ar(idx));

    END LOOP;

END;

 

Å©±â 5ÀÇ Á¤¼öÇü ¹è¿­ ŸÀÔÀ» int_array·Î Á¤ÀÇÇÏ°í ÀÌ Å¸ÀÔÀÇ º¯¼ö arÀ» ¼±¾ðÇß´Ù. »ý¼ºÀÚ¿¡¼­ ´Ù¼¸ °³ÀÇ Á¤¼ö·Î ÃʱâÈ­ÇÑ´Ù. FOR ¹®À¸·Î 1~5±îÁö ·çÇÁ¸¦ µ¹¸ç ar(idx) ¹è¿­ ¿ä¼Ò¸¦ ¼ø¼­´ë·Î Ãâ·ÂÇß´Ù. ·çÇÁ·Î ¹Ýº¹ 󸮰¡ °¡´ÉÇÏ´Ù´Â ¸é¿¡¼­ ÀÏ¹Ý º¯¼ö¿Í´Â ¼öÁØÀÌ ´Ù¸£´Ù.

´ÙÂ÷¿ø ¹è¿­À» ¸¸µé ¶§´Â ¹è¿­³¢¸® ÁßøÇÑ´Ù. ¹è¿­ ¿ä¼ÒÀÇ Å¸ÀÔ¿¡ Á¦ÇÑÀÌ ¾ø¾î ¹è¿­À» ´Ù¸¥ ¹è¿­ ¾È¿¡ ³ÖÀ» ¼ö ÀÖ´Ù. ´ÙÀ½Àº Å©±â 3ÀÇ Á¤¼öÇü ¹è¿­ ¼¼ °³¸¦ ¸ð¾Æ Á¤¼öÇü 2Â÷¿ø ¹è¿­À» ¼±¾ðÇÑ´Ù. µÎ ¹è¿­ Å©±â¸¦ °¢°¢ ´Ù¸£°Ô ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç ÃÑ ¿ä¼Ò °³¼ö´Â µÎ ¹è¿­ Å©±âÀÇ °öÀÌ´Ù.

 

DECLARE

    TYPE int_array IS VARRAY(3) OF NUMBER;

    TYPE int_array2 IS VARRAY(3) OF int_array;

    ar int_array2;

BEGIN

    ar := int_array2(int_array(1, 2, 3), int_array(4, 5, 6), int_array(7, 8, 9));

    DBMS_OUTPUT.PUT_LINE(ar(2)(3));

END;

 

ÀÌÂ÷ ¹è¿­ÀÇ ¿ä¼Ò¸¦ ĪÇÒ ¶§´Â ¹è¿­(¹è¿­Ã·ÀÚ)(¿ä¼Ò÷ÀÚ) ½ÄÀ¸·Î ¹àÈù´Ù. Äڵ忡¼­´Â ar(2)(3)ÀÎ 6¸¸ Ãâ·ÂÇØ ºÃ´Âµ¥ ÀÌÁß ·çÇÁ¸¦ µ¹¸é ¸ðµç ¿ä¼Ò¸¦ ´Ù ¼øȸÇϸç Ãâ·ÂÇϰųª ¿¬»ê¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¹è¿­À» ¼¼ ¹ø ÀÌ»ó ÁßøÇÒ ¼öµµ ÀÖ´Ù.

Áßø Å×À̺í(Nested Table)Àº Å©±â¸¦ ¹Ì¸® ¹àÈ÷Áö ¾Ê´Â ¹è¿­ÀÌ¸ç »ý¼ºÀÚ¿¡¼­ ÇÊ¿äÇÑ ¸¸Å­ ¹è¿­ ¿ä¼Ò¸¦ ³ª¿­ÇÑ´Ù. ¼±¾ðÇÒ ¶§°¡ ¾Æ´Ñ »ý¼ºÇÒ ¶§ ¹è¿­ Å©±â¸¦ °áÁ¤ÇÑ´Ù. Å×À̺íÀ̶ó´Â ¸íĪÀº µ¥ÀÌÅͺ£À̽ºÀÇ Å×À̺íÀ̶ó´Â ¶æÀÌ ¾Æ´Ï¶ó ·è¾÷ Å×À̺íÀ̶ó´Â ¶æÀÌ´Ù.

 

DECLARE

    TYPE int_table IS TABLE OF NUMBER;

    ar int_table;

BEGIN

    ar := int_table(1, 2, 3, 4, 5, 6);

    DBMS_OUTPUT.PUT_LINE(ar(4));

END;

 

Á¤¼öÇüÀÇ ·è¾÷ Å×À̺íÀ» int_table ŸÀÔÀ¸·Î Á¤ÀÇÇÏ°í ÀÌ Å¸ÀÔÀÇ ¹è¿­ arÀ» ¼±¾ðÇß´Ù. ¿ä¼Ò °³¼ö´Â ¾ÆÁ÷ °áÁ¤ÇÏÁö ¾Ê¾ÒÀ¸¸ç »ý¼ºÀÚ¿¡¼­ Å©±â 6À¸·Î »ý¼ºÇϸé 6°³ÀÇ Á¤¼ö¸¦ ÀúÀåÇÏ´Â ¹è¿­ÀÌ µÈ´Ù. 4¹ø° ¿ä¼ÒÀÎ 4¸¦ Ãâ·ÂÇß´Ù.

¿¬°ü ¹è¿­Àº Å°¿Í °ªÀÇ ½ÖÀ̸ç ÀÏ¹Ý ¾ð¾îÀÇ ¸Ê ¶Ç´Â »çÀü°ú °°Àº °³³äÀÌ´Ù. Å°´Â Á¤¼ö ¶Ç´Â ¹®ÀÚ¿­À» ÁÖ·Î »ç¿ëÇϴµ¥ PLS_INTEGER, STRING(±æÀÌ) Çü½ÄÀ¸·Î ŸÀÔÀ» ÁöÁ¤ÇÑ´Ù. NUMBER³ª VARCHAR °°Àº ŸÀÔ¿¡ ºñÇØ 32ºñÆ® ±æÀÌÀÇ ±â°èÀûÀΠŸÀÔÀ̾ ¼Óµµ°¡ ´õ ºü¸£´Ù. ¿ä¼Ò¸¦ »èÁ¦ÇÏ´Â DELETE, Å°ÀÇ Á¸Àç ¿©ºÎ¸¦ Á¶»çÇÏ´Â EXIST, ¿ä¼Ò °³¼ö¸¦ Á¶»çÇÏ´Â COUNT µîÀÇ ¸Þ¼­µå¸¦ Á¦°øÇÑ´Ù.

 

DECLARE

    TYPE string_int_map IS TABLE OF NUMBER INDEX BY STRING(20);

    score string_int_map;

BEGIN

    score('È«±æµ¿') := 80;

    score('ȲÁøÀÌ') := 90;

    score('¾î¿ìµ¿') := 90;

    score.DELETE('ȲÁøÀÌ');

    DBMS_OUTPUT.PUT_LINE(score.COUNT());

    DBMS_OUTPUT.PUT_LINE(score('È«±æµ¿'));

END;

 

¹®ÀÚ¿­À» Å°·Î ÇÏ°í ¼ýÀÚ¸¦ °ªÀ¸·Î ÇÏ´Â ¿¬°ü ¹è¿­À» ¼±¾ðÇÏ°í È«±æµ¿°ú ȲÁøÀÌ, ¾î¿ìµ¿ÀÇ Á¡¼ö¸¦ ÀúÀåÇß´Ù. ȲÁøÀÌ´Â ´Ù½Ã Áö¿ì°í °³¼ö¿Í È«±æµ¿ÀÇ Á¡¼ö¸¦ °Ë»öÇÏ¿© Ãâ·ÂÇß´Ù. 2¿Í 80À» Ãâ·ÂÇÑ´Ù.