9-3.ÀζóÀκä

1.SELECTÀÇ Áßø

¼­ºêÄõ¸®´Â °ªÀÌ ¿Ã ¼ö ÀÖ´Â °÷ÀÌ¸é ¾îµð³ª ¿Ã ¼ö ÀÖÁö¸¸ ÁÖ·Î ´ÙÀ½ ¼¼ °÷¿¡¼­ »ç¿ëÇÑ´Ù. À§Ä¡¿¡ µû¶ó °ªÀ» »ç¿ëÇÏ´Â ¿ëµµ°¡ ´Ù¸£´Ù.

 

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°³ ÀÌ»óÀÎ ´ë·® ÁÖ¹® Ç°¸ñÀ» ÀζóÀκä·Î Á¶»çÇØ º¸ÀÚ.

2.ÀζóÀκäÀÇ º°¸í

ÀζóÀκä´Â ¼­ºêÄõ¸®¿¡ ÀÇÇØ ¸Þ¸ð¸®»ó¿¡¼­ Àá½Ã »ý¼ºµÇ¾ú´Ù°¡ ´Ù »ç¿ëÇÏ°í ³ª¸é »ç¶óÁö´Â Àӽà Å×À̺íÀÌ´Ù. ¿µ±¸ÀûÀ¸·Î ÀúÀåÇÏ´Â 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¿¡¼­ ´Ù ½ÇÇàÇÒ ¼ö Àִ ȣȯ¼º ÁÁÀº Äõ¸®°¡ µÈ´Ù.

3.¹Ýº¹µÇ´Â º¯¼ö

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 ¹®À» ºÐ¼®ÇÒ ¶§´Â ¾ÈÂʺÎÅÍ ¼ø¼­´ë·Î ¾î¶² Å×À̺íÀ» ¸¸µå´ÂÁö Àß ºÁ¾ß ÇÑ´Ù. ÀζóÀκ信¼­ ¹» Á¤ÀÇÇÏ´ÂÁö, ¿ÜºÎÄõ¸®¿¡¼­ ÀζóÀκ並 ¾î¶»°Ô È°¿ëÇÏ´ÂÁö »ìÆ캸¸é ¿Ö ÀÌ·± º¹ÀâÇÑ ¹®ÀåÀÌ ÇÊ¿äÇÑÁö ÀÌÇØÇÒ ¼ö ÀÖ´Ù.