AUTO
[ID/PWã±â] [ȸ¿ø°¡ÀÔ]
´º½º¿Í Á¤º¸ (262)
ÀÚÀ¯ °Ô½ÃÆÇ (372)
°¡ÀÔ Àλç (1946)
°øÁö»çÇ× (5)
AJAX ÇнÀ (63)
ASP Áú¹® (65)
ASP ÇнÀ (265)
MYSQL ÇнÀ (66)
SQLSERVER ÇнÀ (327)
¿À¶óŬ ÇнÀ (60)
µ¥ÀÌŸº£À̽º ÇнÀ (23)
¾×¼Ç½ºÅ©¸³Æ® ÇнÀ (255)
¾×¼Ç½ºÅ©¸³Æ® Áú¹® (57)
ÆÛ¿Â Ç÷¡½Ã (198)
Ç÷¡½Ã ³×ºñ°ÔÀÌ¼Ç (52)
Ç÷¡½Ã ¼Ò½º (525)
Ç÷¡½Ã ¿¬±¸½Ç (529)
Ç÷¡½Ã Áú¹® (640)
Ç÷¡½Ã °ÔÀÓ (46)
Ç÷¡½Ã ÀÎÆ®·Î (37)
Ç÷¡½Ã ÀÌÆåÆ® (38)
ÀÚÀÛ Ç÷¡½Ã (76)
ű×,HTML Áú¹® (34)
ű×,HTML ÇнÀ (124)
ÀÚ¹Ù,JSP ÇнÀ (154)
ÀÚ¹Ù,JSP Áú¹® (63)
ÀÚ¹Ù½ºÅ©¸³Æ® ÇнÀ (216)
ÀÚ¹Ù½ºÅ©¸³Æ® ¼Ò½º (67)
ÀÚ¹Ù½ºÅ©¸³Æ® Áú¹® (73)
Æ÷Åä¼¥ Áú¹® (101)
Æ÷Åä¼¥ ÇнÀ (360)
Ãßõ À̹ÌÁö (233)
ÀÚÀÛ À̹ÌÁö (73)
ÆÛ¿Â À̹ÌÁö (437)
PHP Áú¹® (56)
PHP ÇÔ¼ö (2649)
PHP ÇнÀ (655)
ÇÁ·Î±×·¡¹Ö ÇнÀ (199)
ÀÎÅͳݼ­¹ö ÇнÀ (338)
ÀÎÅͳݼ­¹ö Áú¹® (14)
³×À̹ö ¼Ó ȨÇǵðÀÚÀδåÄÄ
´ÙÀ½ ¼Ó ȨÇǵðÀÚÀδåÄÄ
±¸±Û ¼Ó ȨÇǵðÀÚÀδåÄÄ
¿¥ÆÄ½º ¼Ó ȨÇǵðÀÚÀδåÄÄ
¾ßÈÄ ¼Ó ȨÇǵðÀÚÀδåÄÄ
³×ÀÌÆ® ¼Ó ȨÇǵðÀÚÀδåÄÄ
½ÎÀÌ¿ùµå ȨÇǵðÀÚÀδåÄÄ
¿¥¿¡½º¿£ ȨÇǵðÀÚÀδåÄÄ
  ȨÇǵðÀÚÀδåÄÄ > SQLSERVER ÇнÀ
   
  SQL ¼ýÀÚ, ¹®ÀÚ¿­ ÇÔ¼ö ·¹ÆÛ·±½º
  ±Û¾´ÀÌ : ¼Õ´Ô     ³¯Â¥ : 06-07-26 09:25     Á¶È¸ : 5616    
   http://cafe.naver.com/q69/37321 (576)
SQL¹®¿¡¼­ ¾²ÀÌ´Â ÇÔ¼öµé°ú ƯÁ¤ Ä÷³ÀÇ °ªÀ» ±×·ìÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Â GROUP BY,  
ƯÁ¤ Ä÷³ÀÇ °ªÀ» ³»¸²Â÷¼ø ȤÀº ¿À¸§ Â÷¼øÀ¸·Î Á¤·ÄÇØ ÁÖ´Â ORDER BY¿Í ¾Õ ȸ¿¡¼­ ¹è¿î Á¶ÀÎ(Join)¸¸Å­À̳ª Áß¿äÇÑ  
¼­ºêÄõ¸®(SubQuery)¿¡ ´ëÇØ¼­ »ìÆìº»´Ù. 
 
SQL¹®¿¡¼­ ¾²ÀÌ´Â ÇÔ¼öµé  
SQL¹®¿¡¼­ ¾²ÀÌ´Â ÇÔ¼öµéÀº »ý°¢ ÀÌ»óÀ¸·Î ¸¹´Ù. ±×·¸Áö¸¸ ½ÇÁö·Î ¾²ÀÌ´Â °ÍÀº ºñ±³Àû ÀûÀ¸¸ç ¿ì¸®´Â ÀÚÁÖ ¾²ÀÌ´Â  
ÇÔ¼ö¸¦ Áß½ÉÀ¸·Î ¾Ë¾Æ º¼ °ÍÀÌ´Ù. ¸¸¾à ´õ ¸¹Àº ÇÔ¼öµéÀ» ¾Ë°í ½Í´Ù¸é °¢°¢ÀÇ µ¥ÀÌÅÍ º£À̽º »çÀÌÆ®¸¦ ¹æ¹®ÇØ º¸±æ ¹Ù¶õ´Ù. 
Âü°í·Î ÀÌ ÇÔ¼öµéÀº mysql¿¡¼­ »ç¿ëÇÏ´Â ÇÔ¼öµéÀÌ¸ç °¢°¢ÀÇ µ¥ÀÌÅÍ º£À̽ºº°·Î ±â´ÉÀº °°Áö¸¸ ÇÔ¼ö À̸§Àº ´Ù¸¦ ¼ö ÀÖ´Ù.  
 
1) ¼ýÀÚ ÇÔ¼ö 
 
ABS(X) : X ¿¡ ÇØ´çÇÏ´Â Àý´ë °ªÀ» µ¹·ÁÁØ´Ù. 
SIGN(X) : XÀÇ °ªÀÇ ºÎÈ£ °ªÀ» µ¹·Á ÁØ´Ù.(-1 : À½¼ö, 0 : 0, 1 : ¾ç¼ö) 
MOD(N,M) : NÀ» MÀ¸·Î ³ª´« °ªÀÇ ³ª¸ÓÁö¸¦ µ¹·Á ÁØ´Ù. 
FLOOR(X) : ½Ç¼ö X °ªÀÇ ¼Ò¼öÁ¡ ÀÌÇÏÀÇ °ªÀº ¹ö¸²À» ÇÑ Á¤¼ö °ªÀ» µ¹·Á ÁØ´Ù. 
CEILING(X) : ½Ç¼ö X °ªÀÇ ¼Ò¼öÁ¡ ÀÌÇÏÀÇ °ªÀ» ¿Ã¸²À» ÇÑ Á¤¼ö °ªÀ» µ¹·Á ÁØ´Ù. 
ROUND(X,D) : ½Ç¼ö X °ª¿¡¼­ ¼Ò¼öÁ¡¿¡¼­ D + 1¹øÂ°¿¡ ÇØ´çÇÏ´Â °ªÀ» ¿Ã¸²ÇÑ °ªÀ» µ¹·Á ÁØ´Ù. 
POWER(X,Y) : XÀÇ °ªÀ» Y¹ø °öÇÑ °ªÀ» µ¹·Á ÁØ´Ù. 
RAND() : 0¿¡¼­ 1 »çÀÌÀÇ ¼ýÀÚ¸¦ ·£´ýÇÏ°Ô ¹ß»ý½Ã°Ü µ¹·ÁÁØ´Ù. 
 
SELECT abs(-2),abs(2),sign(-45),sign(0),sign(34),mod(23,7); 
SELECT floor(1,234),ceiling(1,234),round(2,49),round(2,51); 
SELECT power(3,2),power(3,3),rand(); 
 

¹®ÀÚ¿­ÇÔ¼ö

2) ¹®ÀÚ¿­ ÇÔ¼ö 
 
CHAR(N,...) : N(1-256ÀÇ Á¤¼Ò)°ªÀÇ ¾Æ½ºÅ°Äڵ带 ÇØ´ç ¹®ÀÚ·Î Ãâ·ÂÇÑ´Ù. 
CONCAT(str1,str2,...) : °¢°¢ÀÇ str1,str2,...µîÀ» ÇϳªÀÇ ½ºÆ®¸µÀ¸·Î µ¹·Á ÁØ´Ù. ´Ü, NULL ÀÌ ÀÖÀ¸¸é NULL À» Ãâ·ÂÇÑ´Ù. 
CONCAT_WS(separator, str1, str2,...) : °¢°¢ÀÇ str1,str2,...µîÀ» separatorÀ» ±¸ºÐÀÚ·Î »ç¿ëÇÏ¿© ÇϳªÀÇ ½ºÆ®¸µÀ¸·Î Ãâ·ÂÇÑ´Ù.  
LENGTH(str) : strÀÇ ¹®ÀÚÀÇ ±æÀ̸¦ Ãâ·ÂÇÑ´Ù. 
 
SELECT char(48),char(76),concat(('My','S','ql'),concat('My',NULL,'Sq;'); 
SELECT concat_ws(',','My',NULL,'Sql',' ','is',' ','Good'); 
SELECT length('mysql'),locate('bar','foobarbar'); 
 
 
[±×¸²2] ¹®ÀÚ ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
LOCATE(substr,str) : str¿¡¼­ substrÀÌ À§Ä¡ÇÑ Ã¹¹øÂ° À§Ä¡¸¦ Á¤¼ö °ªÀ¸·Î Ãâ·ÂÇÑ´Ù. 
LEFT(str,len) : str¿¡¼­ ÁöÁ¤ÇØÁØ ÀÚ¸´¼ö len¸¸Å­ ¿ÞÂÊ¿¡¼­ºÎÅÍ ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù. 
RIGHT(str,len) : str¿¡¼­ ÁöÁ¤ÇØÁØ ÀÚ¸´¼ö len¸¸Å­ ¿À¸¥ÂÊ¿¡¼­ºÎÅÍ ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù. 
SUBSTRING(str,pos,len) : ¹®ÀÚ¿­ str¿¡¼­ ƯÁ¤ ½ÃÀÛÀ§Ä¡ pos¿¡¼­ ÁöÁ¤µÈ ±æÀÌ len¸¸Å­ ¹®ÀÚ¸¦ Ãâ·ÂÇÑ´Ù. 
LTRIM(str),RTRIM(str),TRIM(str) : strÀÇ ¿ÞÂÊ,¿À¸¥ÂÊ,ȤÀº ¾çÂÊ ¸ðµÎÀÇ °ø¹é ¹®ÀÚ¸¦ Á¦°ÅÇØ ÁØ´Ù. 
 
SELECT left('mysql is good',3),right('mysql is good',3); 
SELECT substring('mysql is good',1,5); 
SELECT ltrim('        mysql'),rtrim(mysql       '),trim('     mysql       '); 
 
 
[±×¸²3] ¹®ÀÚ ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
SPACE(N) : N°³ ¸¸Å­ÀÇ °ø¹é ¹®ÀÚ¸¦ ¸¸µé¾î Ãâ·ÂÇÑ´Ù. 
REPLACE(str,from_str,to_str) : ¹®ÀÚ¿­ str¿¡¼­ ƯÁ¤¹®ÀÚ from_strÀ» ƯÁ¤ ¹®ÀÚ to_str·Î ¹Ù²Ù¾î Ãâ·ÂÇÑ´Ù. 
REPEAT(str,count) : ¹®ÀÚ¿­ strÀ» count °¹¼ö¸¸Å­ ¹Ýº¹ÇÏ¿© ¹Ýº¹ÇÑ °ªÀ» Ãâ·ÂÇÑ´Ù. 
REVERSE(str) : ¹®ÀÚ¿­ strÀ» ¿ªÀ¸·Î Ãâ·Â ÇÑ´Ù. 
INSERT(str,pos,len,newstr) : ¹®ÀÚ¿­ str¿¡¼­ ƯÁ¤ À§Ä¡ pos¿¡¼­ ƯÁ¤ ±æÀÌ len ¸¸Å­À» newstr¹®ÀÚ¿­·Î ¹Ù²Ù¾î Ãâ·ÂÇÑ´Ù.  
SELECT concat('a',space(6),'a'); 
SELECT replace('mysql is good','is','very'),repeat('a',3); 
SELECT reverse('mysql'),insert('Quadratic',3,4,'What'); 
 
 
[±×¸²4] ¹®ÀÚ ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
LCASE(str) : ¹®ÀÚ¿­ strÀ» ¼Ò¹®ÀÚ·Î ¹Ù²Ù¾î Ãâ·ÂÇÑ´Ù. 
UCASE(str) : ¹®ÀÚ¿­ strÀ» ´ë¹®ÀÚ·Î ¹Ù²Ù¾î Ãâ·ÂÇÑ´Ù. 
 
SELECT lcase('MYSQL'),ucase('mysql); 
 
 

³¯Â¥½Ã°£ÇÔ¼ö

3) ³¯Â¥, ½Ã°£ ÇÔ¼ö 
 
DAYOFWEEK(date) : ÇØ´ç³¯Â¥ÀÇ ¿äÀϰªÀ» Ãâ·ÂÇÑ´Ù.(1=ÀÏ¿äÀÏ,2=¿ù¿äÀÏ,3=È­¿äÀÏ,...,7=Åä¿äÀÏ) 
WEEKDAY(date) : DayOfWeek() ÇÔ¼ö¿Í °°Áö¸¸ ¿äÀϰªÀÌ ´Ù¸£´Ù.(0=¿ù¿äÀÏ,1=È­¿äÀÏ,...,6=ÀÏ¿äÀÏ) 
DAYOFMONTH(date) : ÇØ´ç³¯Â¥ÀÇ ³¯(1-31) °ªÀ» Ãâ·ÂÇÑ´Ù. 
DAYOFYEAR(date) : ÀϳâÁß ¸î¹øÂ° ³¯(1-366)ÀÎÁö¸¦ Ãâ·ÂÇÑ´Ù. 
MONTH(date) : ÇØ´ç ³¯Â¥ÀÇ ´Þ(1-12) °ªÀ» Ãâ·ÂÇÑ´Ù. 
DAYNAME(date) : ÇØ´ç ³¯Â¥ÀÇ ¿äÀÏ °ªÀ» ½ºÆ®¸µÀ¸·Î Ãâ·ÂÇÑ´Ù. 
 
SELECT dayofweek('2003-02-22'),weekday('2003-02-23'); 
SELECT dayofmonth('2003-02-22'),dayofyear('2003-02-23'); 
SELECT month('2003-02-22),dayname('2003-02-23'); 
 
 
[±×¸²6] ³¯Â¥, ½Ã°£ ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
MONTHNAME(date) : ÇØ´ç ³¯Â¥ÀÇ ´Þ °ªÀ» ½ºÆ®¸µÀ¸·Î Ãâ·ÂÇÑ´Ù. 
QUARTER(date) : ÃÑ 4ºÐ±âÁß ÇØ´ç ³¯Â¥ÀÇ ºÐ±â ¼ö °ªÀ» Ãâ·ÂÇÑ´Ù. 
WEEK(date,first) : ÇØ´ç³¯Â¥°¡ 1³âÁß ¸î¹øÂ° ÁÖÀÎÁö¸¦ Ãâ·ÂÇÑ´Ù. 
YEAR(date) : ÇØ´ç ³¯Â¥ÀÇ ³âµµ °ªÀ» Ãâ·ÂÇÑ´Ù. 
YEARWEEK(date,first) : ÇØ´ç ³¯Â¥ÀÇ ³âµµ¿Í 1³âÁß ¸î¹øÂ° ÁÖÀÎÁö¸¦ Ãâ·ÂÇÑ´Ù. 
HOUR(time) : ÇØ´ç ½Ã°£ÀÇ ½Ã °ªÀ» Ãâ·ÂÇÑ´Ù. 
 
SELECT monthname('2003-02-22'),quarter('2003-02-23'); 
SELECT week('2003-02-22'),year('2003-02-23'); 
SELECT yearweek('2003-02-22'),hour('10:22:32'); 
 
 
[±×¸²7] ³¯Â¥, ½Ã°£ ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
MINUTE(time) : ÇØ´ç ½Ã°£ÀÇ ºÐ °ªÀ» Ãâ·ÂÇÑ´Ù. 
SECOND(time) : ÇØ´ç ½Ã°£ÀÇ ÃÊ °ªÀ» Ãâ·ÂÇÑ´Ù. 
PERIOD_ADD(P,N) : P(YYMM or YYYYMM)°ª¿¡¼­ N ´ÞÀ» »« °ªÀ» Ãâ·ÂÇÑ´Ù. 
PERIOD_DIFF(P1,P2) : P1(YYMM or YYYYMM)°ú P2(YYMM or YYYYMM)ÀÇ ´Þ Â÷À̸¦ Ãâ·ÂÇÑ´Ù. 
TO_DAYS(date) : 0³â ºÎÅÍ date±îÁöÀÇ ³¯ ¼ö¸¦ Ãâ·ÂÇÑ´Ù. 
FROM_DAYS(N) : N(³¯)¿¡ ÇØ´çÇÏ´Â ³¯Â¥¸¦ Ãâ·ÂÇÑ´Ù. 
 
SELECT minute('10:22:32'),second('10:22:32'); 
SELECT period_add(200302,3),period_diff(0302,200209); 
SELECT to_days(20030222),from_days(731633); 
 
 
[±×¸²8] ³¯Â¥, ½Ã°£ ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
DATE_FORMAT(date,format) : dateÀÇ ³¯Â¥ °ªÀ» ¿øÇÏ´Â format °ªÀ¸·Î ¹Ù²Ù¾î Ãâ·ÂÇÑ´Ù. 
TIME_FORMAT(time,format) : timeÀÇ ½Ã°£ °ªÀ» ¿øÇÏ´Â format °ªÀ¸·Î ¹Ù²Ù¾î Ãâ·ÂÇÑ´Ù. 
CURDATE() : ÇöÀçÀÇ ³¯Â¥ °ªÀ» Ãâ·ÂÇÑ´Ù. 
CURTIME() : ÇöÀç ½Ã°£À» Ãâ·ÂÇÑ´Ù. 
NOW() : ÇöÀç ½Ã½ºÅÛÀÇ ³¯Â¥¿Í ½Ã°£À» Ãâ·ÂÇÑ´Ù. 
 
SELECT date_format('2003-02-22 22:23:00','%D %y %a %d %m %b %j'); 
SELECT time_format('22:23:00','%H %k %h %i %I %r %p %s %S'); 
SELECT curdate(),curtime(),now(); 
 
 
 

Á¦¾îÇÔ¼ö

4) Á¦¾î ÇÔ¼ö 
 
1) ~ 3)±îÁöÀÇ ÇÔ¼öµéÀº À̸§¸¸ µé¾îµµ ´ë°­Àº ¾î¶² ÇÔ¼öÀÏ °Å¶õ °ÍÀ» ¿¹»ó ÇÒ °ÍÀÌ´Ù. ±×·³ Á¦¾î ÇÔ¼ö¶õ ¹«¾ùÀΰ¡.  
À̵é ÇÔ¼ö´Â ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ÀÇ Á¶°Ç¹®°ú °°Àº ¿ªÇÒÀ» ÇÏ´Â ÇÔ¼öµéÀÌ´Ù.  
Á¾·ù·Î´Â IsNULL,NULLIF,IF,CASEµîÀÌ ÀÖÀ¸¸ç À̵é ÇÔ¼ö·Î ÀÎÇØ SQL¹® ¾È¿¡¼­ °ªµéÀ» Á¦¾î ÇÒ ¼ö°¡ ÀÖ´Ù. 
 
IFNULL(expr1,expr2) : expr1 °ªÀÌ ³ÎÀ̸é expr2°ªÀÌ Ãâ·ÂÀÌ µÇ´Â ÇÔ¼ö 
NULLIF(expr1,expr2) : expr1 °ª°ú expr2°ªÀÌ °°À¸¸é NULLÀÌ Ãâ·ÂÀÌ µÇ°í ´Ù¸£¸é expr1 °ªÀÌ Ãâ·ÂµÇ´Â ÇÔ¼ö 
IF(expr1,expr2,expr3) : expr1 °ªÀÌ ÂüÀ̸é expr2 °ªÀÌ Ãâ·ÂµÇ°í °ÅÁþÀ̸é expr3°ªÀÌ Ãâ·ÂµÇ´Â ÇÔ¼ö 
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END :  
value °ªÀÌ WHEN ´ÙÀ½ÀÇ compare-value°ª°ú °°À¸¸é THEN ´ÙÀ½ÀÇ result °ªÀ» Ãâ·ÂÇÏ´Â ÇÔ¼ö 
 
SELECT IFNULL(NULL,2),IFNULL(1,2),IF(1 > 0,1,0),IF(1 < 0,1,0); 
SELECT CASE 1 WHEN 1 THEN "one" 
               WHEN 2 THEN "two" ELSE "more" END; 
 
 
[±×¸²10] Á¦¾î ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
Áö±Ý±îÁö SQL¹®¿¡¼­ ¸¹Àº ¾²ÀÌ´Â ÇÔ¼öµé¿¡ ´ëÇØ¼­ °øºÎÇØ º¸¾Ò´Ù. À̵é ÇÔ¼ö ¸»°íµµ ¸¹Àº ´Ù¸¥ ÇÔ¼öµéÀÌ Á¸ÀçÇÏ´Ï  
²À ÇѹøÂëÀº ºÁ µÎ±æ ¹Ù¶õ´Ù. ´ÙÀ½Àº Gruop By Àý°ú GROUP BY Àý°ú °°ÀÌ ¾²ÀÌ´Â ±×·ìÇÔ¼ö¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ. 
 
 

GROUP BY

GROUP BY¿¡ ´ëÇØ¼­  
GROUP BY ¹®Àº SELECT ¹®À¸·Î µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ ¾ò¾î¿À´Â ³»¿ë Áß¿¡ ÃÖ´ë°ª, ÃÖ¼Ò°ª, ÇÕ°è, Æò±Õ ȤÀº ºÐ»êµî  
¿©·¯ ¿­ÀÇ Ä÷³À» Æ÷ÇÔÇÏ´Â ÁýÇÕ ¿¬»ê(aggregate function)ÀÌ Àû¿ëµÈ °æ¿ì¿¡ ÁÖ·Î »ç¿ëµÈ´Ù. ÀÌ·± ¿¬»ê¿¡ »ç¿ëÇÏ´Â  
ÇÔ¼ö´Â Á»´õ ÈÄ¿¡ ¹è¿ì°í ¸ÕÀú GROUP BY¹®¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸°Ú´Ù. 
 
GROUP BYÀýÀº ƯÁ¤ Ä÷³ÀÇ °ªµéÀ» Çϳª·Î ¹­´Â ¿ªÇÒÀ» ÇÑ´Ù. ÀÌ ¸»Àº ƯÁ¤ Ä÷³ÀÇ °ªÀÌ °°À¸¸é ±× ¿­ °ªÀº ÇϳªÀÇ  
¿­ °ªÀ¸·Î Ãë±ÞÇÑ´Ù´Â ¸»ÀÌ´Ù. ¹é¹®ÀÌ ºÒ¿©ÀϰßÀ̶ó°í ¸ÕÀú Á÷Á¢ Å×½ºÆ®¸¦ ÇØº¸ÀÚ. Å×½ºÆ®¸¦ Çϱâ À§Çؼ­ ´ÙÀ½°ú  
°°ÀÌ Å×À̺íÀ» Çϳª ¸¸µç´Ù. 
 
CREATE TABLE group_test( 
id varchar(10) not null, 
number int not null, 
string varchar(10) not null 
} 
 
 
À§¿Í °°ÀÌ ¸¸µé¾ú´Ù¸é Å×ÀÌºí¿¡ °ªÀ» ´ÙÀ½ ±×¸²°ú °°ÀÌ ³Ö¾î º¸ÀÚ. 
 
SELECT * FROM group_test; 
 
 
[±×¸²11] Group_test Å×ÀÌºí ¿­(row)¸®½ºÆ® 
 
 ÀÌÁ¦ ¸»·Î¸¸ ¶°µéÁö ¸»°í Á÷Á¢ Å×½ºÆ®¸¦ ÇØº¸ÀÚ. °ú¿¬ ¾î¶² °á°ú°¡ ³ª¿ÃÁö. string Ä÷³À» ±×·ìÈ­ÇÏ¿© º¸ÀÚ.  
 
SELECT * FROM group_test GROUP BY string; 
 
 
[±×¸²12] StringÀ» ±×·ìÈ­ÇÑ °á°ú 
 
À§ÀÇ ±×¸²Ã³·³ ¸¹Àº º¯È­°¡ »ý°å´Ù. ÀÌ·¸µí ƯÁ¤ Ä÷³À» ±×·ìÈ­ÇÏ¸é ±× Ä÷³ÀÇ µ¿ÀÏÇÑ °ªÀº Çϳª·Î ¹­¿© Ãâ·ÂÀÌ µÈ´Ù.  
ÀÌÁ¦´Â ÀÌ Group By ÀýÀ» »ç¿ëÇÏ¿© ±×·ìÇÔ¼ö¸¦ »ç¿ëÇØ º¸ÀÚ. 
 
 

±×·ìÇÔ¼ö(aggregate function)¿¡ ´ëÇØ¼­

±×·ìÇÔ¼ö(aggregate function)¿¡ ´ëÇØ¼­  
±×·ì ÇÔ¼öµµ ¿©·¯°³°¡ Á¸Àç ÇÏÁö¸¸ ¿©±â¼­´Â ÀÚÁÖ »ç¿ëÇÏ´Â ÇÔ¼ö ¸î °³¿¡ ´ëÇØ¼­ ¼³¸íÀ» ÇϰڴÙ.  
±× Àü¿¡ ±×·ìÇÔ¼ö¶ó ÇÏ¿© ²À GROUP BYÀý°ú °°ÀÌ »ç¿ëÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï¸ç ´ÜÁö ÀϹÝÀûÀ¸·Î  
 
SELECT Ä÷³1,±×·ìÇÔ¼ö FROM test1 
 
¿Í °°Àº ºñ½ÁÇÑ Çü½ÄÀÏ °æ¿ì¿¡´Â GROUP BYÀýÀ» °°ÀÌ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ±×·¸Áö ¾Ê°í ±×·ìÇÔ¼ö¸¸ ¾µ °æ¿ì¿¡´Â GROUP BY ÀýÀ»  
²À °°ÀÌ ½á¾ß ÇÒ ÇÊ¿ä´Â ¾ø´Ù. 
 
AVG() : ÀÌ ÇÔ¼ö´Â ()¾ÈÀÇ Ä÷³µéÀÇ Æò±ÕÀ» Ãâ·ÂÇÏ´Â ÇÔ¼öÀÌ´Ù. 
MAX() : ÀÌ ÇÔ¼ö´Â ()¾ÈÀÇ Ä÷³µé Áß °¡Àå Å« °ªÀ» Ãâ·ÂÇÏ´Â ÇÔ¼öÀÌ´Ù. 
MIN() : ÀÌ ÇÔ¼ö´Â ()¾ÈÀÇ Ä÷³µé Áß °¡Àå ÀÛÀº °ªÀ» Ãâ·ÂÇÏ´Â ÇÔ¼öÀÌ´Ù. 
SUM() : ÀÌ ÇÔ¼ö´Â ()¾ÈÀÇ Ä÷³µéÀÇ ÇÕ°èÀ» Ãâ·ÂÇÏ´Â ÇÔ¼öÀÌ´Ù. 
COUNT() : ÀÌ ÇÔ¼ö´Â ·¹Å©µåÀÇ ¼ö¸¦ Ãâ·ÂÇÏ´Â ÇÔ¼öÀÌ´Ù. 
 
SELECT count(*),avg(number),max(string),min(id),sum(number) FROM group_test; 
 
 
[±×¸²13] ±×·ì ÇÔ¼ö¸¦ ½ÇÇàÇÑ °á°ú 
 
ÀÌÁ¦ À̵éÀ» Ȱ¿ëÇØ º¸ÀÚ. ¾î¶² °æ¿ì¿¡ À̵éÀ» È¿À²ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖÀ»±î? 
 
¿¹¸¦ µé¾î ¾î¶² »ç¶÷ÀÌ 'id°¡ 'kim'À̶ó´Â »ç¶÷ÀÇ numberÀÇ °ªÀÇ Æò±Õ°ú ÃÑÁ¡À» ±¸ÇÏ°í ½Í´Ù'¶ó°í ÁÖ¹®À» ÇØ¿Ô´Ù.  
±×·¯¸é ¿©·¯ºÐµéÀº ¾î¶»°Ô Çϰڴ°¡? Áö±Ý±îÁö ¹è¿îµ¥·Î ¸ÕÀú À̵éÀÇ °ªÀ» ±¸Çغ¸ÀÚ. 
 
SELECT avg(number),sum(number) FROM group_test WHERE id = 'kim'; 
 
 
[±×¸²14] id°¡ 'kim'ÀÎ »ç¶÷ÀÇ Æò±Õ°ú ÃÑÁ¡ °á°ú 
 
¿©±â±îÁö´Â ¹®Á¦°¡ ¾ø´Ù. ±×·¸´Ù¸é ÀÌÁ¦´Â idº°·Î ±× »ç¶÷µéÀÇ numberÀÇ °ªÀÇ Æò±Õ°ú ÃÑÁ¡À» ±¸ÇÏ°í ½Í´Ù°í ÇÑ´Ù.  
±×·¯¸é ¿©·¯ºÐµéÀº ¾î¶»°Ô ÇÏ¸é µÇ°Ú´Â°¡? ±×·¸´Ù. ÀÌ·²¶§ À¯¿ëÇÏ°Ô ¾²ÀÌ´Â °ÍÀÌ GROUP BY ÀýÀÌ´Ù.  
À̸¦ »ç¿ëÇÏ¿© id¸¦ ±×·ìÈ­Çϸé ÀÌµé °¢°¢ÀÇ Æò±Õ°ú ÃÑÁ¡À» ±¸ÇÒ ¼ö ÀÖ´Ù.  
 
SELECT id,avg(number),sum(number) FROM group_test GROUP BY id; 
 
 
[±×¸²15] °¢°¢ÀÇ »ç¶÷ÀÇ Æò±Õ°ú ÃÑÁ¡ °á°ú 
 
 
ORDER BY Àý¿¡ ´ëÇØ¼­ ÀÌÁ¦´Â °á°ú °ªÀ» Á¤·ÄÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ. Á¤·ÄÀ» Çϱâ À§Çؼ­ »ç¿ëÇÏ´Â °ÍÀÌ ORDER BY ÀýÀÌ´Ù.  
ÀÌ ÀýÀº ƯÁ¤ Ä÷³À» Áß½ÉÀ¸·Î ³»¸²Â÷¼ø Á¤·Ä ȤÀº ¿À¸§Â÷¼ø Á¤·ÄÀ» ÇÒ ¼ö°¡ ÀÖ´Ù. ±×·³ ¸ÕÀú Çü½ÄÀ» º¸ÀÚ. 
 
ORDER BY ƯÁ¤ Ä÷³1 [Asc|Desc],ƯÁ¤ Ä÷³2 [Asc|Desc],... 
 
À̸ç Á¦ÀÏ ¸ÕÀú ƯÁ¤ Ä÷³1ÀÌ Á¤·ÄÀÌ µÇ°í ±× Á¤·Ä ¼Ó¿¡¼­ ƯÁ¤ Ä÷³2°¡ Á¤·ÄÀÌ µÈ´Ù. ±×·³ Á÷Á¢ ½Ç½ÀÀ» ÇØº¸ÀÚ.  
SELECT * FROM group_test ORDER BY id ASC,number DESC, string ASC; 
 
 
[±×¸²16] ORDER BY ÀýÀ» »ç¿ëÇÑ °á°ú 
 
ÀÌ·¸°Ô ORDER BY ÀýÀ» ÀÌ¿ëÇÏ¸é ¿øÇÏ´Â Á¤·ÄÀÌ °¡´ÉÇÏ´Ù.  
¿©±â¼­ ÇѰ¡Áö ÁÖÀÇÇÒ Á¡ÀÌ Àִµ¥ ORDER BY ÀýÀ» ¸ÕÀú ¾²°í GROUP BYÀýÀ» ³ªÁß¿¡ ¾²¸é ¿À·ù°¡ ¹ß»ýÇϹǷΠ 
¹Ýµå½Ã GROUP BY¿Í ORDER BY ÀýÀ» °°ÀÌ ¾µ °æ¿ì¿¡´Â GROUP BYÀýÀ» ¸ÕÀú ¾²°í µÚ¿¡ order byÀýÀ» ¾²±æ ¹Ù¶õ´Ù. 
 
ÀϹÝÀûÀÎ SQL¹® ¼ø¼­ 
 
SELECT Ä÷³1,Ä÷³2,... FROM Å×À̺í1,Å×À̺ê2,.. WHERE Á¶°Ç¹® GROUP BY ±×·ìÈ­ ÇÒ Ä÷³1,Ä÷³2,...  
ORDER BY Á¤·ÄÇÒ Ä÷³1 [ASC|DESC],Ä÷³2,[ASC|DESC],... 
 
 

¼­ºêÄõ¸®(SubQuery?)¿¡ ´ëÇØ¼­

¼­ºêÄõ¸®(SubQuery)¿¡ ´ëÇØ¼­  
 µåµð¿© ¿©±â±îÁö ¿Ô´Ù. ÀÌ ºÎºÐÀº Á¶ÀÎ(Join)ó·³ ¸Å¿ì Áß¿äÇϹǷΠ²À ¸¶½ºÅÍ ÇÏ±æ ¹Ù¶õ´Ù. 
 ÀÌÁ¨ Á¶ÀÎ(Join)¿¡ ´ëÇØ¼­ ¾î´À Á¤µµ ÀÌÇØ°¡ °¡´Â°¡? ±×·¸´Ù¸é Á¶ÀÎ(join)¸¸Å­À̳ª Áß¿äÇ졒  
º¹ÀâÇÑ ¼­ºêÄõ¸®(SubQuery)¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ. ¸ÕÀú ¾Ë¾Æ º¸±â Àü¿¡ ´ÙÀ½°ú °°ÀÌ Å×À̺íÀ» ¸¸µç´Ù.  
Âü°í·Î MySQL¿¡¼­´Â ¼­ºêÄõ¸®(SubQuery)¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. mysql.com ¿¡ µû¸£¸é 4.1¹öÀüºÎÅÍ Áö¿øÀ» ÇÑ´Ù°í  
ÇÏ¸ç ¿ì¸®´Â ÀÏ´Ü PostgreSQL¸¦ »ç¿ëÇÏ¿© Å×½ºÆ®¸¦ ÇÒ °ÍÀÌ´Ù.  
 
CREATE TABLE Student( 
ID varchar(50), 
Name varchar(50), 
Class int 
); 
 
CREATE TABLE Score( 
ID varchar(50), 
Score int 
); 
 
 
À§¿Í °°ÀÌ Å×À̺íÀ» ¸¸µé¾ú´Ù¸é [±×¸²17]°ú [±×¸²18]ó·³ ¿­¸¦ Ãß°¡ÇÑ´Ù. 
 
SELECT * FROM Student; 
 
 
[±×¸²17] Student Å×ÀÌºí ¼Ó ¿­ 
 
SELECT * FROM Score; 
 
 
[±×¸²16] Score Å×ÀÌºí ¼Ó ¿­ 
 
Ãß°¡ ÇÏ¿´´Ù¸é ÀÌÁ¦ º»°ÝÀûÀ¸·Î ¼­ºêÄõ¸®(SubQuery)¿¡ ´ëÇÏ¿© °øºÎÇÏ¿© º¸ÀÚ. 
 
¼­ºêÄõ¸®(SubQuery)´Â SELECT, INSERT, UPDATE, DELETE ¹®À̳ª ´Ù¸¥ ¼­ºêÄõ¸®(SubQuery) ³»ºÎ¿¡ ÁßøµÈ SELECT Äõ¸®ÀÌ´Ù.  
¼­ºêÄõ¸®(SubQuery)´Â ½ÄÀÌ Çã¿ëµÇ´Â ¸ðµç À§Ä¡¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ°í ()·Î ¹­¾î¼­ »ç¿ëµÈ´Ù.  
´ÙÀ½ ¿¹Á¦¿¡¼­ ¼­ºêÄõ¸®(SubQuery)´Â SELECT ¹®¿¡¼­ Score ¶ó´Â Ä÷³À¸·Î »ç¿ëµÈ´Ù. 
 
SELECT a.Name, a.Class, 
       (SELECT Score FROM Math AS b 
        WHERE b.ID = a.ID) AS Score 
FROM Student AS a 
 
À̰ÍÀº ÇлýµéÀÇ À̸§°ú ¹Ý, Á¡¼öÀ» »Ì¾Æ³»´Â ¼­ºêÄõ¸®(SubQuery)¹®ÀÌ´Ù. 
 ´ëºÎºÐÀÇ ¼­ºêÄõ¸®(SubQuery)¹®Àº Á¶ÀÎ(join)À¸·Î ³ªÅ¸³¾ ¼ö °¡ ÀÖ´Ù.  
¶ÇÇÑ  ¼­ºêÄõ¸®(SubQuery)°¡ Æ÷ÇÔµÈ ¹®ÀåÀ̳ª ÀÇ¹Ì»ó µ¿ÀÏÇÑ ¹®Àå¿¡¼­´Â  ¼­ºêÄõ¸®(SubQuery)³ª Á¶ÀÎ(Join)À̳ª ¼º´É¸é¿¡¼­´Â Â÷À̰¡ ¾ø´Ù.  
ÀÌÁ¦ À§ÀÇ ¹®ÀåÀ» Å×½ºÆ® ÇØº¸ÀÚ. 
 
 
[±×¸²19] À§ÀÇ ¼­ºêÄõ¸®(SubQuery)¹® ½ÇÇà °á°ú 
 
 À§¿¡¼­ ÇÏÀ§ Äõ¸®(SubQuery)´Â ´ëºÎºÐÀÌ Á¶ÀÎ(Join)À¸·Î Ãâ·ÂÇÒ ¼ö ÀÖ´Ù°í Çß´Ù. ±×·³ ÀÌÁ¨ ¾Õ °­¿¡¼­ ¹è¿î Á¶ÀÎ(Join)À¸·Î Ãâ·ÂÇØº¸ÀÚ. 
 
SELECT a.Name,a.Class,b.Score FROM Student a INNER JOIN Score b ON b.ID = a.ID; 
 
 
[±×¸²20] À§ÀÇ ¼­ºêÄõ¸®(SubQuery)¹®À» Á¶ÀÎ(join)¹®À¸·Î º¯°æÇÏ¿© ½ÇÇàÇÑ °á°ú 
 
³»¿ëÀ» º¸¸é ¶È°°Àº °á°ú¸¦ Ãâ·ÂÇÏ¿´´Ù. ¼­ºêÄõ¸®(SubQuery)¿¡ ´ëÇØ¼­ À§¿¡¼­ ¼³¸íÇÒ ¶§ ½ÄÀÌ Çã¿ëÇÏ´ÂÇÑ ¾îµð¿¡¼­µç  
»ç¿ëÇÒ ¼ö ÀÖ´Ù°í Çß´Ù. ±×·³ ÀÌÁ¦´Â ¼­ºêÄõ¸®(SubQuery)¹®À» ÇöÀçÀÇ À§Ä¡°¡ ¾Æ´Ñ ´Ù¸¥ À§Ä¡¿¡¼­ »ç¿ëÇÏ¿© º¸ÀÚ.  
±âº»ÀûÀÎ Çü½ÄÀº ´ÙÀ½°ú °°´Ù. 
 
SELECT Ä÷³1,Ä÷³2,..... 
FROM Å×À̺í1 where ºñ±³ÇÒ Ä÷³ [IN|NOT IN] 
(select ºñ±³ÇÒ Ä÷³ From Å×À̺í2)  
¿©±â¼­ ÁÖ¸ñÇÒ °÷Àº IN°ú NOT INÀÌ´Ù. INÀº =¿Í °°Àº ¶æÀ̸ç NOT INÀº !=°ú °°Àº ¶æÀ¸·Î »ç¿ëµÈ´Ù. ±×·³ °£´ÜÇÑ ½Ç½ÀÀ» ÇØº¸ÀÚ. 
 
SELECT ID,Name,Class FROM Student WHERE ID IN (SELECT ID FROM Score); 
SELECT ID,Name,Class FROM Student WHERE ID NOT IN (SELECT ID FROM Score); 
 
 
[±×¸²21] À§ÀÇ ¼­ºêÄõ¸®(SubQuery)¹®¿¡¼­ IN°ú NOT INÀÇ Â÷ÀÌ 
 
ÀÌ»ó°ú °°ÀÌ ¼­ºêÄõ¸®(SubQuery)¿¡ ´ëÇØ¼­ »ìÆìº¸¾Ò´Ù. ¾ÕÀ¸·Î µ¥ÀÌÅÍ º£À̽º¸¦ »ç¿ëÇϸ鼭 ¼­ºêÄõ¸®(SubQuery)¹®°ú  
Á¶ÀÎ(join)¹®Àº ¼º´ÉÇâ»óÀ» À§Çؼ­µµ ²À ÇÊ¿äÇÑ °ÍµéÀ̹ǷΠ¹Ýµå½Ã ¸¶½ºÅÍÇÏ±æ ¹Ù¶õ´Ù. Âü°í·Î MSSQL°ú ¿À¶óŬµî  
»ó¾÷ÀûÀÎ µ¥ÀÌÅÍ º£À̽º´Â IN,NOT IN»Ó¸¸ÀÌ ¾Æ´Ï¶ó =,!=,<,>µîÀ» ¼­ºêÄõ¸®(SubQuery)¿¡¼­µµ Áö¿øÇϰí ÀÖ´Ù.  
ÀÌ°Ç ¿ÀÇ ¼Ò½º µ¥ÀÌÅÍ º£À̽ºÀÇ ÇѰè·Î ¾ÕÀ¸·Î ÀÌµé ¿ÀÇ ¼Ò½º µ¥ÀÌÅÍ º£À̽ºµµ ¿ª½Ã Áö¿øÀ» ÇÒ °ÍÀÌ´Ù. 
 

   

 
´º½º¿Í Á¤º¸ ¡¤ ÀÚÀ¯ °Ô½ÃÆÇ ¡¤ °¡ÀÔ ÀÎ»ç ¡¤ °øÁö»çÇ× ¡¤ AJAX ÇнÀ ¡¤ ASP Áú¹® ¡¤ ASP ÇнÀ ¡¤ MYSQL ÇнÀ ¡¤ SQLSERVER ÇнÀ ¡¤ ¿À¶óŬ ÇнÀ ¡¤ µ¥ÀÌŸº£À̽º ÇнÀ ¡¤ ¾×¼Ç½ºÅ©¸³Æ® ÇнÀ ¡¤ ¾×¼Ç½ºÅ©¸³Æ® Áú¹® ¡¤ ÆÛ¿Â Ç÷¡½Ã ¡¤ Ç÷¡½Ã ³×ºñ°ÔÀÌ¼Ç ¡¤ Ç÷¡½Ã ¼Ò½º ¡¤ Ç÷¡½Ã ¿¬±¸½Ç ¡¤ Ç÷¡½Ã Áú¹® ¡¤ Ç÷¡½Ã °ÔÀÓ ¡¤ Ç÷¡½Ã ÀÎÆ®·Î ¡¤ Ç÷¡½Ã ÀÌÆåÆ® ¡¤ ÀÚÀÛ Ç÷¡½Ã ¡¤ ű×,HTML Áú¹® ¡¤ ű×,HTML ÇнÀ ¡¤ ÀÚ¹Ù,JSP ÇнÀ ¡¤ ÀÚ¹Ù,JSP Áú¹® ¡¤ ÀÚ¹Ù½ºÅ©¸³Æ® ÇнÀ ¡¤ ÀÚ¹Ù½ºÅ©¸³Æ® ¼Ò½º ¡¤ ÀÚ¹Ù½ºÅ©¸³Æ® Áú¹® ¡¤ Æ÷Åä¼¥ Áú¹® ¡¤ Æ÷Åä¼¥ ÇнÀ ¡¤ Ãßõ À̹ÌÁö ¡¤ ÀÚÀÛ À̹ÌÁö ¡¤ ÆÛ¿Â À̹ÌÁö ¡¤ PHP Áú¹® ¡¤ PHP ÇÔ¼ö ¡¤ PHP ÇнÀ ¡¤ ÇÁ·Î±×·¡¹Ö ÇнÀ ¡¤ ÀÎÅͳݼ­¹ö ÇнÀ ¡¤ ÀÎÅͳݼ­¹ö Áú¹®¡¤ Ç÷¡½Ã »ùÇà ¼Ò½º ¡¤ Ç÷¡½Ã äÆÃ¹æ ¡¤ Ç÷¡½Ã ¹Ì´ÏȨÇÇ ¡¤ Ç÷¡½Ã °¶·¯¸® ¡¤ Ç÷¡½Ã RSS¸®´õ ¡¤ Ç÷¡½Ã PHP »çÀü ¡¤ Ç÷¡½Ã ¿ìÆí¹øÈ£ ã±â ¡¤ Ç÷¡½Ã ÇÑÀÚ°ÔÀÓ ¡¤ Ç÷¡½Ã ´Þ·Â°ú½Ã°è ¡¤ Ç÷¡½Ã Æ÷Åä¶óÀ̺귯¸® ¡¤ ·£´ýÀ̹ÌÁö ¡¤ Ç÷¡½Ã ´Þ·Â°ú½Ã°è ¡¤ ÇÑ±Û µµ¸ÞÀÎ ¡¤ ³×À̹ö ºí·Î±× ½ºÅ©·¦ ¡¤ ½ÎÀÌ¿ùµå ¹Ì´ÏȨÇÇ °¶·¯¸® ¡¤ ½ÎÀÌ¿ùµå ¹Ì´ÏȨÇÇ µî·Ï ¡¤ ÇÁ·Î°ÔÀÌ¸Ó ·©Å© ¡¤ ȨÆäÀÌÁöÁ¤º¸ ºí·Î±×
Copyright ¨Ï hompy.info. All rights reserved.