ºä´Â Çϳª ÀÌ»óÀÇ ±âº» Å×À̺í, º°¸í ¶Ç´Â ºä¿¡¼ ÆÄ»ýµÇ°í µ¥ÀÌÅÍ °Ë»ö½Ã ±âº» Å×À̺í°ú ÇÔ²² ±³È¯µÇ¾î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ºä¿¡ Ç¥½ÃµÈ µ¥ÀÌÅ͸¦ º¯°æÇϸé, Å×ÀÌºí ³»ÀÇ µ¥ÀÌÅ͵µ º¯°æµË´Ï´Ù.
ºä´Â °¨Áö °¡´ÉÇÑ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦ÇÑÇϸé¼, ¹Ý¸é¿¡ ±âŸ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ¾×¼¼½º´Â Á»´õ ¸¹ÀÌ Çã¿ëÇϵµ·Ï ÀÛ¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
ºä Á¤ÀÇÀÇ SELECT ¸ñ·ÏÀÌ Á÷Á¢ ¶Ç´Â °£Á¢À¸·Î ±âº» Å×À̺íÀÇ ½Äº° Ä÷³ À̸§À» Æ÷ÇÔÇÏ´Â ºä¿¡ »ðÀÔÇÒ ¶§, INSERT¹®ÀÌ ±âº» Å×À̺íÀÇ ½Äº° Ä÷³À» Á÷Á¢ ÂüÁ¶ÇÑ °Íó·³ µ¿ÀÏÇÑ ±ÔÄ¢À» Àû¿ëÇÕ´Ï´Ù. INSERT¹®¿¡ ´ëÇØ¼´Â SQL ÂüÁ¶¼¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
À§¿¡¼ ¼³¸íµÈ ´ë·Î ºä¸¦ »ç¿ëÇÏ´Â °Í ¿Ü¿¡µµ, ºä´Â ´ÙÀ½ÀÇ °æ¿ì¿¡µµ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
Ç¥ÁØ CREATE VIEW ±¸¹®À» »ç¿ëÇÏ´Â º°¸íÀ» ÂüÁ¶ÇÏ´Â ºä¸¦ ÀÛ¼ºÇÒ ¶§, ºä ÀÛ¼ºÀÚ ÀÎÁõ ID ´ë½Å ±âÃʸ¦ ÀÌ·ç´Â ¿ÀºêÁ§Æ® ¶Ç´Â µ¥ÀÌÅÍ ¼Ò½º¿¡ ÀÖ´Â ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½ºÇÏ´Â µ¥ ºä »ç¿ëÀÚÀÇ ÀÎÁõ ID°¡ »ç¿ëµÈ´Ù´Â »ç½ÇÀ» ¾Ë·ÁÁÖ´Â °æ°í°¡ Ç¥½ÃµË´Ï´Ù. FEDERATED Ű¿öµå¸¦ »ç¿ëÇÏ¿© ÀÌ °æ°í°¡ Ç¥½ÃµÇÁö ¾Êµµ·Ï ÇϽʽÿÀ.
ºä¸¦ ÀÛ¼ºÇÏ´Â ¶ÇÇϳªÀÇ ÀÌÀ¯´Â Áßø ¶Ç´Â °øÅë Å×À̺í Ç¥Çö½ÄÀ» »ç¿ëÇÏ¿© īŻ·Î±× Á¶»ç¸¦ ÁÙÀÌ°í ¼º´ÉÀ» °³¼±Çϱâ À§ÇؼÀÔ´Ï´Ù. °øÅë Å×À̺í Ç¥Çö½Ä¿¡ ´ëÇØ¼´Â SQL ÂüÁ¶¼¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
Á¦¾î ¼¾Å͸¦ »ç¿ëÇÏ¿© º¸±â¸¦ ÀÛ¼ºÇϽʽÿÀ.
|
¸í·ÉÇàÀ» »ç¿ëÇÏ¿© º¸±â¸¦ ÀÛ¼ºÇϽʽÿÀ.
CREATE VIEW <name> (<column>, <column>, <column>) SELECT <column_names> FROM <table_name> WITH CHECK OPTION
¿¹¸¦ µé¾î, EMPLOYEE Å×ÀÌºí¿¡´Â ¾Æ¹«³ª »ç¿ëÇÒ ¼ö ¾ø´Â ±Þ¿© Á¤º¸°¡ µé¾î ÀÖ½À´Ï´Ù. ±×·¯³ª, »ç¿øÀÇ ÀüȹøÈ£´Â ÀϹÝÀûÀ¸·Î ¾×¼¼½ºÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ °æ¿ì, LASTNAME ¹× PHONENO Ä÷³¿¡¼¸¸ ºä°¡ ÀÛ¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ºä¿¡ ´ëÇÑ ¾×¼¼½º´Â PUBLICÀ¸·Î ±ÇÇÑ ºÎ¿©µÇ´Â ¹Ý¸é¿¡, Àüü EMPLOYEE Å×ÀÌºí¿¡ ´ëÇÑ ¾×¼¼½º´Â ±Þ¿© Á¤º¸¸¦ º¼ ¼ö ÀÖ´Â ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ·Î Á¦ÇÑµÉ ¼ö ÀÖ½À´Ï´Ù. Àбâ Àü¿ë ºä¿¡ ´ëÇØ¼´Â SQL ÂüÁ¶¼ ¸Å´º¾óÀ» ÂüÁ¶ÇϽʽÿÀ.
ºä¸¦ »ç¿ëÇÏ¿©, ÀÀ¿ëÇÁ·Î±×·¥¿¡ ´ëÇØ »ç¿ë °¡´ÉÇÑ Å×ÀÌºí µ¥ÀÌÅÍ ºÎ¼Ó ÁýÇÕÀ» ¸¸µé°í, »ðÀԵǰųª °»½ÅµÉ µ¥ÀÌÅÍÀÇ À¯È¿¼º °Ë»ç¸¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ºä¿¡¼´Â ¿ø·¡ Å×À̺íÀÇ ÇØ´ç Ä÷³ À̸§°ú´Â ´Ù¸¥ Ä÷³ À̸§À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ºä¸¦ »ç¿ëÇϸé, »ç¿ëÀÚ ÇÁ·Î±×·¥¿¡ À¶Å뼺À» ´õÇÒ ¼ö ÀÖ°í ÀÏ¹Ý »ç¿ëÀÚ Á¶È¸¿¡¼ Å×ÀÌºí µ¥ÀÌÅ͸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ SQL¹®Àº EMPLOYEE Å×ÀÌºí¿¡ A00 ºÎ¼ÀÇ ¸ðµç »ç¿ø°ú ÀüȹøÈ£¸¦ ³ª¿ÇÏ´Â ºä¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CREATE VIEW EMP_VIEW (DA00NAME, DA00NUM, PHONENO) AS SELECT LASTNAME, EMPNO, PHONENO FROM EMPLOYEE WHERE WORKDEPT = 'A00' WITH CHECK OPTION
ÀÌ ¸í·É¹®ÀÇ Ã¹¹øÂ° Çà¿¡¼´Â ºä¸¦ À̸§ ÁöÁ¤Çϰí Ä÷³À» Á¤ÀÇÇÕ´Ï´Ù. À̸§ EMP_VIEW´Â SYSCAT.TABLESÀÇ ½ºÅ°¸¶¿¡¼ °íÀ¯ÇØ¾ß ÇÕ´Ï´Ù. ºä À̸§Àº ¾È¿¡ µ¥ÀÌÅͰ¡ µé¾î ÀÖÁö ¾Ê´õ¶óµµ Å×À̺í À̸§À¸·Î ³ªÅ¸³³´Ï´Ù. ºä´Â EMPLOYEE Å×À̺íÀÇ Ä÷³ LASTNAME, EMPNO, PHONENO¿¡ ÇØ´çÇÏ´Â DA00NAME, DA00NUM, PHONENO¶ó´Â ¼¼ °³ÀÇ Ä÷³À» °¡Áö°Ô µË´Ï´Ù. ³ª¿µÈ Ä÷³ À̸§Àº SELECT¹®ÀÇ ¼±Åà ¸ñ·Ï¿¡ ÀÏ´ëÀÏ·Î Àû¿ëµË´Ï´Ù. Ä÷³ À̸§ÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, ºä¿¡¼´Â SELECT¹®ÀÇ °á°ú Å×À̺íÀÇ Ä÷³°ú µ¿ÀÏÇÑ À̸§À» »ç¿ëÇÕ´Ï´Ù.
µÎ¹øÂ° ÇàÀº µ¥ÀÌÅͺ£À̽º¿¡¼ ¾î´À °ªÀÌ ¼±ÅÃµÉ °ÍÀÎÁö¸¦ ¼³¸íÇÏ´Â SELECT¹®ÀÔ´Ï´Ù. ¿©±â¿¡ ALL, DISTINCT, FROM, WHERE, GROUP BY ¹× HAVINGÀýÀ» Æ÷ÇÔÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ºä¿¡ ´ëÇÑ Ä÷³À» ¼±ÅÃÇÒ µ¥ÀÌÅÍ ¿ÀºêÁ§Æ®ÀÇ À̸§(µé)ÀÌ FROMÀý µÚ¿¡ ¿Í¾ß ÇÕ´Ï´Ù.
WITH CHECK OPTIONÀýÀº °»½ÅµÇ°Å³ª ºä¿¡ »ðÀÔµÈ ÇàÀ» ºä Á¤ÀÇ¿¡ ´ëÇØ Á¡°ËÇØ¾ß Çϸç, ¸ÂÁö ¾ÊÀ» °æ¿ì °ÅºÎµÊÀ» ³ªÅ¸³À´Ï´Ù. ÀÌ·Î ÀÎÇØ, µ¥ÀÌÅÍ ¹«°á¼ºÀº °ÈµÇÁö¸¸ Ãß°¡ 󸮰¡ ¿ä±¸µË´Ï´Ù. ÀÌ ÀýÀ» »ý·«Çϸé, »ðÀÔ ¹× °»½Å ³»¿ëÀÌ ºä Á¤ÀÇ¿¡ ¸Â´ÂÁö Á¡°ËµÇÁö ¾Ê½À´Ï´Ù.
´ÙÀ½ SQL¹®Àº SELECT ASÀýÀ» »ç¿ëÇÏ¿© EMPLOYEE Å×ÀÌºí¿¡ ´ëÇØ µ¿ÀÏÇÑ ºä¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CREATE VIEW EMP_VIEW SELECT LASTNAME AS DA00NAME, EMPNO AS DA00NUM, PHONENO FROM EMPLOYEE WHERE WORKDEPT = 'A00' WITH CHECK OPTION
»ç¿ëÀÚ´Â Á¤ÀÇ ¾È¿¡ UDF¸¦ »ç¿ëÇÏ´Â ºä¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ÀÌ ºä¸¦ °»½ÅÇÏ¿© ÃÖ±Ù ÇÔ¼ö¸¦ Æ÷ÇÔÇÏ·Á¸é, ºä¸¦ »èÁ¦ÇÑ ÈÄ ´Ù½Ã ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù. ºä°¡ UDF¿¡ Á¾¼ÓÀûÀ̸é, ÇØ´ç ÇÔ¼ö´Â »èÁ¦µÉ ¼ö ¾ø½À´Ï´Ù.
´ÙÀ½ SQL¹®Àº Á¤ÀÇ¿¡ ÇÔ¼ö°¡ ÀÖ´Â ºä¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CREATE VIEW EMPLOYEE_PENSION (NAME, PENSION) AS SELECT NAME, PENSION(HIREDATE,BIRTHDATE,SALARY,BONUS) FROM EMPLOYEE
UDF ÇÔ¼ö PENSIONÀº °ø½Ä¿¡ µû¶ó HIREDATE, BIRTHDATE, SALARY ¹× BONUS¸¦ ºñ·ÔÇÏ¿© »ç¿øÀÌ ¹Þ¾Æ¾ß ÇÒ ÇöÀçÀÇ ¼ö´çÀ» °è»êÇÕ´Ï´Ù.
CREATE VIEW¹®À» »ç¿ëÇÏ¿© ÀÔ·ÂµÈ ºä¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß ¾È³»¼¿¡¼ ÀÔ·ÂµÈ ºä¿¡ ÇÊ¿äÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.