Ãâó : http://www.dhtmldot.com

3. SQLÀÇ ±âÃÊ (I)

¿©±â¼­´Â SQL¿¡ ´ëÇÑ ±âÃÊ ÀûÀÎ ³»¿ëÀ» ¼Ò°³ÇÕ´Ï´Ù. ¿ì¼± SQLÀÇ Æ¯¼º¿¡ ´ëÇؼ­ °£´ÜÈ÷ ¾Ë¾Æº¸ÁÒ.

1) Å×À̺íÀº Çà°ú ¿­ÀÌ ´Ù.

¾Õ¼­ ¸»¾¸µå¸° °Í °°ÀÌ °ü °èÇü ÀÌ·ÐÀÇ Á߽ɿ¡´Â Å×À̺íÀ̶õ °³³äÀÌ ÀÖ½À´Ï´Ù. Å×À̺íÀº ÀÏ·ÃÀÇ ¼Ó¼º À̳ª ¿­°ú 0°³ ÀÌ»óÀÇ ÇàÀ¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, °¢ ÇàÀº ¼Ó¼º °ªÀÇ ÁýÇÕ ÀÔ´Ï´Ù.

°ü°èÇü µ¥ÀÌÅͺ£À̽º°¡ ³ª ¿À±â Àü¿¡´Â °èÃþÀû À¯Çü(Hierarchial) ¶Ç´Â ³×Æ®¿öÅ© À¯Çü(Network)À¸·Î ºÐ·ùµÇ¾ú´ø µ¥ÀÌÅͺ£À̽º °ü¸® ½Ã½ºÅÛ¿¡ ÀÇÁ¸Çß½À´Ï´Ù. ÀÌ µÎ°¡Áö À¯Çü Àº ´ÜÁ¡ÀÌ Çϳª ÀÖ¾ú´Âµ¥, ±âÁ¸ µ¥ÀÌÅÍ ¿ä¼ÒÀÇ ÀϺθ¦ º¯°æÇϰųª »õ·Î ¿î µ¥ÀÌÅÍ ¿ä¼Ò¸¦ Ãß°¡ÇÏ·Á¸é ±âÁ¸ÀÇ ÇÁ·Î±×·¥À» ±¤¹üÀ§ÇÏ°Ô ¼öÁ¤ÇØ¾ß Çß½À´Ï´Ù. ±×·¯³ª °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡¼­´Â µ¥ÀÌÅÍ ¿ä¼Ò(¿­)¸¦ º¯°æÇÏ ´Â °ÍÀÇ È¿°ú´Â ¹Ì¼¼ÇÕ´Ï´Ù. °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡¼­, ¿­ÀÇ Å©±âÀÇ Áõ°¨Àº Å×ÀÌºí ³»ÀÇ ´Ù¸¥ ¿­·ÎºÎÅÍ µ¶¸³ÀûÀ̱⠶§¹®ÀÌÁÒ. ±×¸¸Å­ ¼ÒÇÁÆ®¿þ ¾î À¯Áö/°ü¸® ºñ¿ëÀÌ °¨¼ÒÇÑ´Ù´Â ¾ê±â°¡ µË´Ï´Ù.

°ü°èÇü ÀÌ·ÐÀÇ ±ÔÄ¢ Áß ÇÏ ³ª´Â ¿­ÀÇ ¼ø¼­°¡ Áß¿äÇÏÁö ¾Ê´Ù´Â Á¡ÀÔ´Ï´Ù. ÀÌ ¸»Àº »ç½Ç °³³äÀûÀÎ ¼ö ÁØ¿¡¼­ Å×À̺íÀÇ ¿­ÀÌ ¿©·¯ºÐÀÌ ¿øÇÏ´Â ¼ø¼­·Î °Ë»öµÉ ¼ö ÀÖ´Ù´Â °Í À» ÀǹÌÇÕ´Ï´Ù. ¹°·Ð ¹°¸®ÀûÀÎ ¼ø¼­´Â Á¸À縦 ÇÏ°ÚÁÒ.

°ü°èÇü ÀÌ·ÐÀÇ ¶Ç´Ù¸¥ ±Ô Ä¢Àº ÇàÀÇ ¼ø¼­°¡ Áß¿äÇÏÁö ¾Ê´Ù´Â Á¡ÀÌÁÒ. ÇàÀÌ ¾î¶² ƯÁ¤ ¼ø¼­·Î ÀúÀå µÇÁö ¾Ê´Â´Ù´Â ¶æÀÌ ¾Æ´Ï¶ó ÇàÀÌ Å×À̺í·ÎºÎÅÍ °Ë»öµÉ ¹æ½Ä¿¡ À־ ÇÔÃàÀû ÀÎ ¼ø¼­°¡ ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. µû¶ó¼­ ¾î¶² Å×À̺íÀÇ ÇàÀÌ Æ¯Á¤ ¼ø ¼­·Î º¹±ÍµÇ±â¸¦ ¿øÇÑ´Ù¸é, ±× ¼ø¼­¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.

2) µ¥ÀÌÅÍ °Ë»ö ¹× º¯°æ

SQL¹®Àº ´ÙÀ½ ¼¼ °¡Áö ¿µ ¿ªÀ¸·Î Å©°Ô ºÐ·ùÇÒ ¼ö ÀÖ½À´Ï´Ù.

DML¿¡´Â ´ÙÀ½ ³× °¡Áö ±â º» ¹®ÀåÀÌ ÀÖ½À´Ï´Ù.

´ÙÀ½Àº SQLÀÇ Æ¯¼ºÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.

3) SELECT ¹®ÀÇ ±¸¹®

SELECT¹®Àº ³× °³ÀÇ DML ¹® Áß¿¡¼­ °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â ±¸¹®ÀÔ´Ï´Ù. ±×¸®°í UPDATE, INSERT, DELETE ¹® ³»¿¡¼­ ¼­ºê Äõ¸®·Î½á Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. SELECT ¹®Àº ÃÖ¼ÒÇÑ ´ÙÀ½ ÀÇ µÎ ¿ä¼Ò·Î ±¸¼ºµË´Ï´Ù.

±×·³ °£´ÜÇÑ ¿¹¸¦ º¸ÁÒ. ´ÙÀ½Àº Çлý(Student)À̶õ Table¿¡¼­ À̸§(name)À» °Ë»öÇÏ´Â Äõ¸®ÀÔ´Ï´Ù.

SELECT name FROM student;

°á°ú´Â ´ÙÀ½°ú °°ÀÌ ³ª¿À °ÚÁÒ.

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

ÇлýÀÇ À̸§°ú ³ªÀ̸¦ ¾Ë °í ½ÍÀ¸¸é Èñ¸ÁÇÏ´Â ¼ø¼­·Î ¿­À» ³ª¿­ÇÏ¸é µË´Ï´Ù.

SELECT name, age FROM student;

°á°ú´Â ´ÙÀ½°ú °°ÀÌ ³ª¿É ´Ï´Ù.

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

Å×À̺íÀÇ ¸ðµç ¿­À» °Ë»ö ÇÏ·Á¸é *À» »ç¿ëÇÏ¸é µË´Ï´Ù.

SELECT * FROM student;

NAME       AGE  ENG_SCORE  KOR_SCORE  ...   AVR_SCORE
---------- --- ---------- ----------  ...  ---- ------
¹Ú»ó¿í      29        90         85   ...          93
¹èÈ¿ÀÏ      26        70         90   ...          80
ÀÌ¿øÈñ      50        30         10   ...          15
À±¸é¿ë      28       100        100   ...        100
ÃÖÀÎÈñ      27        90         90   ...          94
½Å°üÈ£      28        85        100   ...          96
...        ...       ...        ...   ...        ...
±¸±³¶ô      28         0         10            &nb sp;   5

Âü! ORACLE¿¡¼­´Â DUALÀÌ ¶ó´Â À¯Æ¿¸®Æ¼ TABLEÀ» »ç¿ëÇؼ­ »ê¼ú¿¬»êÀ̳ª ÇöÀç½Ã°£ µîÀ» ¾Ë ¼ö ÀÖ¾î ¿ä.

SELECT 3.14159*20 FROM DUAL;

3.14159*20
----------
62.8318

SELECT SYSDATE FROM DUAL;

SYSDATE
---------
05-JUN-98

¸ðµç SELECT ¹®¿¡ ÀÇÇؼ­ º¹±ÍµÈ °á°ú´Â Àӽà Å×À̺íÀ» ±¸¼ºÇÕ´Ï´Ù. °¢ °Ë»öµÈ ·¹ÄÚµå´Â ÀÌ ÀÓ ½Ã Å×ÀÌºí ³»¿¡¼­ ÇϳªÀÇ ÇàÀÌ°í ¼±Åà ¸®½ºÆ®ÀÇ °¢ ¿ä¼Ò´Â ÇϳªÀÇ ¿­ÀÔ ´Ï´Ù. ¸¸¾à Äõ¸®°¡ ¾î¶°ÇÑ ·¹Äڵ嵵 º¹±Í½ÃÅ°Áö ¾Ê´Â´Ù¸é Àӽà Å×À̺íÀº ºó °ÍÀ¸·Î »ý°¢ÇÒ ¼ö ÀÖÁÒ. ÀÌ ±â´ÉÀº °ü°èÇü ¸ðµ¨ÀÇ ±Ùº» ¿øÄ¢ÀÔ´Ï ´Ù.

±×¸®°í À§¿¡¼­ ¿­À» ÁöÁ¤ ÇÑ °Íó·³ ¼±Åà ¸®½ºÆ® ³×¿¡¼­ Ç¥Çö½ÄÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç¥Çö½ÄÀº ¿­°ú µ¿ÀÏÇÑ µ¥ÀÌÅÍŸÀÔ (¹®ÀÚ, ¼öÄ¡, ³¯Â¥)¿¡ ¼ÓÇÕ´Ï´Ù. ¿©·¯ºÐÀº ¿¬»ê ÀÚ, ³»ÀåÇÔ¼ö, ±×¸®°í »ó¼ö¸¦ ÀÌ¿ëÇÏ¿© ¿©·¯ºÐÀÇ APPLICATIONÀÇ Çʿ並 ¸¸Á· ½Ãų ¼ö ÀÖ´Â º¹ÀâÇÑ Ç¥Çö½Äµµ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í Ç¥Çö½ÄÀÌ ´Ù¼öÀÇ ¿­À» ÂüÁ¶ÇÒ Áö¶óµµ ORACLEÀÌ ¼±Åà ¸®½ºÆ® ³»¿¡ ÀÖ´Â °¢ ¿ä¼Ò ¸¦ µ¶¸³µÈ ¿­·Î °£ÁÖÇÑ´Ù´Â °ÍÀ» ±â¾ïÇϼ¼¿ä.

SQL¿¡¼­ »ç¿ëµÇ´Â »ê¼ú ¿¬»êÀÚ´Â C ¾ð¾î¿¡¼­ »ç¿ëµÇ´Â »ê¼ú ¿¬»êÀÚ¿Í µ¿ÀÏÇÕ´Ï´Ù. ´õÇϱâ(+), »©±â(-), °öÇϱâ(*), ³ª´©±â(/)... ¸ðµÎ ¶È~ °°ÁÒ?

´ÙÀ½Àº ÇлýµéÀÇ ¿µ¾î ¼º Àû°ú ±¹¾î ¼ºÀûÀ» Æò±Õ³»´Â °ÍÀÔ´Ï´Ù.

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            &nb sp;         87.5
¹èÈ¿ÀÏ            70          90            &nb sp;            80
ÀÌ¿øÈñ            30          10            &nb sp;            20
À±¸é¿ë           100         100            &nb sp;          100
ÃÖÀÎÈñ            90          90            &nb sp;            90
½Å°üÈ£            85         100            &nb sp;         87.5
...            &nb sp; ...          ...            &nb sp;         ...
±¸±³¶ô            &nb sp; 0          10            &nb sp;             5

SQL¿¡¼­ »ç¿ëµÇ´Â ¹®ÀÚ¿­ ¿¬»êÀÚ(String Operator) Áß °¡Àå Áß¿äÇÑ °ÍÀÌ ¿¬°á ¿¬»êÀÚ(Concatenation Operator) ÀÔ´Ï´Ù. ÀÌ ¿¬»êÀÚ´Â µÑ ÀÌ»óÀÇ ¹®ÀÚ¿­À» ÇÔ²² ¿¬°áÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.

SELECT name || ', ' || city FROM student;

NAME||','||CITY
----- -----------
¹Ú»ó¿í, ºÎ»ê
¹èÈ¿ÀÏ, ÁøÁÖ
ÀÌ¿øÈñ, ¼­¿ï
À±¸é ¿ë, ¼ö¿ø
ÃÖÀÎÈñ, ¼ö¿ø
½Å°üÈ£, ¼­¿ï
...
±¸±³¶ô, ºÎ»ê

¾î¶² °æ¿ì¿¡ ¹®ÀÚ¿­À» ¿¬ °áÇÒ±î¿ä?

¿©·¯ºÐÀº µÎ °³ ÀÌ»óÀÇ ¹® ÀÚ¿­·Î ¿¬°á ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ', '´Â ¹®ÀÚ¿­À» ÄÞ ¸¶(,)¿Í °ø¹éÀ¸·Î ¿¬°áÇÒ ¼ö ÀÖµµ·Ï »ç¿ëµÈ °ÍÀÔ´Ï´Ù.