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

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

°ü°èÇü µ¥ÀÌÅͺ£À̽º ½Ã ½ºÅÛ(RDBMS) ±â¼ú°ú ºñ°ü°èÇü µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ(DBMS) ±â¼ú »çÀÌÀÇ ÇÑ °¡Áö ÁÖ¿ä Â÷ÀÌÁ¡Àº ³Î(Null) °ªÀÇ °³³äÀÔ´Ï´Ù. ºñ°ü°èÇü µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ¿¡¼­, ¾î¶² ¹®ÀÚ ¶Ç´Â ¼öÄ¡ Çʵ忡 ¾î¶² °ªÀÌ ¾ø´Ù´Â °ÍÀº ¾î¶² Ưº°ÇÑ °ª¿¡ ÀÇÇؼ­ Ç¥½ÃµË´Ï´Ù.

°ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡ ¼­´Â ¾î¶² ¿­À» À§ÇÑ ³Î(Null) °ªÀº ´Ù¾çÇÑ ÀÌÀ¯·Î ³ªÅ¸³³´Ï´Ù.

±×·³ ¿­ °ªÀ¸·Î ³Î (Null)À» °®°í ÀÖ´Â ÇàÀ» ã¾Æº¼±î¿ä?

SELECT name, eng_score, kor_score FROM student
 WHERE phone_no is
Null;

NAME       ENG_SCORE  KOR_SCORE
---------- ---------  ----------
¹èÈ¿ÀÏ            70          90
ÀÌ¿øÈñ            30          10
...            &nb sp; ...         ...
±¸±³¶ô            &nb sp; 0          10

¾î¶² °ªÀÌ NullÀÎ ÀÌÀ¯ ¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ÀüÈ­¹øÈ£¿Í °°Àº °ÍÀº NullÀÌ µÉ ¼öµµ ÀÖÁÒ. ¿Ö³ÄÇϸé È¿ÀÏÀÌ´Â ÀÚÃëÇÏ°í, ¿øÈñ´Â »õ·Î ÀÌ»çÇߴµ¥ ÀüÈ­¸¦ ³õÁö ¾Ê¾Ò°í, ±³¶ôÀÌ´Â Áý¿¡¼­ ÂѰܳµ±â ¶§¹®¿¡.. ÈÄÈÄ.. ±× ³É WHERE ÀýÀ» ÀÌ¿ëÇؼ­ Null °ªÀ» ãÀ» ¼ö ÀÖ´Ù´Â °Í¸¸ ±â¾ïÇϼ¼¿ä.

±×¸®°í NOT ¿¬»êÀÚ¸¦ ÀÌ ¿ëÇؼ­ NullÀÌ ¾Æ´Ñ ÇàÀ» °Ë»öÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î¼­ ÀüÈ­¹øÈ£¸¦ ¸Þ¸ðÇÑ Çлýµé ÀÇ ÀüÈ­¹øÈ£¸¦ ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÇÁö¿ä. 

SELECT name, eng_score, kor_score FROM student
 WHERE phone_no is
Not Null;

NAME       ENG_SCORE  KOR_SCORE
---------- ---------  ----------
¹Ú»ó¿í            90          85
À±¸é¿ë           100         100
ÃÖÀÎÈñ            90          90
½Å°üÈ£            85         100
...            &nb sp; ...         ...

±×·³ ÀÌÁ¦ ¿¬»êÀÚ¿¡ ´ë Çؼ­ °£´ÜÈ÷ ¾Ë¾Æº¾½Ã´Ù. ¿¬»êÀÚ¿¡´Â LIKE, BETWEEN, IN µîÀÇ ¿¬»êÀÚ°¡ ÀÖ¾î¿ä.

LIKE ¿¬»êÀÚ ´Â ã¾Æ³»°íÀÚ ÇÏ´Â Ç׸ñÀ» À§ÇÑ Á¤È®ÇÑ Ã¶ÀÚ¸¦ ¸ð¸¦ ¶§ Å×À̺íÀ» °Ë»öÇϴµ¥ ÀÌ¿ëÇÏ°Ô µË´Ï´Ù. ¹®¹ýÀº ´ÙÀ½°ú °°¾Æ¿ä.

SELECT name, eng_score FROM student
 WHERE name like '%¿ø%';

NAME       ENG_SCORE
-- -------- ---------
ÀÌ¿øÈñ            30

BETWEEN ¿¬»êÀÚ´Â AND ¿Í ÇÔ ²² »ç¿ëµÇ¾î ¿¬°áµÇ´Â µÎ °³ÀÇ Á¶°Ç¹®°ú °°ÀÌ ÀÛ¿ëÇÕ´Ï´Ù.

SELECT name, eng_score FROM student
 WHERE eng_name BETWEEN 85 AND 95;

À§ÀÇ ¹®ÀåÀº ¾Æ·¡ÀÇ ¹® Àå°ú µ¿ÀÏÇÑ ¹®ÀåÀÔ´Ï´Ù.

SELECT name, eng_score FROM student
 WHERE eng_score >= 85 AND eng_score <= 95;

NAME       ENG_SCORE
-- -------- ---------
¹Ú»ó¿í            90
À±¸é¿ë           100
ÃÖ ÀÎÈñ            90
½Å°üÈ£            85

¸¶Áö¸·À¸·Î ÀÌÁ¦ IN ¿¬ »êÀÚ¿¡ ´ëÇØ ¾Ë¾Æº¸ÁÒ. IN ¿¬»êÀÚ´Â ¿­ ¶Ç´Â Ç¥Çö½ÄÀÇ °ª À» °¡´ÉÇÑ °ªµéÀÇ ¸®½ºÆ®¸¦ ºñ±³Çϴµ¥ »ç¿ëµË´Ï´Ù. ±×¸®°í IN ¿¬»êÀÚ´Â Boolean °ªÀ» º¹±Í½Ã Å°ÁÒ.

SELECT name FROM student
 WHERE city IN ('Suwon', 'Seoul');

NAME      
----------
À± ¸é¿ë
ÃÖÀÎÈñ
½Å°üÈ£

À§ÀÇ ³»¿ë°ú ¹Ý´ëÀÇ ³» ¿ëÀÌ ³ªÅ¸³ªµµ·Ï NOT Å°¿öµå¸¦ »ç¿ëÇÒ ¼öµµ ÀÖÁÒ.

SELECT name FROM student
 WHERE city NOT IN ('Suwon', 'Seoul');

NAME       AGE
-------- -- ---
±¸±³¶ô       28
¹Ú»ó¿í      29
¹èÈ¿ÀÏ      26
ÀÌ¿øÈñ      50
...