Untitled Document











SQL °­ÁÂ

0
Total 8 articles, 1 pages/ current page is 1
   

 

  View Articles
Name  
   ¹Ú¿ìÁø 
Homepage  
   http://madpark.korea.ac.kr
Subject  
   SQLÀÇ ±âÃÊ (2)
ÀÌÁ¦ ³»ÀåÇÔ¼ö¿¡ °üÇØ ¾Ë¾Æº¼±î¿ä? ORACLE»ç´Â ´Ù¾çÇÑ µ¥ÀÌÅÍ Å¸ÀÔÀ» Á¶ÀÛÇÏ°í º¯È¯Çϱâ À§Çؼ­ ¸¹Àº ³»ÀåÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù.

¹®ÀÚÇÔ¼ö
¼ýÀÚÇÔ¼ö
³¯Â¥ÇÔ¼ö
º¯È¯ÇÔ¼ö
±×·ìÇÔ¼ö
ÀâÇÔ¼ö(Miscellaneous Function)
ÀÏ´Ü ¿©±â¼­´Â ÀÌ·± Á¾·ù°¡ ÀÖ´Ù´Â °Í¸¸ ¾Ë°í ³Ñ¾î°¡ÁÒ.

SQLÀº ·¹Äڵ带 °Ë»öÇϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ±âÁØÀ» ÁöÁ¤ÇÏ´Â WHERE ±¸¸¦ Á¦°øÇÕ´Ï´Ù. ¾î¶² Å×À̺íÀÌ ¸¹Àº ÇàÀ» °¡Áö°í ÀÖÀ» °æ¿ì, ±× ÇàµéÀ» ¸ðµÎ °Ë»öÇϸé Âü ºÒÆíÇϰÚÁÒ? WHERE ±¸´Â Äõ¸®¿¡ ÀÇÇØ °Ë»öµÇ´Â ÇàÀ» À§Çؼ­ ¸¸Á·µÇ¾î¾ß ÇÏ´Â ÇÑ °³ ÀÌ»óÀÇ Á¶°Ç¹®À¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.

¸¸¾à ¿©·¯ºÐÀÌ ¼­¿ï¿¡ »ç´Â ÇлýµéÀÇ List¸¸ ¿øÇÑ´Ù¸é ¾Æ·¡¿Í °°ÀÌ ÇÒ ¼ö ÀÖ°ÚÁÒ.

SELECT name, eng_score, kor_score FROM student WHERE city='¼­¿ï';

NAME       ENG_SCORE  KOR_SCORE
---------- ---------  ----------
ÀÌ¿øÈñ            30          10
½Å°üÈ£            85         100

WHERE¹®À» »ç¿ëÇÒ ¶§ AND ¿Í OR Ű¿öµå·Î Á¶°Ç¹®À» Á¶ÇÕÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¼­¿ïÀ̳ª ¼ö¿ø¿¡ »ì°í ¿µ¾î ¼ºÀûÀÌ 80Á¡ ÀÌ»óÀÎ Çлý¸¸ º¸´Â ¿¹¸¦ µé¾îº¸ÁÒ.

SELECT * FROM student
WHERE city='¼­¿ï' OR city='¼ö¿ø' AND eng_score>=80;

NAME       AGE  ENG_SCORE  KOR_SCORE  ...   AVR_SCORE
---------- --- ---------- ----------  ...  ----------
À±¸é¿ë      28       100        100   ...        100
ÃÖÀÎÈñ      27        90         90   ...         94
½Å°üÈ£      28        85        100   ...         96


±×·³ µ¥ÀÌÅ͸¦ ¼ÒÆ®(Sort)½ÃÄѼ­ Äõ¸®ÇÏ´Â ¹ýÀ» º¼±î¿ä? ¿©·¯ºÐÀº ORDER BY ±¸¸¦ ÀÌ¿ëÇØ¼­ Äõ¸®µÇ´Â µ¥ÀÌÅ͸¦ ¼ÒÆ®½Ãų ¼ö ÀÖ½À´Ï´Ù. ORDER BY ±¸´Â Äõ¸®°¡ º¹±Í½ÃŰ´Â ÇàÀÇ ¼ø¼­¸¦ ¸Å±â´Âµ¥ »ç¿ëµÇ¾î¾ß ÇÏ´Â ¿­À» ÁöÁ¤Çϴµ¥ »ç¿ëµË´Ï´Ù.

SELECT name, age FROM student
ORDER BY name;

NAME       AGE
---------- ---
±¸±³¶ô      28
¹Ú»ó¿í      29
¹èÈ¿ÀÏ      26
½Å°üÈ£      28
À±¸é¿ë      28
ÀÌ¿øÈñ      50
...
ÃÖÀÎÈñ      27


¼ø¼­¸¦ Á¤¸®ÇÒ ¶§ ¿À¶óŬÀÇ °æ¿ì´Â ¾Æ¹«·± ¿É¼ÇÀÌ ¾øÀ» °æ¿ì, ÇàÀ» ¿À¸§Â÷¼ø(ASC)À¸·Î ¼ø¼­¸¦ Á¤ÇÕ´Ï´Ù. ¿­ÀÇ ¼ø¼­¸¦ ³»¸²Â÷¼øÀ¸·Î Á¤¸®ÇÏ·Á¸é ¿­ÀÇ À̸§ µÚ¿¡ DESC Ű¿öµå¸¦ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù.

SELECT name, age FROM student
ORDER BY name DESC;

NAME       AGE
---------- ---
ÃÖÀÎÈñ      27
ÀÌ¿øÈñ      50
À±¸é¿ë      28
½Å°üÈ£      28
¹èÈ¿ÀÏ      26
¹Ú»ó¿í      29
...

±¸±³¶ô      28

±×·±µ¥ °¡²ûÀº ³»°¡ ã°íÀÚ ÇÏ´Â µ¥ÀÌÅͳª ÇàÀÌ ¾ó¸¶³ª µÇ´ÂÁö ¾Ë°í ½ÍÀ» ¶§°¡ ÀÖÁÒ? ±×¶§´Â COUNT¶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. COUNT ÇÔ¼ö´Â ÁöÁ¤µÈ ±âÁØÀ» ¸¸Á·½ÃŰ´Â ÇàÀÇ ¼ö¸¦ º¹±Í½Ãŵ´Ï´Ù.

SELECT count(*) FROM student
WHERE  eng_score>=80;

COUNT(*)
--------
       4

±×·¯¸é ¼­ºêÄõ¸®´Â ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö º¼±î¿ä? ¼­ºêÄõ¸®´Â ´Ù¸¥ DML(SELECT, UPDATE, DELETE, INSERT) ¹®À¸·Î Á¤Àǵ˴ϴÙ. ¸¸¾à¿¡ ¿µ¾î¼ºÀû¿¡ ´ëÇØ¼­ Àüü Æò±Õº¸´Ù Á¡¼ö°¡ ³·Àº ÇлýÀ» Á¶È¸ÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ¸é µË´Ï´Ù. avg()´Â ORALCEÀÌ Á¦°øÇÏ´Â Æò±ÕÀ» ³»´Â ÇÔ¼öÁÒ.

SELECT name, eng_score FROM student
WHERE eng_score <
(SELECT avg(eng_score) FROM student);

¼­ºêÄõ¸®¸¦ »ç¿ëÇÒ °æ¿ì, ´ÙÀ½ÀÇ ³»¿ëÀ» ÁÖÀÇÇϼ¼¿ä.

¼­ºêÄõ¸®´Â °ýÈ£·Î ¹­¾î¾ß ÇÑ´Ù.
¼­ºêÄõ¸®¿¡ ÀÇÇØ¼­ º¹±ÍµÈ ÇàÀÇ ¼ö´Â ÇÔ¼ö ¶Ç´Â ¿¬»êÀÚ°¡ ±â´ëÇÏ´Â °ªÀÇ ¼ö¿Í ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.
ORDER BY ±¸´Â ¼­ºêÄõ¸® ¹®¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø´Ù.  
¶Ç SELECT ¹®À¸·Î »õ·Î¿î Å×À̺íÀ» ¸¸µé ¼öµµ ÀÖ¾î¿ä. ´ÙÀ½°ú °°ÀÌ CREAT TABLE ¹®°ú SELECT ¹®À» ÇÔ²² »ç¿ëÇÏ¸é µË´Ï´Ù. WHERE ¹®À» Á־ ¿øÇÏ´Â Á¶°Ç¸¸À¸·Î Å×À̺íÀ» ¸¸µé ¼öµµ ÀÖ°ÚÁÒ.

CREATE TABLE new_table_name
AS
select_statement;

CREATE TABLE eng_score_table
AS
SELECT name, age, eng_score
  FROM student;

¿©·¯ºÐÀº ¼±Åà ¸®½ºÆ® ³»¿¡¼­ º¹ÀâÇÑ Ç¥Çö ¹®À» ÁöÁ¤ÇÒ ¶§ ±×°Í¿¡°Ô ¾ÙÀ̾¸¦ ÇÒ´çÇÔÀ¸·Î½á °á°ú °ªÀÇ ¹®¼­¸¦ º¸±â ÁÁ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ µÎ °¡Áö ¿¹¸¦ º¼±î¿ä?

SELECT name, eng_score, kor_score, (eng_score+kor_score)/2 FROM student;

NAME       ENG_SCORE  KOR_SCORE    (ENG_SCORE+KOR_SCORE)/2
---------- ---------  ----------   -----------------------
¹Ú»ó¿í            90          85                      87.5
¹èÈ¿ÀÏ            70          90                        80
ÀÌ¿øÈñ            30          10                        20
À±¸é¿ë           100         100                       100
ÃÖÀÎÈñ            90          90                        90
½Å°üÈ£            85         100                      87.5
...              ...          ...                      ...
±¸±³¶ô             0          10                         5

SELECT name, eng_score, kor_score, (eng_score+kor_score)/2 AVERAGE FROM student;

NAME       ENG_SCORE  KOR_SCORE    AVERAGE
---------- ---------  ----------   --------
¹Ú»ó¿í            90          85       87.5
¹èÈ¿ÀÏ            70          90         80
ÀÌ¿øÈñ            30          10         20
À±¸é¿ë           100         100        100
ÃÖÀÎÈñ            90          90         90
½Å°üÈ£            85         100       87.5
...              ...          ...       ...
±¸±³¶ô             0          10          5

ù ¹øÂ° ¿¹¿Í µÎ ¹øÂ° ¿¹¸¦ ºñ±³Çغ¸¸é µÎ ¹øÂ° ¿¹°¡ ÈξÀ ±ò²ûÇÏÁÒ? À̰ÍÀ» Ç¥Çö½Ä (eng_score+kor_score)/2¿¡ ¾ÙÀ̾ AVERAGE¸¦ ÇÒ´çÇÑ´Ù°í Çϸç, ¿©±â¼­ µÎ °¡Áö ÀÌÀÍÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

Ç¥Çö½ÄÀ» Á¤È®È÷ ±â¼úÇÏ´Â À̸§À» °®´Â´Ù.
ORDER BY ±¸ ³»¿¡¼­ ¾Ù¸®¾î½º¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.
³»¿ëÀÌ HTMLÇÏ°í ºñ±³Çؼ­ Á» ¾î·Æ³ª¿ä?


    

 


Prev
   SQLÀÇ ±âÃÊ (3)

¹Ú¿ìÁø
Next
   SQLÀÇ ±âÃÊ (I) [6763]

¹Ú¿ìÁø


Copyright 1999-2023 Zeroboard / skin by madpark