SQL Æ©´×À̶õ Æ©´× ´ë»óÀÌ µÇ´Â SQLÀ» ÀÌÇØÇÏ°í, SQLÀÌ °¡Áø Á¤º¸µé, Å×À̺í/À妽º/Ä®·³ÀÇ Á¤º¸ ¹× ¾÷¹«Àû ¼º°Ý µîÀ» Ä¡¹ÐÇÏ°Ô ºÐ¼®ÇÏ¿© ¾ò¾îÁö´Â °á°úÀÏ »ÓÀÌ´Ù. SQLÀÇ ÀÌÇØ¿Í SQLÀÇ È¿À²ÀûÀÎ ÀÛ¼ººÎÅÍ ½ÃÀÛÇÏ¿© SQL Æ©´×À» ÀÍÈ÷µµ·Ï µµ¿ÍÁØ´Ù.
¼¹®Chapter 01SQL Æ©´×ÀÇ ½ÃÀÛÀº? Chapter 02¼ºêÄõ¸®¿Í ¼º´É ¹®Á¦ ÀÌÇØÇϱ⠡ܼºêÄõ¸®¿¡ ´ëÇÑ ±âº» ³»¿ë ÀÌÇØÇϱâ -¼ºêÄõ¸®¶õ -¼ºêÄõ¸®ÀÇ »ç¿ë ÆÐÅÏ¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ ¡Ü¼ºêÄõ¸® µ¿ÀÛ¹æ½Ä ÀÌÇØÇϱâ -FILTER µ¿ÀÛ¹æ½Ä -Á¶ÀÎ µ¿ÀÛ¹æ½Ä -¼ºêÄõ¸® µ¿ÀÛ¹æ½ÄÀ» Á¦¾îÇÏ´Â ÈùÆ®µé ¡Ü¼ºêÄõ¸®¸¦ È°¿ëÇÑ SQL ¼º´É°³¼± -ºñÈ¿À²ÀûÀÎ MINUS ´ë½Å NOT EXISTS¸¦ »ç¿ëÇÏÀÚ -Á¶ÀÎ ´ë½Å ¼ºêÄõ¸®¸¦ È°¿ëÇÏÀÚ -WHEREÀýÀÇ ¼ºêÄõ¸®¸¦ Á¶ÀÎÀ¸·Î º¯°æÇÏÀÚ Chapter 03½ºÄ®¶ó ¼ºêÄõ¸®ÀÇ ÀÌÇØ¿Í È¿À²ÀûÀÎ SQL ÀÛ¼ºÇϱ⠡ܽºÄ®¶ó ¼ºêÄõ¸®ÀÇ Æ¯¼º ÀÌÇØÇϱâ -ÃÖ´ë °á°ú °Ç¼ö¸¸Å ¹Ýº¹ÀûÀ¸·Î ¼öÇàµÈ´Ù -ÃßÃâµÇ´Â µ¥ÀÌÅÍ´Â Ç×»ó 1°Ç¸¸ À¯È¿ÇÏ´Ù -µ¥ÀÌÅÍ°¡ ÃßÃâµÇÁö ¾Ê¾Æµµ µÈ´Ù ¡Ü½ºÄ®¶ó ¼ºêÄõ¸®¿Í Á¶ÀÎÀÇ ÀÌÇØ ¹× È°¿ëÇϱâ -½ºÄ®¶ó ¼ºêÄõ¸®´Â ÃÖÁ¾ °á°ú ¸¸Å ¼öÇàÇÏÀÚ -½ºÄ®¶ó ¼ºêÄõ¸®¿Í Á¶ÀÎÀÇ °ü°è·Î º¸´Â SQL ¼º´É ¹®Á¦ Chapter 04WITHÀý ÀÌÇØ¿Í È¿À²ÀûÀÎ SQL ÀÛ¼ºÇϱ⠡ÜWITHÀý µ¿ÀÛ¹æ½Ä ÀÌÇØÇϱâ -MATERIALIZE µ¿ÀÛ¹æ½Ä -INLINE VIEW µ¿ÀÛ¹æ½Ä ¡ÜSQL ¼º´É °³¼±À» À§ÇÑ WITHÀý È°¿ëÇϱâ -µ¥ÀÌÅÍ Áߺ¹ ¾×¼¼½º Á¦°ÅÇϱâ -VIEW PREDICATING ¼º´É ¹®Á¦ Á¦°ÅÇϱâ -°èÃþ Äõ¸®ÀÇ µ¥ÀÌÅÍ Ã³¸® ÃÖ¼ÒÈ Çϱ⠡ÜWITHÀýÀ» »ç¿ëÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº? -µ¿½Ã¼ºÀÌ ³ôÀº °æ¿ì MATERIALIZE µ¿ÀÛ¹æ½ÄÀº ÇÇÇÏ -ÃßÃ⠰Ǽö°¡ ¸¹Àº °æ¿ì WITHÀýÀº ÇÇÇÏÀÚ -WITHÀý ¼±¾ð ºÎºÐÀº SQLÀÇ °¡Àå ¾Õ¿¡ À§Ä¡½ÃÅ°ÀÚ -WITHÀý¿¡ µ¿ÀÛ¹æ½Ä ÈùÆ®¸¦ Ãß°¡ÇÏÀÚ Chapter 05MERGE ±¸¹® ÀÌÇØ¿Í È¿À²ÀûÀÎ SQL ÀÛ¼ºÇϱ⠡ÜMERGE ±¸¹®ÀÇ ±¸¼º¿ä¼Ò ¾Ë±â -INTO Àý -USING Àý -ON Àý ¡ÜMERGE ±¸¹®À¸·Î 󸮵Ǵ µ¥ÀÌÅÍ ÀÌÇØÇϱâ -MERGE_T1 Å×ÀÌºí¿¡ ¸î °Ç UPDATE µÉ±î? -MERGE_T1 Å×ÀÌºí¿¡ ¸î °Ç DELETE µÉ±î? -MERGE_T1 Å×ÀÌºí¿¡ ¸î °Ç INSERT µÉ±î? ¡ÜMERGE ±¸¹® ÀÛ¼º ½Ã ¹ß»ýÇÒ ¼ö ÀÖ´Â ¿¡·¯¿Í ÇØ°á¹æ¹ý ¾Ë¾Æº¸±â -TARGET TABLE°ú SOURCE TABLEÀÇ Á¶ÀÎÀº 1:1À̾î¾ß ÇÑ´Ù -UPDATE Ä÷³Àº ONÀý¿¡ »ç¿ëÇÒ ¼ö ¾ø´Ù ¡ÜMERGE ±¸¹®Àº ´Ù¾çÇÑ ÇüÅÂÀÇ DMLÀ» Áö¿øÇÑ´Ù ¡ÜMERGE ±¸¹®À» ¼º´É ¹®Á¦¿¡ È°¿ëÇÏÀÚ Chapter 06FUNCTION ¼öÇà°ú SQL ¼º´É ¹®Á¦ ÀÌÇØÇϱ⠡ÜFUNCTION ±âº»³»¿ëµé ÀÌÇØÇϱâ -USER DEFINED FUNCTIONÀÇ ÀÇ¹Ì -USER DEFINED FUNCTIONÀÇ Æ¯Â¡°ú ÀåÁ¡ -USER DEFINED FUNCTIONÀÇ Á¾·ù¿Í »ç¿ë¹ý¡ÜFUNCTION µ¿ÀÛ¹æ½Ä ÀÌÇØÇϱâ -SELECTÀý¿¡ »ç¿ëÇÏ´Â FUNCTIONÀÇ µ¿ÀÛ¹æ½Ä -WHEREÀý¿¡ »ç¿ëÇÏ´Â FUNCTIONÀÇ µ¿ÀÛ¹æ½Ä ¡ÜFunction ¼öÇà°ú SQL ¼º´É ¹®Á¦ -FunctionÀº ÃÖÁ¾ ÃßÃâ °á°ú¸¸Å¸¸ ¼öÇàÇÏÀÚ -FunctionÀÌ ½ºÄ®¶ó ¼ºêÄõ¸®¿¡¼ ¼öÇàÇϵµ·Ï º¯°æÇÏÀÚ -FunctionÀ» È£ÃâÇÏ´Â °ªÀÇ ÆÐÅÏÀ» ºÐ¼®ÇÏÀÚ -SelectÀý¿¡ »ç¿ëµÈ FunctionÀ» Á¶ÀÎÀ¸·Î º¯°æÇÏÀÚ -WhereÀýÀÇ FunctionÀ» SelectÀý·Î ¿Å±âÀÚ Chapter 07DECODE & CASE WHEN ÀÌÇØ ¹× Á¶°Ç ¹® ó¸®Çϱ⠡ÜDECODE -±¸¹® -±¸¹®¿¡ ´ëÇÑ »ó¼¼ ¼³¸í -DECODE¿Í ¼º´É À̽´ ¡ÜCASE -±¸¹® -±¸¹®¿¡ ´ëÇÑ »ó¼¼ ¼³¸í -´Ü¼ø CASE¿Í Ž»ö CASE »ç¿ë¹ý -¿¹Á¦¸¦ ÅëÇÑ CASEÀÇ »ç¿ë¹ý Chapter 08NULL ó¸® ±¸¹® ÀÌÇØ¿Í È¿À²ÀûÀÎ SQL ÀÛ¼ºÇϱâ¡ÜNULL ó¸® ÇÔ¼ö ÀÌÇØÇϱâ -NVL () -NVL2 () ¡ÜNVL È°¿ëÇϱâ -½ÇÇà°èȹ ºÐ¸®Çϱâ -IS NULL Á¶È¸ °³¼±Çϱ⠡ܱ׷ì ÇÔ¼ö(COUNT, SUM, MAX, MIN)¿Í NVL ó¸® ¡ÜNULLABLE Ä÷³ »ç¿ë¿¡ ÀÇÇÑ ºñÈ¿À² COUNT ÇÔ¼ö ó¸® ¡ÜIS NULL Á¶È¸¿¡ ´ëÇÑ °³¼±¹æ¹ý ã±â -NVL ó¸®¿Í FUNCTION BASED INDEX »ý¼º -Ä÷³ ¼Ó¼º º¯°æ(DEFAULT ¼³Á¤)°ú NULL µ¥ÀÌÅÍ ¾÷µ¥ÀÌÆ® -Ä÷³ Ãß°¡ ¹× À妽º »ý¼º ÈÄ WHEREÀý º¯°æ¡ÜIS NOT NULL Á¶È¸¿¡ ´ëÇÑ °³¼±¹æ¹ý ã±â -´Ù¾çÇÑ IS NOT NULL ó¸®¿Í SQL ¼º´É ¹®Á¦ -Á¶ÀΠó¸® ½Ã IS NOT NULL È°¿ëÇϱ⠡Ü' '(BLANK)¿Í NULL µ¥ÀÌÅÍ Ã³¸®Çϱâ -' '(BLANK) µ¥ÀÌÅÍ°¡ NULLÀϱî? -TRIM & NVL ó¸® -' '¿Í NULL µ¥ÀÌÅÍ Ã³¸® °ü·Ã ¼º´É ¹®Á¦ Chapter 09 ³¯Â¥ µ¥ÀÌÅÍ °ü·Ã ÇÔ¼ö Á¶È¸Çϱ⠡ܵ¥ÀÌÅÍ Å¸ÀÔ °£ ³¯Â¥ µ¥ÀÌÅÍ Á¦¾îÇϱâ -DATE Á¶È¸ - ¿¡·¯°¡ ¹ß»ýÇÏ´Â °æ¿ì -DATE Á¶È¸ - Á¤»ó Á¶È¸ µÇ´Â °æ¿ì -À߸øµÈ ³¯Â¥ ¿¬»êµé ¡ÜÀÏÀÚ, ½Ã°£, ºÐ, ÃÊ °è»êÇϱ⠡ܳ¯Â¥¿Í °ü·ÃµÈ À¯¿ëÇÑ ÇÔ¼öµé -TO_DATE & TO_TIMESTAMP & TO_CHAR(datetime) -ADD_MONTHS -MONTHS_BETWEEN -LAST_DAY -NEXT_DAY -ROUND -TRUNC -EXTRACT Chapter 10 ÀÓÀÇÀÇ µ¥ÀÌÅ͸¦ È°¿ëÇÑ È¿À²ÀûÀÎ SQL ÀÛ¼ºÇϱâ¡ÜCONNECT BY LEVEL·Î µ¥ÀÌÅÍ ÃßÃâÇϱâ -ÀÓÀÇÀÇ ¼ýÀÚ ¸¸µé±â -ÀÓÀÇÀÇ ³¯Â¥ ¸¸µé±â ¡ÜCONNECT BY LEVEL È°¿ëÇϱâ -µ¥ÀÌÅÍ º¯È¯ ½Ã CONNECT BY LEVEL »ç¿ëÇϱâ -µ¥ÀÌÅÍ Áߺ¹ Á¶È¸ Á¦°ÅÇϱâ -À妽º ó¸® ÀÏ·®ÀÌ ¸¹Àº °æ¿ì Chapter 11 Ä÷³ º¯Çü¿¡ ÀÇÇÑ SQL ¼º´É ¹®Á¦ ÀÌÇØÇϱ⠡ÜÁ¶È¸ Ä÷³°ú º¯¼öÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸ÂÃßÀÚ ¡ÜÄ÷³¿¡ ºÒÇÊ¿äÇÑ ORACLE Á¦°øÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¸»ÀÚ -ºÎÀûÀýÇÏ°Ô FUNCTIONÀ» Ä÷³¿¡ »ç¿ëÇÏ´Â °æ¿ì -Ä÷³ º¯ÇüÀ¸·Î ÀÎÇØ À妽ºÀÇ MIN/MAX¸¦ È°¿ëÇÏÁö ¸øÇÏ´Â °æ¿ì -ÆÄƼ¼Ç Å° Ä÷³ º¯ÇüÀº ¸ðµç ÆÄƼ¼ÇÀ» Àд´٠Chapter 12 Á¶È¸ ÆÐÅÏ¿¡ ¸Â°Ô SQL ½ÇÇà°èȹ ºÐ±âÇϱ⠡ܸ¹Àº Á¶È¸ ÆÐÅÏÀ» °¡Áø SQLÀº ÇϳªÀÇ SQLÀÌ ¾Æ´Ï´Ù ¡ÜSQLÀÇ Á¶È¸ ÆÐÅÏ º° ½ÇÇà°èȹÀ» ºÐ±âÇÏÀÚ -¿©·¯ Á¶°ÇÀ» °¡Áø SQLÀÇ ½ÇÇà°èȹ ºÐ±âÇϱâ -º¯¼ö °ªÀÇ ¹üÀ§¿¡ µû¶ó SQLÀ» ºÐ¸®ÇÏÀÚ Chapter 13 ROWNUM ÀÌÇØ¿Í °ü·Ã SQL ¼º´É ¹®Á¦ ÀÌÇØÇϱ⠡ÜROWNUM µ¥ÀÌÅ͸¦ ¸ÕÀú ÃßÃâÇÑ ÀÌÈÄ Á¶È¸ÇÏÀÚ ¡ÜORDER BY¿Í ROWNUMÀ» °°Àº À§Ä¡¿¡ µÎÁö ¸»ÀÚ ¡ÜROWNUM=1Àº ROWNUM[=1·Î »ç¿ëÇÏÀÚ ¡ÜINDEX_DESC¿Í ROWNUM[=1À» ÇÔ²² »ç¿ëÇÏÁö ¸»ÀÚ ¡ÜROWNUM[=1Àº Ç×»ó ºü¸£Áö ¾Ê´Ù ¡ÜÀζóÀÎ ºä¿¡ ROWNUMÀ» Ãß°¡ÇÒ ¶§´Â ÁÖÀÇÇÏÀÚ Chapter 14 ȸé PAGINATION ó¸®ÇÒ ¶§ ÀÌ°ÍÀº ÁöÅ°ÀÚ ¡ÜROWNUM 󸮸¦ ÀßÇÏÀÚ ¡ÜÀ妽º Ä÷³ ¼ø¼¿Í ORDER BYÀý ¼ø¼¸¦ ¸ÂÃßÀÚ ¡ÜPLAN¿¡ ³ªÅ¸³ª´Â ¿ÀÆÛ·¹ÀÌ¼Ç Áß COUNT¿¡ ¼ÓÁö ¸»ÀÚ¡ÜNESTED LOOPS JOINÀ» »ç¿ëÇÏÀÚ NESTED LOOPS JOIN¿¡ ºñÈ¿À²ÀÌ ¸¹Áö ¾ÊÀº °æ¿ì È¿°úÀûÀÌ´Ù ±âº»ÀûÀÎ ÇüÅÂÀÇ PAGINATIONÀ» ÀÍÈ÷ÀÚ Index