¼ºêÄõ¸®´Â °ªÀÌ ¿Ã ¼ö ÀÖ´Â °÷ÀÌ¸é ¾îµð³ª
¿Ã ¼ö ÀÖÁö¸¸ ÁÖ·Î ´ÙÀ½ ¼¼ °÷¿¡¼ »ç¿ëÇÑ´Ù. À§Ä¡¿¡ µû¶ó °ªÀ» »ç¿ëÇÏ´Â ¿ëµµ°¡ ´Ù¸£´Ù.
l
WHERE Àý : Á¶°Ç¿¡ »ç¿ëÇÒ °ªÀ» ã´Â´Ù.
l
SELECT ÀýÀÇ ÇÊµå ¸ñ·Ï : Ãâ·ÂÇÒ °ªÀ» ã´Â´Ù.
l
FROM Àý :
Ãâ·Â ´ë»ó Å×À̺íÀ» »ý¼ºÇÑ´Ù.
WHERE
ÀýÀ̳ª SELECT ÀýÀÇ ¼ºêÄõ¸®´Â µÑ ´Ù °ªÀ» ¸®ÅÏÇÑ´Ù.
ÇϳªÀÏ ¼öµµ ÀÖ°í ¿©·¯ °³ÀÏ ¼öµµ ÀÖÁö¸¸ ¾î·°Å³ª °ªÀÌ´Ù. ÀÌ¿¡ ºñÇØ FROM Àý¿¡ ¿À´Â ¼ºêÄõ¸®´Â °ªÀÌ ¾Æ´Ñ Å×À̺íÀ» ¸®ÅÏÇÑ´Ù. FROM ÀýÀº
Á¶È¸ ´ë»ó Å×À̺íÀ» ¸í½ÃÇÏ´Â ¹®ÀåÀÌ´Ï FROM ´ÙÀ½ÀÇ ¼ºêÄõ¸®´Â Å×À̺í°ú ÀÚ°ÝÀÌ °°´Ù.
FROM
ÀýÀÇ ¼ºêÄõ¸®¸¦ Ưº°È÷ ÀζóÀκä(inline view)¶ó°í ºÎ¸¥´Ù. ºä´Â Å×À̺íÀÇ Á¤º¸¸¦ °¡Áö´Â DB ¿ÀºêÁ§Æ®ÀÌ´Ù. ÀζóÀÎÀÌ ¾Õ¿¡ ºÙÀº ÀÌÀ¯´Â CREATE·Î ¸¸µé¾î ¿µ±¸ÀûÀ¸·Î ÀúÀåÇÏ´Â
°ÍÀÌ ¾Æ´Ï¶ó ¼ºêÄõ¸®¿¡¼ Àá½Ã ¸¸µé¾î ¾²°í ¹ö¸®´Â ÀÓ½ÃÀûÀÎ ºä¶ó´Â ¶æÀÌ´Ù.
¼ºêÄõ¸®°¡ FROM Àý¿¡ ¿À¸é SELECT ¹®³¢¸® ÁßøµÈ´Ù. ÀζóÀκäÀÇ SELECT°¡ ¸®ÅÏÇÏ´Â °á°ú¼ÂÀº ÇϳªÀÇ Å×À̺íÀÌ´Ù. SELECT * FROM tCity´Â µµ½Ã ¸ñ·ÏÀÌ¸ç µû¶ó¼ SELECT ¹®
ÀÚü°¡ FROM Àý¿¡ ¿Ã ¼ö ÀÖ´Ù. SELECTÇÑ °É ¶Ç
SELECTÇÏ´Â ½ÄÀÌ´Ù. ´ÙÀ½Àº °¡Àå °£´ÜÇÑ ÀζóÀκäÀÌ´Ù.
SELECT *
FROM (SELECT * FROM tCity) A;
FROM
Àý¿¡ ÀÖ´Â ¾ÈÂÊÀÇ SELECT ¹®ÀÌ ¸®ÅÏÇÏ´Â µµ½Ã ¸ñ·ÏÀº ÇϳªÀÇ Å×À̺íÀÌ´Ï °á°ú¼ÂÀ¸·ÎºÎÅÍ
¶Ç SELECT ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÀÌÈÄ ÀζóÀκäÀÇ
Çʵ带 ĪÇϱâ À§ÇØ ´çÀå ¾²Áö ¾Ê´õ¶óµµ º°¸íÀ» ²À ºÙ¿©¾ß ÇÑ´Ù. À§ ¹®Àå¿¡¼´Â A¶ó°í ºÙ¿´´Ù.
Å×ÀÌºí¿¡¼ ¸ðµç Çʵ带 ÀÐ¾î °á°ú¼ÂÀ»
¸¸µé°í ±× Å×ÀÌºí¿¡¼ ¶Ç ¸ðµç Çʵ带 ÀÐÀ¸´Ï °á±¹ ¿øº» Å×À̺í°ú ¶È°°´Ù. ´çÀåÀº ¾Æ¹« ¦¿¡µµ ¾µ¸ð ¾ø´Â
ÁßøÀÌÁö¸¸ ÀÏ´Ü ÁßøÇØ ³õÀ¸¸é ¿øÇÏ´Â ºÎºÐ¿¡ º¯È¸¦ ÁÙ ¼ö ÀÖ´Ù. ¾ÈÂÊ ¼ºêÄõ¸®¸¦ º¯ÇüÇÏ¸é ¿ÜºÎÄõ¸®°¡
º¸´Â Å×À̺íÀÌ ´Þ¶óÁø´Ù.
SELECT *
FROM (SELECT name, popu, area FROM tCity) A;
SELECT *
FROM (SELECT * FROM tCity WHERE metro = 'y') B;
ù ¹ø° ¼ºêÄõ¸®´Â ¿ÀÇ ÀϺθ¸À» ÃëÇÑ´Ù. µÎ ¹ø° ¼ºêÄõ¸®´Â ÇàÀÇ ÀϺθ¸À» ÃëÇÑ´Ù. ±âÁ¸¿¡ Á¸ÀçÇÏ´Â Å×À̺í·ÎºÎÅÍ
ºÎºÐ Å×À̺íÀ» ¸¸µé¾î ³½´Ù.
¿°ú ÇàÀ» µ¿½Ã¿¡ Á¦ÇÑÇÏ¿© ÀϺοÀÇ ÀϺÎ
·¹Äڵ常 ÃëÇÒ ¼öµµ ÀÖ´Ù. ¿ÜºÎÄõ¸®´Â ¾ÆÁ÷±îÁö´Â ¼ºêÄõ¸®ÀÇ ÃßÃâ °á°ú Àüü¸¦ Ãâ·ÂÇϱ⸸ ÇÑ´Ù. Ãâ·Â¸¸À» À§Çؼ¶ó¸é ±»ÀÌ ÁßøÇÒ ÇÊ¿ä°¡ ¾øÁö¸¸ ´Ü°è¸¦ °ÅÄ¡¸é ¿©·¯ °¡Áö ±â±³¸¦ ºÎ¸± ¿©Áö°¡ »ý±ä´Ù.
ÀζóÀκ並 »ç¿ëÇϸé Å« ¹®Á¦¸¦ ÀÛÀº ¹®Á¦·Î
ºÐÇÒÇÏ¿© »ç°íÀÇ ´Ü°è°¡ ´Ü¼øÇØÁø´Ù. ȸ¿ø ¸ñ·Ï¿¡¼ ¹Ì¼º³âÀÚÁß¿¡ ¿¹Ä¡±ÝÀÌ 10¸¸¿ø ÀÌ»óÀÎ »ç¶÷À» ã¾Æ º¸ÀÚ. ¸ÕÀú ÀζóÀκä·Î 19¼¼ ¹Ì¸¸ÀÇ ¹Ì¼º³âÀÚ¸¦ ã´Â´Ù. ±×¸®°í ±× Áß¿¡ ¿¹Ä¡±Ý 10¸¸¿ø ÀÌ»óÀ» ã´Â´Ù.
SELECT
member, addr FROM (SELECT * FROM tMember WHERE age < 19) A
WHERE
A.money >= 100000;
¾ÖÃÊÀÇ ¹®Á¦¸¦ ¹Ì¼º³âÀÚ¸¦ ã´Â °Í°ú ¿¹Ä¡±Ý
10¸¸¿ø ÀÌ»óÀΠȸ¿øÀ» ã´Â °Í µÑ·Î ÂÉ°³¼ »ý°¢ÇÒ ¼ö ÀÖ´Ù. ÀζóÀκä·Î
¹Ì¼º³âÀÚ·Î ±¸¼ºµÈ Å×À̺íÀ» ¸¸µé¾î º°¸í A¸¦ ºÙÀδÙ. ±×¸®°í
A Å×ÀÌºí¿¡¼ ¿¹Ä¡±Ý 10¸¸¿ø ÀÌ»óÀ» ãÀ¸¸é µÈ´Ù. ÀÌ °æ¿ì´Â Á¶°ÇÀ» ¿¬°áÇÏ¿© ´õ ª°Ô ÇØ°áÇÒ ¼ö ÀÖ´Ù.
SELECT
member, addr FROM tMember WHERE age < 19 AND money >= 100000;
±×·¯³ª »ùÇÃÀÌ ¿ö³« ´Ü¼øÇØ ÇÑ ¹ø¿¡ º¹ÇÕ
Á¶°ÇÀ» ã¾Æ ³¾ ¼ö ÀÖÁö¸¸ ½Ç¹«¿¡¼´Â ÀÌ·± ¹æ½ÄÀÌ ºñÈ¿À²ÀûÀ̰ųª ºÒ°¡´ÉÇÑ °æ¿ì°¡ ÀÖ´Ù. ¿©·¯ º¹ÇÕ Á¶°ÇÀ»
ÇÑ ¹ø¿¡ Á¤È®È÷ ¸¸µé¾î³»´Â °ÍÀÌ ¿¹»óº¸´Ù ¾î·Æ´Ù. °úÀå ¶Ç´Â ºÎÀåÀÎ Á÷¿ø Áß ¼ºÃëµµ°¡ 70Á¡ ÀÌ»óÀÎ »ç¶÷À» ã¾Æ º¸ÀÚ.
SELECT *
FROM (SELECT * FROM tStaff WHERE grade = '°úÀå' OR grade
= 'ºÎÀå') A
WHERE
A.score >= 70;
ÀζóÀκä·Î °úÀå ¶Ç´Â ºÎÀåÀÎ Á÷¿øÀ» ¸ÕÀú
ã´Â´Ù. µÎ Á¶°ÇÀ» OR·Î ¿¬°áÇÏ´Â °ÍÀº ¾ÆÁÖ ½±´Ù. ÀζóÀκ䰡 ¸¸µç ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.
ÀÌ Å×À̺íÀº Àüü Á÷¿ø ¸ñ·Ï°ú´Â ´Þ¸®
°úÀå°ú ºÎÀ常 ¸ð¾Æ ³õÀº °ÍÀÌ´Ù. ÀÌ·¸°Ô ¸¸µç ÀζóÀκä A¿¡¼
¼ºÃëµµ°¡ 70Á¡ ÀÌ»óÀÎ Á÷¿øÀ» ´Ù½Ã °ñ¶ó³½´Ù. À±ºÀ±æ°ú ½Å»çÀӴ縸
³²´Â´Ù.
±×·³ ÀÌ °æ¿ìµµ Á¶°Ç½ÄÀ» Á¶ÇÕÇÏ¸é µÉ±î? °úÀå ¶Ç´Â ºÎÀåÀÌ¸é¼ ¼ºÃëµµ°¡ 70Á¡ ÀÌ»óÀÎ º¹ÇÕ Á¶°ÇÀ¸·Î Á÷¿øÀ»
ÇÊÅ͸µÇß´Ù. ¾óÇÍ º¸±â¿¡´Â ¸Â´Â °Í °°Áö¸¸ °á°ú´Â ¿ÏÀüÈ÷ µýÆÇÀ¸·Î ³ªÅ¸³´Ù.
SELECT *
FROM tStaff WHERE grade = '°úÀå' OR grade = 'ºÎÀå' AND score >= 70;
OR º¸´Ù´Â
ANDÀÇ ¿ì¼± ¼øÀ§°¡ ³ô¾Æ À§ Á¶°Ç¹®Àº °úÀå ¶Ç´Â ¼ºÃëµµ 70Á¡
ÀÌ»óÀÎ ºÎÀåÀ» °ñ¶ó³»±â ¶§¹®ÀÌ´Ù. ÀÌ Á¤µµ ¹®Á¦´Â °ýÈ£·Î ¿ì¼±¼øÀ§¸¸ Á¶Á¤Çصµ ½±°Ô ÇØ°áÇÒ ¼ö ÀÖÁö¸¸
Å« ¹®Á¦¸¦ ÇÑ ¹ø¿¡ Ç®·Á°í Çϸé ÀÌ·± ÇÔÁ¤ÀÌ °÷°÷¿¡ µµ»ç¸®°í ÀÖ´Ù.
ÀζóÀκ並 »ç¿ëÇϸé Å« ¹®Á¦¸¦ Àß°Ô ºÐÇÒÇÏ¿©
Çϳª¾¿ Ç® ¼ö ÀÖ´Ù. °úÀå ¶Ç´Â ºÎÀåÀ» ¸ÕÀú ã¾Æ Áß°£ Å×À̺íÀ» ¸¸µé¾î µÎ°í ±× Áß¿¡¼ ¼ºÃëµµ 70Á¡ ÀÌ»óÀ» °í¸£´Â °ÍÀÌ ´õ ½±´Ù. ÀÌ·± ±â¹ýÀ» ºÐÇÒ Á¤º¹À̶ó°í Çϸç
»ç°í°¡ Á÷¼±ÀûÀÌ¾î¼ ¹®Á¦¸¦ ´Ü°èÀûÀ¸·Î Ç®¾î ³ª°¥ ¼ö ÀÖ´Ù.
ÀζóÀκ並 Á¦´ë·Î ½á ¸ÔÀ¸·Á¸é ´õ º¹ÀâÇÏ°í
°ñÄ¡ ¾ÆÇ ¹®Á¦¸¦ ¸¸³ª ºÁ¾ß ÇÑ´Ù. ½Ç¹«¿¡¼ ±×·± ¹®Á¦´Â ¾ó¸¶µçÁö ¸¸µé ¼ö ÀÖÀ¸¹Ç·Î ¿©±â¼´Â Á¤ÀÇ¿Í
»ç¿ë ¹æ¹ý¸¸ Àß ¾Ë¾Æ µÎ°í ³Ñ¾î°¡ÀÚ.
¿¬½À ¹®Á¦
8.ÁÖ¹®
¹ÞÀº °Í Áß 10°³ ÀÌ»óÀÎ ´ë·® ÁÖ¹® Ç°¸ñÀ» ÀζóÀκä·Î Á¶»çÇØ º¸ÀÚ.
ÀζóÀκä´Â ¼ºêÄõ¸®¿¡ ÀÇÇØ ¸Þ¸ð¸®»ó¿¡¼
Àá½Ã »ý¼ºµÇ¾ú´Ù°¡ ´Ù »ç¿ëÇÏ°í ³ª¸é »ç¶óÁö´Â Àӽà Å×À̺íÀÌ´Ù. ¿µ±¸ÀûÀ¸·Î ÀúÀåÇÏ´Â DB °´Ã¼°¡ ¾Æ´Ï¾î¼ À̸§ÀÌ ¾ø´Ù. Äõ¸® ½ÇÇà Áß¿¡ ÀÌ Å×À̺íÀ» ĪÇÏ·Á¸é
À̸§ÀÌ ÀÖ¾î¾ß Çϴµ¥ Àӽà °´Ã¼¿¡ À̸§À» ºÙÀÏ ¶§´Â º°¸íÀ» »ç¿ëÇÑ´Ù.
SELECT
member, addr FROM (SELECT * FROM tMember WHERE age < 19) A
WHERE
A.money >= 100000;
¼ºêÄõ¸®·Î ¹Ì¼º³âÀÚ Å×À̺íÀ» ¸¸µé¾úÀ¸¸ç
ÀÌ Å×ÀÌºí¿¡¼ ¿¹Ä¡±Ý Çʵ带 Àоî Á¶°ÇÀ» °É¾î¾ß ÇÑ´Ù. ÀζóÀκä´Â tMember¿¡¼
ÀϺΠµ¥ÀÌÅ͸¸ °£Ã߸° °ÍÀÌ¾î¼ tMember¿Í´Â ´Ù¸¥ Å×À̺íÀÌ¸ç µû¶ó¼ ¿¹Ä¡±ÝÀ» tMember.money¶ó°í ĪÇÒ ¼ö´Â ¾ø´Ù. ±×·¡¼ ÀζóÀκ信 º°¸í
A¸¦ ºÙÀÌ°í A.money·Î Àд´Ù.
º°¸íÀº ±¸ºÐÀÌ ¸ñÀûÀÌ°í ÀÓ½ÃÀûÀÎ °ÍÀ̾î¼
¾î¶² °ÍÀÌ¶óµµ »ó°ü¾ø´Ù. °¡±ÞÀû ÀǹÌÀÖ´Â À̸§À» ºÙ¿© tChild Á¤µµ°¡
Àû´çÇÏ´Ù. ±×·¯³ª ÀÔ·ÂÇϱ⠱ÍÂúÀ¸´Ï º¸Åë ¾ËÆĺª ÇѵÎÀڷΠª°Ô ºÙÀδÙ.
ÀζóÀκ䰡 ÀÓ½ÃÀûÀÎ Å×À̺íÀÌ´Ù º¸´Ï Â÷ÈÄ ÂüÁ¶¸¦ À§ÇØ º°¸íÀÌ ²À ÇÊ¿äÇÔÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ
Äõ¸®´Â ¸ðµç DBMS¿¡¼ ´Ù Àß ½ÇÇàµÈ´Ù. ±×·¸´Ù¸é ´ÙÀ½
Äõ¸®´Â ¾î¶³±î?
SELECT *
FROM (SELECT * FROM tCity WHERE metro = 'y') A;
±¤¿ª½Ã¸¸À¸·Î Àӽà Å×À̺íÀ» »ý¼ºÇÏ°í º°¸í
A¸¦ ºÙ¿´Áö¸¸ ÀζóÀκäÀÇ Çʵ带 ÂüÁ¶ÇÏÁö ¾Ê¾Æ ÀÌ º°¸íÀ» »ç¿ëÇÏÁö´Â ¾Ê´Â´Ù. ±×·³ ¾²Áöµµ ¾ÊÀ» º°¸íÀº »ý·«Çصµ µÇÁö ¾ÊÀ»±î? ¿À¶óŬÀº ¹Ì»ç¿ë
º°¸íÀ» »ý·«ÇÒ ¼ö ÀÖÁö¸¸ SQL Server¿Í MariaDB´Â
º°¸íÀ» »ý·«ÇÏ¸é ¿¡·¯ ó¸®ÇÑ´Ù.
ÀζóÀκäÀÇ Çʵ带 ÂüÁ¶ÇÒ °æ¿ì°¡ ÈçÇÏ°í
´çÀåÀº ¾²Áö ¾Ê´õ¶óµµ ¾ÕÀ¸·Î ¾µ ÀÏÀÌ ÀÖÀ»°Å °°À¸´Ï ¹Ì¸® À̸§À» ºÙ¿© ³õÀ¸¶ó´Â ¶æÀÌ´Ù. °Á¦°¡ Á» ½ÉÇÑ
°Å °°Áö¸¸ ÀζóÀκ並 ¸¸µé¾î ³õ°í ±×³É Ãâ·Â¸¸ ÇÏ´Â °æ¿ì°¡ ´õ µå¹°´Ù. ¾²µç ¾È¾²µç ÀÏ°üµÇ°Ô º°¸íÀ»
ºÙÀÏ °ÍÀ» ±ÇÇÑ´Ù.
º°¸íÀÇ »ý·«À» Çã¿ëÇÏ´Â ¿À¶óŬÀÌ ´õ °ü´ëÇÏ´Ù. ±×·¯³ª ¿À¶óŬÀº ¶Ç ´Ù¸¥ Á¦¾àÀÌ ÀÖ´Ù. Çʵ峪 Å×ÀÌºí¿¡ º°¸íÀ» ºÙÀÏ
¶§´Â ÀüÄ¡»ç AS¸¦ »ç¿ëÇÏ¿© º°¸íÀÓÀ» È®½ÇÈ÷ Ç¥ÇöÇÏ´Â °ÍÀÌ º¸ÅëÀÌ´Ù.
A¸¸ È¥ÀÚ ÀÖÀ¸¸é Àß º¸ÀÌÁö ¾ÊÁö¸¸ AS°¡ ÀÖÀ¸¸é ´«¿¡ Àß ¶ç¾î °¡µ¶¼ºÀÌ Çâ»óµÈ´Ù.
SELECT *
FROM (SELECT * FROM tCity WHERE metro = 'y') AS A;
±×·¯³ª ÀÌ ¹®¹ýÀº SQL Server¿Í MariaDB¿¡¼´Â ÅëÇÏÁö¸¸ ¿À¶óŬÀº ¿¡·¯ ó¸®ÇÑ´Ù. ¿À¶óŬÀº ¾Æ¿¹ º°¸íÀ» ºÙÀÌÁö ¸»µç°¡ ¾Æ´Ï¸é AS ¾øÀÌ º°¸í¸¸ ºÙ¿©¾ß
ÇÑ´Ù. Âü ±î´Ù·Ó´Ù.
´ÙÀ½Àº Çʵ忡 ´ëÇÑ º°¸í ±ÔÄ¢À» Á¤¸®ÇØ
º¸ÀÚ. Çʵ忡µµ º°¸íÀ» ºÙÀÏ ¼ö ÀÖÀ¸¸ç À̶§ ÀüÄ¡»ç AS´Â
À־ µÇ°í ¾ø¾îµµ »ó°ü¾ø´Ù. ¸ðµç DBMS°¡ ASÀÇ »ý·«À» Çã¿ëÇ쵂 ºÙÀÌ´Â °ÍÀÌ º¸±â ÁÁ´Ù.
SELECT
name, popu * 10000 AS ingu FROM tCity;
tCityÀÇ
Àα¸°¡ ¸¸¸í ´ÜÀ§¿©¼ 10000À» °öÇØ ¸í¼ö ´ÜÀ§·Î ¹Ù²Ù°í ingu¶ó´Â
º°¸íÀ» ºÙ¿´´Ù. ±×·³ Àα¸°¡ ¹é¸¸ ÀÌ»óÀ̶ó´Â Á¶°ÇÀº ¾î¶»°Ô ºÙÀϱî?
SELECT
name, popu * 10000 AS ingu FROM tCity WHERE ingu > 1000000;
ÀÌ°Ç ¾ÈµÈ´Ù. ingu´Â tCity¿¡ ÀÖ´Â ÁøÂ¥ Çʵå¸íÀÌ ¾Æ´Ï¶ó ÇÊµå ¸ñ·Ï¿¡¼
Àá½Ã Á¤ÀÇÇÑ º°¸íÀ̱⠶§¹®ÀÌ´Ù. ²À Á¶°ÇÀ» ºÙÀÌ·Á¸é WHERE
popu > 100 ÀÌ·¸°Ô ºÙ¿©¾ß Çϴµ¥ ¸í¼ö ´ÜÀ§°¡ ¾Æ´Ï¾î¼ ¶Ç Çò°¥¸°´Ù. Á¤ ingu Çʵ带 ¾²°í ½ÍÀ¸¸é ÀζóÀκ信 º°¸íÀ» ºÙÀÌ°í ÀÌ º°¸íÀ» ¾Õ¿¡ ºÙÀÌ¸é µÈ´Ù.
SELECT *
FROM (
SELECT name, popu *
10000 AS ingu FROM tCity
) A
WHERE
A.ingu > 1000000;
ÀÌ°Ç Àß µÈ´Ù. ingu´Â ÀζóÀκä AÀÇ ÇʵåÀÌ¸ç ¿ÜºÎÄõ¸®¿¡¼ A¸¦ Àаí ÀÖÀ¸¹Ç·Î ±× Çʵ带 Á¶°Ç¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿ÀÈ÷·Á WHERE popu > 100Àº ¿¡·¯ 󸮵ȴÙ. ¿À¶óŬÀº ÀζóÀκäÀÇ
º°¸íÀ» ¾Æ¿¹ »© ¹ö¸®°í ingu¸¦ ±×³É ĪÇصµ µÈ´Ù.
SELECT *
FROM (
SELECT name, popu *
10000 AS ingu FROM tCity
)
WHERE ingu
> 1000000;
ÀζóÀÎºä ¹Ù·Î ´ÙÀ½ÀÇ WHERE ÀýÀÌ´Ï ´©±¸ÀÇ ÇʵåÀÎÁö ¾Ö¸ÅÇÏÁö´Â ¾Ê´Ù. ¿À¶óŬÀº ²À ÇÊ¿äÄ¡
¾ÊÀº º°¸íÀÇ »ý·«À» Çã¿ëÇÏÁö¸¸ SQL Server¿Í MariaDB¿¡¼´Â
ÀζóÀκäÀÇ º°¸íÀÌ ÇʼöÀÌ´Ù. Äõ¸®°¡ ´õ º¹ÀâÇØÁö¸é ¸ðÈ£ÇÔÀÌ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ¾î ¾Æ¿¹ ÀζóÀκäÀÇ º°¸í
»ý·«À» Çã¿ëÇÏÁö ¾Ê´Â´Ù.
¾çÂÊ ´Ù ÀÌÀ¯´Â ÀÖÁö¸¸ º°¸íÀ» ºÙÀÌ´Â
±ÔÄ¢ÀÌ Á» º¹ÀâÇÏ´Ù. ÇʵåÀÇ º°¸íÀº ÇÊ¿äÇÒ ¶§¸¸ ºÙÀÌ°í AS´Â
À־ µÇ°í ¾ø¾îµµ µÈ´Ù. ÀζóÀκ信 ´ëÇÑ º°¸íÀº Ç×»ó ºÙÀÌµÇ AS´Â
¾²Áö ¸»¾Æ¾ß ÇÑ´Ù. ÀÌ ±ÔÄ¢¸¸ ÁöÅ°¸é ¸ðµç DBMS¿¡¼ ´Ù
½ÇÇàÇÒ ¼ö Àִ ȣȯ¼º ÁÁÀº Äõ¸®°¡ µÈ´Ù.
tCity¿¡´Â
Àα¸¿Í ¸éÀû¿¡ ´ëÇÑ Á¤º¸°¡ ÀÖ¾î ÀÌ µÑÀ» Á¶ÇÕÇϸé Àα¸¹Ðµµ¸¦ °è»êÇÒ ¼ö ÀÖ´Ù. Àα¸¼ö¸¦ ¸éÀûÀ¸·Î ³ª´©´Â
°£´ÜÇÑ ¼ö½ÄÀÌ¸é µÈ´Ù. °è»ê½ÄÀ¸·Î ¸¸µç Çʵ忡 dens¶ó´Â
º°¸íÀ» ºÙ¿´´Ù. ´ÙÀ½ Äõ¸®´Â µµ½Ã¸í°ú Àα¸¹Ðµµ¸¦ Ãâ·ÂÇÑ´Ù.
SELECT
name, (popu * 10000 / area) AS dens FROM tCity;
±ä °è»ê½ÄÀ» ¿©·¯ ¹ø ÂüÁ¶Çϸé Äõ¸®¹®µµ
°°ÀÌ ±æ¾îÁø´Ù. Àα¸¹Ðµµ·ÎºÎÅÍ µî±ÞÀ» ³ª´©¾î Ç¥½ÃÇØ º¸ÀÚ. ÀÌ·²
¶§´Â Á¶°Ç¿¡ µû¶ó °ªÀ» ¼±ÅÃÇÏ´Â CASE ¹®À» »ç¿ëÇϴµ¥ ¹Ì¸® ¿¹½ÀÀ» ÇÏ°í ¿ÀÀÚ. 1000¸í ÀÌ»óÀº °í¹Ðµµ 100¸í ÀÌ»óÀº Á߹еµ ±× ÀÌÇÏ´Â Àú¹Ðµµ·Î
µî±ÞÀ» ³ª´©¾ú´Ù.
SELECT
name, (popu * 10000 / area) AS dens
,CASE
WHEN
(popu * 10000 / area) > 1000 THEN '°í¹Ðµµ'
WHEN
(popu * 10000 / area) > 100 THEN 'Á߹еµ'
ELSE
'Àú¹Ðµµ'
END densgrade
FROM
tCity;
Àα¸¹Ðµµ °è»ê½ÄÀÌ Ãâ·Â¹®°ú CASE ¹®ÀÇ Á¶°Ç½Ä¿¡ ¿©·¯ ¹ø ³ªÅ¸³´Ù. ÀÌ Á¤µµ ¼ö½ÄÀÌ¸é ±×³ª¸¶
ªÀº °ÍÀÌ¸ç ¿©·¯ °³ÀÇ °ªÀ» Á¶ÇÕÇϸé 100ÀÚ ÀÌ»óÀÇ ¼ö½Äµµ ÈçÇÏ´Ù.
¶È°°Àº ¼ö½ÄÀ» ¹Ýº¹Çϸé Â¥Áõ³¯ »Ó¸¸ ¾Æ´Ï¶ó ½Ç¼öÇÒ °¡´É¼ºµµ ³ô¾ÆÁø´Ù. ¹Ýº¹ÀûÀÎ ±¸¹®Àº ÇÕÄ¡´Â
°ÍÀÌ ÁÁ´Ù. ¼ö½Ä¿¡ dens¶ó´Â º°¸íÀ» ÁÖ¾úÀ¸´Ï ÀÌ°É ¾²¸é
µÇÁö ¾ÊÀ»±î?
SELECT
name, (popu * 10000 / area) AS dens
,CASE
WHEN
dens > 1000 THEN '°í¹Ðµµ'
WHEN
dens > 100 THEN 'Á߹еµ'
ELSE
'Àú¹Ðµµ'
END densgrade
FROM
tCity;
µÉ °Å °°Áö¸¸ FROM ÀýÀÇ ¾Õ Çʵ忡¼ ºÙÀÎ º°¸íÀ» ¹Ù·Î µÚÀÇ Çʵ忡¼ ÂüÁ¶ÇÒ ¼ö´Â ¾ø´Ù. Àα¸¹Ðµµ¿Í
µî±ÞÀº °°Àº ·¹º§ÀÇ ÇÊµå ¸ñ·Ï¿¡ ¼ÓÇØ ÀÖÀ¸¸ç dens¸¦ Á¤ÀÇÇÏ´Â Áß¿¡ »ç¿ëÇÒ ¼ö´Â ¾ø´Ù. ÀÌ·² ¶§´Â dens¸¦ Çʵå·Î °¡Áö´Â ÀζóÀκ並 Á¤ÀÇÇÏ°í ÀζóÀκäÀÇ
Çʵ带 ÀÐÀ¸¸é µÈ´Ù.
SELECT
name, dens
,CASE
WHEN
dens > 1000 THEN '°í¹Ðµµ'
WHEN
dens > 100 THEN 'Á߹еµ'
ELSE
'Àú¹Ðµµ'
END densgrade
FROM
(
SELECT name, (popu * 10000
/ area) AS dens FROM tCity
) CD;
CD ÀζóÀκ信¼
°è»ê½ÄÀ» ÇϳªÀÇ Çʵ带 Á¤ÀÇÇÏ°í dens º°¸í±îÁö ºÙ¿© ³õ¾Ò´Ù. ÀζóÀκ丸
µû·Î ½ÇÇàÇÏ¸é ¸¶Ä¡ name°ú dens¸¦ Çʵå·Î °¡Áö´Â Å×À̺í°ú
°°´Ù. ¿ÜºÎÄõ¸®¿¡¼´Â CD.dens·Î Àα¸¹Ðµµ¸¦ ¾ó¸¶µçÁö
¿©·¯ ¹ø ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.
°è»ê½ÄÀ» ÀζóÀκ信 Æ÷ÇÔ½ÃÅ°°í ¿ÜºÎÄõ¸®¿¡¼´Â
º°¸íÀ¸·Î Çʵå ÀеíÀÌ Àд´Ù. ¿ö³« Á¤ÇüÈµÈ ÆÐÅÏÀÌ¸ç »ç¿ë ºóµµ°¡ ³ô¾Æ Àß ±â¾ïÇØ µÎ¾î¾ß ÇÑ´Ù. ½ÄÀÌ Âª°í °íÀÛ ¼¼ ¹øÀÌ¾î¼ ½Ç°¨ÀÌ ¾È³ª°ÚÁö¸¸ ½Ç¹«¿¡¼´Â ¼ö½Äµµ ±æ°í ´õ ÀÚÁÖ »ç¿ëÇÑ´Ù.
ÀÌ ÆÐÅÏÀ» ÀÌÇØÇßÀ¸¸é ´ÙÀ½ ¹®Á¦¸¦ °è¼Ó
Ç®¾î º¸ÀÚ. Àα¸¿Í ¸éÀûÀ¸·Î Àα¸¹Ðµµ¸¦ °è»êÇÏ°í Àα¸¹Ðµµ·ÎºÎÅÍ µî±ÞÀ» ¸¸µé¾ú´Ù. ÀÌ µî±Þµµ ¿©·¯ ¹ø »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î µî±Þ¿¡ µû¸¥ ÇÊ¿ä
¿¹»êÀ̳ª µµ·Î¸Á È®Ãæ °èȹ µîÀ» ¶Ç ¸¸µé ¼ö ÀÖ´Ù. Àα¸¹Ðµµ¸¦ ±¸ÇÏ´Â °è»ê½Ä¿¡ ºñÇØ µî±ÞÀ» ±¸ÇÏ´Â CASE ¹®ÀÌ ÈξÀ ´õ ±æ¾î ¹Ýº¹ÀÇ Á¤µµ°¡ ½ÉÇØÁø´Ù.
SELECT
name, dens
,CASE
WHEN
dens > 1000 THEN '°í¹Ðµµ'
WHEN
dens > 100 THEN 'Á߹еµ'
ELSE
'Àú¹Ðµµ'
END densgrade
,
CASE
WHEN
CASE
WHEN dens > 1000 THEN '°í¹Ðµµ'
WHEN dens > 100 THEN 'Á߹еµ'
ELSE 'Àú¹Ðµµ'
END
= '°í¹Ðµµ' THEN '8Â÷·Î'
WHEN
CASE
WHEN dens > 1000 THEN '°í¹Ðµµ'
WHEN dens > 100 THEN 'Á߹еµ'
ELSE 'Àú¹Ðµµ'
END
= 'Á߹еµ' THEN '4Â÷·Î'
ELSE '2Â÷·Î'
END roadplan
FROM
(
SELECT name, (popu *
10000 / area) AS dens FROM tCity
) CD;
Àα¸¹Ðµµ°¡ ³ôÀ¸¸é 8Â÷·Î µµ·Î¸¦ ±ò°í Àû´çÇϸé 4Â÷·Î,
¹Ðµµ°¡ ³·À¸¸é 2Â÷·Î µµ·Î¸¦ ±ñ´Ù. ¹®Á¦´Â µî±ÞÀ»
±¸ÇÏ´Â CASE ¹®ÀÌ °è¼Ó ¹Ýº¹µÈ´Ù´Â °ÍÀÌ´Ù. ¾Õ ½Ç½À¿¡¼
dens¸¦ ¼ö½Ä¿¡ ¹Ù·Î ¾µ ¼ö ¾ø¾ú´ø °Í°ú ¸¶Âù°¡Áö ÀÌÀ¯·Î ÇÊ¿äÇÑ µµ·Î¸¦ °áÁ¤Çϴµ¥µµ densgrade¸¦ ¹Ù·Î ¾µ ¼ö ¾ø´Ù.
°°Àº ·¹º§¿¡¼´Â CASE ¹®À» ¹Ýº¹ÇÏ´Â ¼ö¹Û¿¡ ¾ø°í ±×·¯´Ù º¸´Ï ±æ°í ÁöÀúºÐÇØÁø´Ù. ÀÚ, ÀÌ »óȲÀ» º¸¸é ¹Ýº¹À» ¾î¶»°Ô ÇؼÒÇÒÁö °¨ÀÌ ¿Ã °ÍÀÌ´Ù. ÇÑ ¹ø
´õ ÀζóÀκä·Î °¨½Î densgrade¸¦ º¯¼ö·Î Á¤ÀÇÇÏ°í ¿ÜºÎ¿¡¼´Â ÀÌ º¯¼ö¸¦ ÀÐÀ¸¸é µÈ´Ù. ±æÀ̸¸ ±æ»Ó ¶È°°Àº ÆÐÅÏÀÌ´Ù. Á÷Á¢ ¸¸µé¾î º¸ÀÚ.
SELECT
name, dens, densgrade,
CASE
WHEN densgrade = '°í¹Ðµµ' THEN '8Â÷·Î'
WHEN densgrade = 'Á߹еµ' THEN '4Â÷·Î'
ELSE '2Â÷·Î'
END
roadplan
FROM
(
SELECT name, dens
,CASE
WHEN dens > 1000 THEN '°í¹Ðµµ'
WHEN dens > 100 THEN 'Á߹еµ'
ELSE 'Àú¹Ðµµ'
END
densgrade
FROM
(
SELECT name, (popu * 10000 / area) AS dens FROM tCity
) CD
) CR;
densgrade¸¦
Çʵå·Î Æ÷ÇÔÇÏ´Â ÀζóÀκ並 Á¤ÀÇÇÑ´Ù. ÀζóÀκ信¼ ÀÌ¹Ì µî±ÞÀ» ´Ù °è»êÇØ µÎ¾úÀ¸´Ï ¿ÜºÎÄõ¸®´Â densgrade¸¦ ±×³É À̸§À¸·Î ÂüÁ¶ÇÏ¸é µÈ´Ù. CASE ¹®ÀÇ ÁßøÀº
»ç¶óÁö°í Á¦ÀÏ ¹Ù±ùÀÇ ÇÊµå ¸ñ·Ï¿¡¼ densgrade·ÎºÎÅÍ ÇÊ¿äÇÑ µµ·ÎÆøÀ» ÇÑ ¹ø¿¡ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. SELECT°¡ ¼¼ ¹ø ÁßøµÇ¾ú´Ù.
¾ÈÂÊ : name Çʵå¿Í
°è»ê¿¡ ÀÇÇØ »ý¼ºÇÑ dens Çʵå
Áß°£ : name,
dens Çʵå¿Í dens·ÎºÎÅÍ °è»êÇÑ densgrade Çʵå
¹Ù±ù : name,
dens, densgrade Çʵå¿Í densgrade·ÎºÎÅÍ °è»êÇÑ roadplan
½Ç¹«¿¡¼´Â ÀÌ·± ½ÄÀ¸·Î ³× ¹ø, ´Ù¼¸ ¹ø ÁßøÇÏ´Â °æ¿ì°¡ Çã´ÙÇÏÁö¸¸ ¹æ½ÄÀº ¶È°°´Ù. ¿©·¯ ¹ø »ç¿ëÇÒ
°è»ê½ÄÀ» ÀζóÀκ信¼ Çʵå·Î Á¤ÀÇÇÏ°í ±× ¹Ù±ù¿¡¼´Â Çʵ带 »ç¿ëÇÏ´Â °ÍÀÌ´Ù. Áö±Ý ´çÀåÀº ÀÌ ½Ç½ÀÀ»
ÇØ º¸±â ±ÍÂú°ÚÁö¸¸ ¿©±â¼ È®½ÇÈ÷ °³³äÀ» ÀÍÇô µÎ¸é ¾î¶² ÁßøÀ̵ç ôô ¸¸µé¾î³¾ ¼ö ÀÖ´Ù.
ÀÌ·± ÁßøµÈ SELECT ¹®À» ºÐ¼®ÇÒ ¶§´Â ¾ÈÂʺÎÅÍ ¼ø¼´ë·Î ¾î¶² Å×À̺íÀ» ¸¸µå´ÂÁö Àß ºÁ¾ß ÇÑ´Ù. ÀζóÀκ信¼ ¹» Á¤ÀÇÇÏ´ÂÁö, ¿ÜºÎÄõ¸®¿¡¼ ÀζóÀκ並 ¾î¶»°Ô È°¿ëÇÏ´ÂÁö
»ìÆ캸¸é ¿Ö ÀÌ·± º¹ÀâÇÑ ¹®ÀåÀÌ ÇÊ¿äÇÑÁö ÀÌÇØÇÒ ¼ö ÀÖ´Ù.