HOME   ·Î±×ÀΠ  ȸ¿ø°¡ÀÔ
    
ȸ¿ø°¡ÀÔ
ºñ¹Ð¹øÈ£ ã±â ÀÚµ¿·Î±ä
ÀÌÀü°Ô½ÃÆÇ
   free_board
   °Ç°­°Ô½ÃÆÇ
   ¿À¶óŬDB
   Linux
   HTML/javascript
   Áú¹®°ú ´ä
È£¼­±â
   À̹ÌÁö°Ô½ÃÆÇ  
   °Ç°­°Ô½ÃÆÇ  
   À½¾ÇÀÚ·á  
   ¼ºÁØÀÌ °Ô½ÃÆÇ  
[ÀϹÝ] ¿À¶óŬ Á¤¸®ÀÚ·á sql [ÀÎÅÍ³Ý ÂüÁ¶ÀÚ·á ]
  È£¼® ´Ô²²¼­ ¾´ ±ÛÀÔ´Ï´Ù - 220.¢½.198.136 ÀÐÀ½:4393  
SQL*Plus¿¡¼­ ²À ¾Ë¾ÆµÎ¾î¾ß ÇÒ È°¿ë ¸Å´º¾ó~!

¡Ü Á¦ 1 Àå µ¥ÀÌÅÍÀÇ °Ë»ö
• SQL ¸í·É¾î´Â ´ÙÀ½°ú °°ÀÌ ±â¼úÇÑ´Ù.
¡á SQL ¸í·É¾î´Â ÇÑ Á٠ȤÀº ¿©·¯ ÁÙ¿¡ ±â¼úÇÑ´Ù.
¡á ÀϹÝÀûÀ¸·Î ÀýµéÀº ¼öÁ¤Çϱ⠽±°Ô ´Ù¸¥ ÁÙ¿¡ ±â¼úÇÑ´Ù.
¡á TAB À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¡á SQL ¸í·É¾î ´Ü¾î´Â »ý·«Çϰųª ºÐ¸®ÇÒ ¼ö ¾ø´Ù.
¡á SQL ¸í·É¾î´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù.
¡á SQL ¸í·É¾î´Â ; À¸·Î Á¾·áÇÑ´Ù.
¡á SQL ¸í·É¾î´Â SQL BUFFER ¿¡ ÀúÀåµÈ´Ù.
¡á SQL BUFFER ¿¡ ÀúÀåµÈ SQL ¸í·É¾î´Â / ȤÀº RUN À¸·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
•SQL*PLUS ¸í·É¾î´Â ´ÙÀ½°ú °°ÀÌ ±â¼úÇÑ´Ù.
¡á SQL*PLUS ¸í·É¾î´Â ±âº»ÀûÀ¸·Î ÇÑ ÁÙ¿¡ ±â¼úÇÑ´Ù.
¡á SQL*PLUS ¸í·É¾î´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù.
¡á SQL*PLUS ¸í·É¾î´Â SQL BUFFER ¿¡ ÀúÀåµÇÁö ¾Ê´Â´Ù.
¡á SQL*PLUS ¸í·É¾î´Â ´ÙÀ½°ú °°´Ù.
? DESCRIBE table¸í : TABLE ÀÇ ±¸Á¶¸¦ º¸¿©ÁØ´Ù.
? SAVE file¸í : SQL BUFFER ¸¦ file ·Î ÀúÀåÇÑ´Ù.
? START file¸í : file À» ¼öÇàÇÑ´Ù.
? @ file¸í : file À» ¼öÇàÇÑ´Ù.
? EDIT file¸í : EDITOR ¸¦ »ç¿ëÇÏ¿© file À» ÆíÁýÇÑ´Ù.
? SPOOL file¸í : QUERY °á°ú¸¦ file ¿¡ ÀúÀåÇÑ´Ù.
? SPOOL OFF : SPOOL FILE À» ´Ý´Â´Ù.
? HOST : SQL*PLUS ¸¦ ¶°³ªÁö ¾Ê°í HOST »óÅ·Π°£´Ù.
? HELP ¸í·É¾î : SQL, SQL*PLUS, PL/SQL ¿¡ ´ëÇÑ HELP ¸¦ º¸³»ÁØ´Ù.
? EXIT : SQL*PLUS ¸¦ Á¾·áÇÑ´Ù.

• Àüü µ¥ÀÌŸÀÇ °Ë»ö
°¡Àå °£´ÜÇÑ SELECT ¹®ÀåÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
. SELECT Àý¿¡´Â °Ë»öÇÏ°í ½ÍÀº COLUMN ¸íµéÀ» ±â¼úÇÑ´Ù.
. FROM Àý¿¡´Â SELECT Àý¿¡¼­ ±â¼úµÈ COLUMN ¸íµéÀÌ Æ÷ÇÔµÈ TABLE ¸íÀ» ±â¼úÇÑ´Ù.
TABLE ÀÇ ¸ðµç ROW ¿Í ¸ðµç COLUMN À» °Ë»öÇÑ´Ù.
SELECT * - FROM table¸í ;
[ ¿¹Á¦ ] S_DEPT TABLE ·ÎºÎÅÍ ¸ðµç ROW ¿Í COLUMN À» °Ë»öÇϽÿÀ.
SELECT *
FROM S_DEPT ;

• ƯÁ¤ columnÀÇ °Ë»ö
SELECT Àý¿¡¼­ °Ë»öÇÏ°íÀÚ ÇÏ´Â COLUMN ¸íÀ» COMMA ¸¦ »ç¿ëÇÏ¿© ³ª¿­ÇÑ´Ù.
COLUMN ¼ø¼­´Â °Ë»öÇÏ°í ½ÍÀº ¼ø¼­´ë·Î ³ª¿­ÇÑ´Ù.
COLUMN HEADING Àº COLUMN ¸íÀÌ ´ë¹®ÀÚ·Î Ãâ·ÂµÈ´Ù.
SELECT column¸í, column¸í, column¸í,.. - FROM table¸í ;
[ ¿¹Á¦ ] S_EMP TABLE ·ÎºÎÅÍ ID, LAST_NAME, START_DATE ¸¦ °Ë»öÇϽÿÀ.
SELECT ID, LAST_NAME, START_DATE
FROM S_EMP ;

- °è¼Ó(1) -


• »ê¼ú½ÄÀ» »ç¿ëÇÑ °Ë»ö
»ê¼ú ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© °Ë»öµÇ´Â µ¥ÀÌŸ °ªÀ» º¯°æÇÒ ¼ö ÀÖÀ¸¸ç »ê¼ú ¿¬»ê½ÄÀº COLUMN ¸í, »ó¼ö °ª, »ê¼ú ¿¬»êÀÚ·Î ±¸¼ºµÊ.
SELECT »ê¼ú¿¬»ê½Ä - FROM table¸í ;
[ ¿¹Á¦ ] S_EMP TABLE ·ÎºÎÅÍ ID, LAST_NAME, ¿¬ºÀÀ» °Ë»öÇϽÿÀ. (¿¬ºÀÀº SALARY * 12 ·Î °è»êÇÑ´Ù. (+,-,*,/,())
SELECT ID, LAST_NAME, SALARY * 12
FROM S_EMP ;

• Column alias
±âº»ÀûÀ¸·Î COLUMN HEADING Àº COLUMN ¸íÀÌ ´ë¹®ÀÚ·Î Ãâ·ÂµÈ´Ù. ±×·¯³ª ¸¹Àº °æ¿ì COLUMN ¸íÀÌ ÀÌÇØÇϱ⠾î·Æ°Å³ª
¹«ÀǹÌÇϱ⠶§¹®¿¡ COLUMN ALIAS ¸¦ »ç¿ëÇÏ¿© COLUMN HEADING À» º¯°æÇÒ ¼ö ÀÖ´Ù.
ANSI SQL 92 ¿Í ȣȯÀ» À§ÇØ ALIAS ¾Õ¿¡ AS ¸¦ ºÙÀÏ ¼ö ÀÖ´Ù.
ALIAS ¿¡ °ø¹éÀ̳ª Ư¼ö¹®ÀÚ°¡ Æ÷ÇԵǰųª ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏ°í ½ÍÀ¸¸é " " ·Î ¸·¾ÆÁØ´Ù.
COLUMN ALIAS ¸¦ »ç¿ëÇÏ¿© COLUMN HEADING À» º¯°æÇÒ ¼ö ÀÖ´Ù.
SELECT column¸í alias, column¸í "alias", column¸í as alias - FROM table¸í ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, (SALARY + 100) * 12, DEPT_ID ¸¦ °Ë»öÇϽÿÀ.
(´Ü, COLUMN ALIAS ´Â Employee, ANNUAL_SALARY, DEPARTMENT NO ·Î Á¤ÀÇÇϽÿÀ.)
SELECT LAST_NAME "Employee", (SALARY + 100) * 12 AS ANNUAL_SALARY,
DEPT_ID "DEPARTMENT NO"
FROM S_EMP ;

• ColumnÀÇ °áÇÕ
COLUMN °ú ´Ù¸¥ COLUMN, »ê¼ú¿¬»ê½Ä, »ó¼ö °ª°ú °áÇÕÇÏ¿© ÇϳªÀÇ COLUMN À¸·Î °áÇÕÇÒ ¼ö ÀÖ´Ù.
SELECT column¸í|| column¸í - FROM table¸í;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ FIRST_NAME °ú LAST_NAME À» °áÇÕÇÏ¿© ALIAS EMPLOYEE ·Î °Ë»öÇϽÿÀ.
SELECT FIRST_NAME || LAST_NAME EMPLOYEE
FROM S_EMP ;

• Null°ª ó¸®
ƯÁ¤ COLUMN ¿¡ °ªÀÌ ÀԷµǾî ÀÖÁö ¾ÊÀ» ¶§, ±× °ªÀÌ NULL À̸ç, NULL °ªÀÌ »ê¼ú ¿¬»ê½Ä¿¡ Æ÷ÇÔµÇ¸é ±× °á°úµµ NULL ÀÌ´Ù.
NULL °ªÀº 0 À̳ª °ø¹é°ú °°Áö ¾Ê´Ù. ±×·¯¹Ç·Î NVL FUNCTION À» »ç¿ëÇÏ¿© NULL °ªÀ» ´Ù¸¥ °ªÀ¸·Î ´ëüÇÏ¿©¾ß ÇÑ´Ù.
NULL °ªÀ» ´Ù¸¥ °ªÀ¸·Î ´ëü.NVL (number_column, 9), NVL (date_column, '01-JAN-95'), NVL (character_column, 'ABCDE')
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, COMMISSION °ªÀ» °Ë»öÇϽÿÀ.
(COMMISSION Àº SALARY * COMMISSION_PCT /100 À¸·Î °è»êÇϽÿÀ.)
SELECT LAST_NAME, SALARY * NVL(COMMISSION_PCT,0) /100 COMMISSION
FROM S_EMP ;

• Áߺ¹ rowÀÇ Á¦°Å
SELECT °á°ú °ª¿¡ Áߺ¹µÈ °ªÀÌ ÀÖÀ» ¶§ Áߺ¹À» ÇÇÇÏ°í UNIQUE ÇÏ°Ô °Ë»öÇÑ´Ù. Áߺ¹µÈ ROW ¸¦ Á¦°ÅÇÑ´Ù.
SELECT DISTINCT column¸í, column¸í - FROM table¸í;
[ ¿¹Á¦ ] S_DEPT TABLE ¿¡¼­ NAME ÀÌ Áߺ¹µÇÁö ¾Ê°Ô °Ë»öÇϽÿÀ.
SELECT DISTINCT NAME
FROM S_DEPT ;



- °è¼Ó(2) -


• µ¥ÀÌŸÀÇ Á¤·Ä
SELECT µÇ´Â ROW ÀÇ ¼ø¼­´Â ¾Ë ¼ö ¾ø´Ù. ±×·¯¹Ç·Î ROW ¸¦ SORT ÇÏ°í ½ÍÀ¸¸é ORDER BY ÀýÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.
DATA ÀÇ DEFAULT SORT ¼ø¼­´Â ASCENDING ÀÌ¸ç ´ÙÀ½°ú °°´Ù.
? ¼ýÀÚ : 1 ¿¡¼­ 999 ¼øÀ¸·Î SORT ÇÑ´Ù. ? ³¯Â¥ : 01-JAN-92 ¿¡¼­ 01-JAN-95 ¼øÀ¸·Î SORT ÇÑ´Ù.
? ¹®ÀÚ : A ¿¡¼­ Z ¼ø¼­·Î SORT ÇÑ´Ù. ? NULL : ASC ¼ø¿¡¼­´Â µÚ¿¡, DESC ¼ø¿¡¼­´Â ¾Õ¿¡ ³ª¿Â´Ù.
¿ª¼øÀ¸·Î SORT ÇÏ°í ½ÍÀ¸¸é COLUMN ¸í µÚ¿¡ DESC ¸¦ ºÙÀδÙ.
COLUMN ¸í ´ë½Å¿¡ ALIAS ȤÀº SELECT ÇÑ COLUMN ÀÇ ¼ø¼­·Î ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.
SELECT expr - FROM table¸í - ORDER BY {column¸í, expr} [ASC|DESC] ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, DEPT_ID, START_DATE ¸¦ LAST_NAME ¼øÀ¸·Î °Ë»öÇϽÿÀ.
SELECT LAST_NAME, DEPT_ID, START_DATE
FROM S_EMP ORDER BY LAST_NAME ;

• ƯÁ¤ rowÀÇ °Ë»ö
WHERE Àý¿¡¼­ Á¶°Ç½ÄÀ» ±â¼úÇÏ¿© Á¶°ÇÀ» ¸¸Á·ÇÏ´Â ROW ¸¸ °Ë»öÇÒ ¼ö ÀÖ´Ù.
Á¶°Ç½ÄÀº COLUMN ¸í, COMPARISON OPERATOR, VALUE ·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
¹®ÀÚ °ªÀº ' ' À¸·Î ¹­¾îÁÖ°í °ªÀÇ ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏ¿© Àû¾îÁØ´Ù. ³¯Â¥ °ªÀº ' ' À¸·Î ¹­¾îÁÖ°í ÁöÁ¤µÈ ³¯Â¥ ÇüÅ·ΠÀû¾îÁØ´Ù. '01-MAR-97', ¼ýÀÚ°ªÀº °ª¸¸ Àû¾îÁÖ¸ç ƯÁ¤ ROW ¸¸ °Ë»öÇÑ´Ù.
SELECT expr - FROM table¸í - WHERE expr operator value
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME ÀÌ Magee ÀÎ »ç¿øÀÇ FIRST_NAME, LAST_NAME,
TITLE À» °Ë»öÇϽÿÀ. (=,>,<,>=,<=,<>) SELECT FIRST_NAME, LAST_NAME, TITLE
FROM S_EMP WHERE LAST_NAME = 'Magee' ;

• Between...and
BETWEEN OPERATOR ¸¦ »ç¿ëÇÏ¿© ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¶§´Â ÀÛÀº °ªÀ» ¸ÕÀú Å« °ªÀ» ³ªÁß¿¡ ÁöÁ¤ÇÑ´Ù.
µÎ ¹üÀ§ÀÇ ÇÑ°è °ªÀ» Æ÷ÇÔÇÑ´Ù. BETWEEN...AND... - NOT BETWEEN...AND...
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ START_DATE °¡ 09-MAY-91 ¿¡¼­ 17-JUN-91 »çÀÌ¿¡ ÀÔ»çÇÑ »ç¿øÀÇ FIRST_NAME, LAST_NAME, START_DATE ¸¦ °Ë»öÇϽÿÀ.
SELECT FIRST_NAME, LAST_NAME, START_DATE
FROM S_EMP WHERE START_DATE BETWEEN '09-MAY-91' AND '17-JUN-91' ;

• In[list]
IN OPERATOR ¸¦ »ç¿ëÇÏ¿© ³ª¿­µÈ °ªµé Áß¿¡¼­ °ªÀ» °Ë»çÇÑ´Ù.
IN(LIST), NOT IN(LIST)
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ DEPT_ID °¡ 10, 31, 41, 50 ÀÎ »ç¿øÀÇ FIRST_NAME, LAST_NAME, DEPT_ID ¸¦ °Ë»öÇϽÿÀ.
SELECT FIRST_NAME, LAST_NAME, DEPT_ID
FROM S_EMP WHERE DEPT_ID IN (10, 31, 41, 50) ;

• like
ã°íÀÚ ÇÏ´Â °ªÀ» Á¤È®È÷ ¸ð¸¦ ¶§, LIKE OPERATOR ¸¦ »ç¿ëÇÏ¿© ¹®ÀÚÇüÅ°¡ °°Àº ROW ¸¦ °Ë»öÇÑ´Ù.
WILDCARD ¸¦ »ç¿ëÇÏ¿© ¹®ÀÚÀÇ ÇüŸ¦ ÁöÁ¤ÇÑ´Ù. (% : ¿©·¯ ¹®ÀÚ, _ : Çѹ®ÀÚ )
LIKE 'ÇüÅÂ', NOT LIKE 'ÇüÅÂ'
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ LAST_NAME ÀÌ M À¸·Î ½ÃÀÛÇÏ´Â »ç¿øÀÇ LAST_NAME À» °Ë»öÇϽÿÀ.
SELECT LAST_NAME FROM S_EMP WHERE LAST_NAME LIKE 'M%' ;
SELECT LAST_NAME FROM S_EMP WHERE LAST_NAME LIKE '__M____' ;

- °è¼Ó(3) -

• is null
IS NULL OPERATORÀ» »ç¿ëÇÏ¿© °ªÀÌ NULL ÀÎ °ÍÀ» ãÀ» ¼ö ÀÖ´Ù.
NULL °ªÀº °ªÀÌ Á¤ÀǵÇÁö ¾ÊÀº °ÍÀ» ÀǹÌÇϱ⠶§¹®¿¡ = OPERATOR¸¦ »ç¿ëÇÏ¿© ¾î¶² °ª°ú ºñ±³ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ »ç¿ëÇÑ´Ù.
IS NULL, IS NOT NULL
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ COMMISSION_PCT°¡ NULLÀÎ »ç¿øÀÇ LAST_NAME, SALARY, COMMISSION_PCT¸¦ °Ë»öÇϽÿÀ.
SELECT last_name, salary,commission_pct,last_name, salary
FROM s_emp WHERE commission_pct is null;

• Á¶°Ç½ÄÀÇ °áÇÕ
Á¶°Ç½ÄÀ» ±â¼úÇÒ ¶§ AND ¿Í OR ¸¦ »ç¿ëÇÏ¿© ¿©·¯°¡Áö Á¶°ÇÀ» °áÇÕÇÒ ¼ö ÀÖ´Ù.
AND ¿Í OR °¡ °°ÀÌ »ç¿ëµÆÀ» ¶§ AND °¡ ¸ÕÀú ¼öÇàµÇ°í OR °¡ ³ªÁß¿¡ ¼öÇàµÈ´Ù.
±×·¯¹Ç·Î ¿ì¼±¼øÀ§¸¦ ¹Ù²Ù°íÀÚ Çϸé ( ) ¸¦ »ç¿ëÇÑ´Ù.
WHERE Á¶°Ç½Ä AND | OR Á¶°Ç½Ä
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ DEPT_ID°¡ 41ÀÌ°í TITLEÀÌ Stock ClerkÀÎ »ç¿øÀÇ LAST_NAME, SALARY, DEPT_ID, TITLEÀ» °Ë»öÇϽÿÀ.
SELECT LAST_NAME, SALARY, DEPT_ID, TITLE
FROM S_EMP WHERE DEPT_ID = 41 AND TITLE = 'Stock Clerk' ;

¡Ü Á¦ 2 Àå Single Row Functions
• ¼Ò¹®ÀÚ·Î º¯È¯
¸ðµç ¹®ÀÚ¸¦ ¼Ò¹®ÀÚ·Î º¯È¯½ÃŲ´Ù.
LOWER(COLUMN¸í)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME ÀÌ Smith ÀÎ »ç¿øÀÇ FIRST_NAME, LAST_NAME À» ¼Ò¹®ÀÚ·Î Ãâ·Â½ÃÅ°½Ã¿À.
SELECT LOWER(FIRST_NAME), LOWER(LAST_NAME)
FROM S_EMP WHERE LOWER(LAST_NAME) = 'smith' ;

• ´ë¹®ÀÚ·Î º¯È¯
¸ðµç ¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î º¯È¯½ÃŲ´Ù.
UPPER(COLUMN¸í)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME ÀÌ Smith ÀÎ »ç¿øÀÇ TITLE À» ´ë¹®ÀÚ·Î Ãâ·ÂÇϽÿÀ.
SELECT UPPER(TITLE)
FROM S_EMP WHERE UPPER(LAST_NAME) = 'SMITH';

• ù±ÛÀÚ¸¸ ´ë¹®ÀÚ·Î º¯È¯
´Ü¾îÀÇ Ã¹±ÛÀÚ´Â ´ë¹®ÀÚ·Î, ³ª¸ÓÁö´Â ¼Ò¹®ÀÚ·Î º¯È¯½ÃŲ´Ù.
INITCAP(COLUMN¸í)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ TITLE À» ´Ü¾îÀÇ Ã¹±ÛÀÚ¸¸ ´ë¹®ÀÚ·Î Ãâ·Â½ÃÅ°½Ã¿À.
SELECT INITCAP(TITLE) FROM S_EMP ;

• ¹®ÀÚÀÇ ºÎºÐÀ» ÀÚ¸§
¹®ÀÚ¸¦ ½ÃÀÛÀ§Ä¡(M)¿¡¼­ ÀÚ¸®¼ö(N) ¸¸Å­ À߶óÁØ´Ù. ÀÚ¸®¼ö(N)ÀÌ »ý·«µÇ¸é ½ÃÀÛÀ§Ä¡(M)¿¡¼­ ³¡±îÁö À߶óÁØ´Ù.
SUBSTR(COLUMN¸í, M, N)
[ ¿¹Á¦ ] S_PRODUCT TABLE ¿¡¼­ NAME COLUMN ÀÇ ¾Õ¿¡¼­ ºÎÅÍ 3±ÛÀÚ°¡ Ace ÀÎ Á¦Ç°ÀÇ NAME À» Ãâ·ÂÇϽÿÀ.
SELECT NAME FROM S_PRODUCT
WHERE SUBSTR(NAME, 1, 3) = 'Ace' ;

- °è¼Ó(4) -


• ¹®ÀÚÀÇ ±æÀ̸¦ °è»ê
¹®ÀÚÀÇ ±æÀ̸¦ RETURN ÇÑ´Ù.
LENGTH(COLUMN¸í)
[ ¿¹Á¦ ] S_PRODUCT TABLE ¿¡¼­ NAME, NAME ÀÇ ±æÀ̸¦ Ãâ·ÂÇϽÿÀ.
SELECT NAME, LENGTH(NAME)
FROM S_PRODUCT;

• ¼ýÀÚÀÇ ¹Ý¿Ã¸²
ÁöÁ¤µÈ ÀÚ¸®¼ö(M) ¹Ø¿¡¼­ ¹Ý¿Ã¸²ÇÑ´Ù.
COLUMN °ªÀÌ 1 2 3 4. 5 6 7 ÀÏ ¶§ ÀÚ¸®¼ö(M)´Â ´ÙÀ½°ú °°´Ù.
¡¡ ¡¡¡¡¡¡¡¡M : -3-2-1 0 1 2 3
ROUND(COLUMN¸í, M)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, SALARY/22 ÀÇ °ªÀ» ¼Ò¼ö 2° ÀÚ¸®±îÁö ³ªÅ¸³»°í ¼Ò¼ö 3° ÀÚ¸®¿¡¼­ ¹Ý¿Ã¸²ÇϽÿÀ.
SELECT LAST_NAME, ROUND(SALARY/22, 2)
FROM S_EMP ;

• ¼ýÀÚÀÇ Àý»ç
ÁöÁ¤µÈ ÀÚ¸®¼ö(M) ±îÁö ³ªÅ¸³»°í ±× ¹ØÀº À߶ó¹ö¸°´Ù.
COLUMN °ªÀÌ 1 2 3 4. 5 6 7 ÀÏ ¶§ ÀÚ¸®¼ö(M)Àº ´ÙÀ½°ú °°´Ù.
¡¡ ¡¡¡¡¡¡¡¡M : -3-2-1 0 1 2 3 Àý»ç °ªÀº RETURN ÇÑ´Ù.
TRUNC(COLUMN¸í, M)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, SALARY / 22 ÀÇ °ªÀ» ½ÊÀÇ ÀÚ¸®±îÁö ³ªÅ¸³»°í ÀÏÀÇ ÀÚ¸®´Â ¹ö¸².
SELECT LAST_NAME, TRUNC(SALARY/22, -1)
FROM S_EMP ;

• ³ª´©±âÀÇ ³ª¸ÓÁö
M À» N À¸·Î ³ª´©°í ³²Àº ³ª¸ÓÁö¸¦ RETURN ÇÑ´Ù.
MOD(M, N)
[ ¿¹Á¦ ] 10 À» 3 À¸·Î ³ª´« ³ª¸ÓÁö¸¦ ±¸ÇϽÿÀ.
SELECT MOD(10, 3)
FROM SYS.DUAL ;

• ³¯Â¥ÀÇ ¿¬»ê
DATABASE ¾ÈÀÇ DATE °ªÀº ´ÙÀ½°ú °°Àº ¼ýÀÚ·Î ÀúÀåµÇ¾î ÀÖ´Ù.
¡á CENTURY, YEAR, MONTH, DAY, HOURS, MINUTES, SECONDS ±×·¯¹Ç·Î »ê¼ú ¿¬»êÀ» ÇÒ ¼ö ÀÖ´Ù.
¡Ü DATE + NUMBER : ¼ýÀÚ¸¸Å­ ÀÏÀÌ ´õÇØÁø ³¯Â¥°¡ RETURN µÈ´Ù.
¡Ü DATE - NUMBER : ¼ýÀÚ¸¸Å­ ÀÏÀÌ »©Áø ³¯Â¥°¡ RETURN µÈ´Ù.
¡Ü DATE1 - DATE2 : µÎ ³¯Â¥ »çÀÌÀÇ Àϼö°¡ °è»êµÈ´Ù.
³¯Â¥ °è»êÀ» ÇÑ´Ù. (DATE + NUMBER, DATE - NUMBER, DATE1 - DATE2)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, ÀÔ»çÇÑÁö 90 ÀÏ° µÇ´Â ³¯, ÀÔ»çÇÑÁö ¸çÄ¥ µÆ´Â Áö °Ë»öÇϽÿÀ.
SELECT LAST_NAME, START_DATE + 90, SYSDATE - START_DATE
FROM S_EMP; ( ³¯Â¥¿¡´Â ½Ã°£µµ Æ÷ÇԵǾî ÀÖÀ¸¹Ç·Î Àϼö °è»êÀÇ °á°ú°¡ ¼Ò¼ö·Î ³ª¿Â´Ù. )



- °è¼Ó(5) -


• ³¯Â¥ »çÀÌÀÇ °³¿ù ¼ö
µÎ ³¯Â¥ »çÀÌÀÇ °³¿ù ¼ö¸¦ RETURN ÇÑ´Ù.
MONTHS_BETWEEN(DATE1, DATE2)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, ÀÔ»çÇÑÁö ¸î ´ÞÀÌ µÆ´ÂÁö Ãâ·ÂÇϽÿÀ.
SELECT LAST_NAME, MONTHS_BETWEEN(SYSDATE, START_DATE)
FROM S_EMP ; (ÀÏÀÌ Æ÷ÇԵǾî À־ ¼Ò¼ö·Î Ãâ·ÂµÈ´Ù.)

• ³¯Â¥¿¡ ´ÞÀ» ´õÇÔ
³¯Â¥¿¡¼­ ¼ýÀÚ(N) °³¿ù¸¸Å­ ´õÇØÁø ³¯Â¥¸¦ RETURN ÇÑ´Ù.
ADD_MONTHS(DATE, N)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, START_DATE, ÀÔ»çÇÑÁö 3 °³¿ùµÇ´Â ³¯Â¥¸¦ Ãâ·ÂÇϽÿÀ.
SELECT LAST_NAME, START_DATE, ADD_MONTHS(START_DATE, 3)
FROM S_EMP ;

• ÁöÁ¤ÇÑ ¿äÀÏ ³¯Â¥
³¯Â¥¿¡¼­ ÁöÁ¤ÇÑ ¿äÀÏ(CHAR)ÀÌ µÉ ³¯Â¥¸¦ RETURN ÇÑ´Ù.
NEXT_DAY(DATE, 'CHAR')
[ ¿¹Á¦ ] ¿À´ÃÀ» ±âÁØÀ¸·Î µ¹¾Æ¿À´Â ±Ý¿äÀÏÀÌ ¾ðÁ¦ÀÎÁö Ãâ·ÂÇϽÿÀ.
SELECT SYSDATE, NEXT_DAY(SYSDATE, 'FRIDAY')
FROM SYS.DUAL ;

• ±× ´ÞÀÇ ¸¶Áö¸· ³¯
³¯Â¥°¡ Æ÷ÇÔµÈ ´ÞÀÇ ¸¶Áö¸· ³¯À» RETURN ÇÑ´Ù.
LAST_DAY(DATE)
[ ¿¹Á¦ ] À̹ø ´ÞÀÇ ¸¶Áö¸· ³¯Àº ¾ðÁ¦ÀÎÁö Ãâ·ÂÇϽÿÀ.
SELECT SYSDATE, LAST_DAY(SYSDATE)
FROM SYS.DUAL ;

• ³¯Â¥ÀÇ ¹Ý¿Ã¸²
ÇüÅ¿¡ µû¸¥ ¹Ý¿Ã¸² ±âÁØÀº ´ÙÀ½°ú °°´Ù.
? YEAR : 6¿ù ÀÌÈÄ, ? MONTH : 15ÀÏ ÀÌÈÄ, ? DAY : 12½Ã ÀÌÈÄ
³¯Â¥ µ¥ÀÌŸ¸¦ ÁöÁ¤µÈ ÇüűîÁö ³ªÅ¸³»°í ±× ÀÌÇÏ¿¡¼­ ¹Ý¿Ã¸²ÇÑ´Ù.
ROUND(COLUMN¸í, 'ÇüÅÂ')
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ ID, LAST_NAME, ÀÔ»ç ½ÃÀÛ ´ÞÀ» °Ë»öÇϽÿÀ. (´Ü, 15ÀÏ ÀÌÈÄ´Â ´ÙÀ½´Þ·Î ¿Ã¸®½Ã¿À.)
SELECT ID, LAST_NAME, ROUND(START_DATE, 'MONTH')
FROM S_EMP ;

• ³¯Â¥ÀÇ Àý»ç
³¯Â¥ µ¥ÀÌŸ¸¦ ÁöÁ¤µÈ ÇüűîÁö ³ªÅ¸³»°í ±× ¹ØÀº À߶󳽴Ù.
TRUNC(COLUMN¸í, 'ÇüÅÂ')
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ ID, LAST_NAME, ÀÔ»ç ½ÃÀÛ ´ÞÀ» °Ë»öÇϽÿÀ. (´Ü, ÀÏÀÚ´Â À߶ó¹ö¸®½Ã¿À.)
SELECT ID, LAST_NAME, TRUNC(START_DATE, 'MONTH')
FROM S_EMP ;


- °è¼Ó(6) -


• ¹®ÀÚ¸¦ ³¯Â¥·Î º¯È¯
CHARACTER TYPE À» ÁöÁ¤µÈ ÇüÅÂÀÇ DATE TYPE À¸·Î º¯È¯ÇÑ´Ù.
TO_DATE(character_column¸í, 'ÇüÅÂ')
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, START_DATE ¸¦ °Ë»öÇϽÿÀ.
(´Ü, START_DATE ÀÇ °ªÀÌ 92/02/07 ÀÎ »ç¿øÀ» °Ë»öÇϽÿÀ.)
SELECT LAST_NAME, START_DATE
FROM S_EMP WHERE START_DATE = TO_DATE('92/02/07', 'YY/MM/DD') ;

• ³¯Â¥¸¦ ¹®ÀÚ·Î º¯È¯
DATE °ªÀº ±âº»ÀûÀ¸·Î DD-MON-YY ÇüÅ·ΠÃâ·ÂµÈ´Ù.
ÀÌ°ÍÀ» TO_CHAR FUNCTION À» »ç¿ëÇÏ¸é ¿øÇÏ´Â ´Ù¸¥ ÇüÅ·Πº¯È¯ÇÒ ¼ö ÀÖ´Ù.
¡á ÇüŸ¦ ÁöÁ¤ÇÒ ¶§ »ç¿ëµÈ ´ë¼Ò¹®ÀÚ·Î Ãâ·ÂµÈ´Ù.
¡á DAY ¿Í MONTH ÇüÅ´ °ø¹éÀ» Æ÷ÇÔÇÑ 9 ÀÚ¸®·Î Ãâ·ÂµÈ´Ù.
¡á TO_CHAR ÀÇ °á°ú´Â 80 ÀÚ¸®·Î Ãâ·ÂµÈ´Ù.
DATE TYPE À» ÁöÁ¤µÈ ÇüÅÂÀÇ CHARACTER TYPE À¸·Î º¯È¯ÇÑ´Ù.
TO_CHAR(date_column, 'ÇüÅÂ')
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, START_DATE ¸¦ °Ë»öÇϽÿÀ.
(´Ü, START_DATE ÀÇ ÇüÅ´ 1991/06/17 14:20:00 ¿Í °°ÀÌ Ãâ·ÂÇϽÿÀ.)
SELECT LAST_NAME, TO_CHAR(START_DATE, 'YYYY/MM/DD HH24:MI:SS'), START_DATE
FROM S_EMP ;

• ¼ýÀÚ¸¦ ¹®ÀÚ·Î º¯È¯
NUMBER TYPE À» ÁöÁ¤µÈ ÇüÅÂÀÇ CHARACTER TYPE À¸·Î º¯È¯ÇÑ´Ù.
TO_CHAR(number_column¸í, 'ÇüÅÂ')
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME, SALARY ¸¦ °Ë»öÇϽÿÀ.(´Ü SALARY ¸¦ $1,450 ¿Í °°Àº ÇüÅ·ΠÃâ·Â½ÃÅ°½Ã¿À.)
SELECT LAST_NAME, TO_CHAR(SALARY, '$999,999')
FROM S_EMP ;

¡Ü Á¦ 3 Àå. ¿©·¯Table·ÎºÎÅÍ Data°Ë»ö
• Equijoin
SIMPLE JOIN (EQUI-JOIN)
¿©·¯°³ÀÇ TABLE µé·ÎºÎÅÍ Á¤º¸¸¦ °Ë»öÇÏ·Á¸é, SELECT ¹®ÀåÀÇ FROM Àý¿¡ TABLE¸íµéÀ» Àû°í
WHERE Àý¿¡ °¢ TABLEÀÇ ROWµéÀ» ¿¬°á½Ãų Á¶°Ç½ÄÀ» ±â¼úÇÑ´Ù.
°¢ TABLE ÀÇ COLUMN¸íÀÌ Áߺ¹µÉ ¶§´Â ¹Ýµå½Ã COLUMN¸í ¾Õ¿¡ TABLE¸íÀ» ºÙ¿©¾ß ÇÑ´Ù.
(Áߺ¹µÇÁö ¾ÊÀ» ¶§´Â ºÙÀÌÁö ¾Ê¾Æµµ µÇÁö¸¸ ¸íÈ®¼ºÀ» À§Çؼ­³ª ACCESS ¸¦ À§Çؼ­ ºÙÀÌ´Â °ÍÀÌ ÁÁ´Ù.)
N °³ÀÇ TABLE À» JOIN ÇÒ ¶§´Â ÃÖ¼ÒÇÑ N-1 °³ÀÇ Á¶°Ç½ÄÀÌ ÇÊ¿äÇÏ´Ù.
º¹ÇÕ COLUMN À¸·Î JOIN ÇÒ ¶§´Â ´õ ¸¹Àº Á¶°Ç½ÄÀÌ ÇÊ¿äÇÏ´Ù.
2°³ ÀÌ»óÀÇ TABLE ¿¡¼­ = Á¶°Ç½ÄÀ» ¸¸Á·½ÃÅ°´Â ROW µéÀ» ¿¬°áÇÏ¿© °Ë»öÇÑ´Ù.
SELECT table¸í.column¸í, table¸í.column¸í...-FROM table1¸í, table2¸í-WHERE table1¸í.column1¸í = table2¸í.column¸í ;
[ ¿¹Á¦ ] S_EMP TABLE °ú S_DEPT TABLE À» »ç¿ëÇÏ¿© »ç¿øµéÀÇ LAST_NAME, DEPT_ID, NAME À» °Ë»öÇϽÿÀ.
SELECT S_EMP.LAST_NAME, S_EMP.DEPT_ID, S_DEPT.NAME
FROM S_EMP, S_DEPT WHERE S_EMP.DEPT_ID = S_DEPT.ID ;



- °è¼Ó(7) -


• ƯÁ¤ rowÀÇ join
JOIN ¹®ÀåÀ» ±â¼úÇÒ ¶§ JOIN Á¶°Ç½Ä ÀÌ¿Ü¿¡ ´Ù¸¥ Á¶°Ç½ÄÀ» AND ·Î ¿¬°áÇÒ ¼ö ÀÖ´Ù.
SELECT table¸í.column¸í, table¸í.column¸í...
FROM table1¸í, table2¸í - WHERE table1¸í.column1¸í = table2¸í.column2¸í AND condition ;
[ ¿¹Á¦ ] S_EMP TABLE°ú S_DEPT TABLE À» »ç¿ëÇÏ¿© LAST_NAME ÀÌ Menchu ÀÎ »ç¿øÀÇ LAST_NAME, DEPT_ID,
NAME À» °Ë»öÇϽÿÀ.
SELECT S_EMP.LAST_NAME, S_EMP.DEPT_ID, S_DEPT.NAME
FROM S_EMP, S_DEPT WHERE S_EMP.DEPT_ID = S_DEPT.ID AND S_EMP.LAST_NAME = 'Smith' ;

• Table alias
JOIN ¹®Àå¿¡¼­ TABLE¸íÀÌ ±ä °æ¿ì TABLE¸í.COLUMN¸í À¸·Î Àû´Â °ÍÀÌ ¸Å¿ì ºÒÆíÇÏ´Ù.
±×·±µ¥ TABLE¸í ´ë½Å ALIAS ¸¦ »ç¿ëÇϸé ÆíÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
(SELECT ¹®Àå¿¡¼­ TABLE¸í ´ë½Å ALIAS ¸¦ ÁöÁ¤Çß´Ù¸é ±× ¹®Àå¿¡¼­´Â °è¼ÓÇؼ­ ALIAS ·Î »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.)
TABLE ALIAS¸¦ »ç¿ëÇÏ¿© JOIN ¹®ÀåÀ» °£´ÜÇÏ°Ô ±â¼úÇÑ´Ù.
SELECT alias¸í.column¸í, alias¸í.column¸í
FROM table1¸í alias1¸í, table2¸í alias2¸í - WHERE alias1¸í.column1¸í = alias2¸í.column2¸í ;
[ ¿¹Á¦ ] S_CUSTOMER TABLE°ú S_REGION TABLE À» »ç¿ëÇÏ¿© °í°´ ¸í,Áö¿ª¹øÈ£,Áö¿ª ¸íÀ» °Ë»öÇϽÿÀ.
(´Ü, COLUMN ALIAS ¿Í TABLE ALIAS ¸¦ »ç¿ëÇϽÿÀ.)
SELECT C.NAME "Customer Name", C.REGION_ID "Region Id", R.NAME "Region Name"
FROM S_CUSTOMER C, S_REGION R WHERE C.REGION_ID = R.ID ;

• Non-Equijoin
NON-EQUIJOIN
JOIN ¹®Àå¿¡¼­ µÎ TABLE À» JOIN ÇÏ´Â Á¶°Ç½Ä¿¡ = OPERATOR °¡ »ç¿ëµÇÁö ¾Ê°í
´Ù¸¥ OPERATOR °¡ »ç¿ëµÇ´Â °ÍÀ» ¸»ÇÑ´Ù.
SELECT table¸í.column¸í, table¸í.column¸í... - FROM table1¸í, table2¸í - WHERE Á¶ÀÎÁ¶°Ç½Ä ;
[ ¿¹Á¦ ] EMP TABLE °ú SALGRADE TABLE À» »ç¿ëÇÏ¿© »ç¿øÀÇ ENAME, JOB, SAL,GRADE¸¦ °Ë»öÇϽÿÀ.
SELECT E.ENAME, E.JOB, E.SAL, S.GRADE FROM EMP E, SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL ;
(BETWEEN OPERATOR ´ë½Å¿¡ <= ¿Í >= ¸¦ »ç¿ëÇصµ µÇÁö¸¸ BETWEEN ÀÌ °£ÆíÇÏ´Ù.)

• Outer Join
µÎ TABLE À» JOIN ÇÒ ¶§ JOIN Á¶°Ç½ÄÀ» ¸¸Á·½ÃÅ°Áö ¸øÇÏ´Â ROW ´Â °Ë»ö¿¡¼­ ºüÁö°Ô µÈ´Ù.
±×·±µ¥ ÀÌ·¯ÇÑ ROW µéÀÌ °Ë»öµÇµµ·Ï ÇÏ´Â °ÍÀÌ OUTER JOIN ÀÌ´Ù.
(+) OUTER JOIN OPERATOR ¸¦ µ¥ÀÌŸ°¡ ¾ø´Â ¾î´À ÇÑÂÊÀÇ COLUMN ÂÊ¿¡ ºÙÀδÙ.
JOIN °á°ú, µ¥ÀÌŸ°¡ ¾ø´Â ÂÊÀÇ COLUMN °ªÀº NULL·Î °Ë»öµÈ´Ù. Á¶°Ç½ÄÀ» ¸¸Á·½ÃÅ°Áö ¸øÇÏ´Â µ¥ÀÌŸµµ °Ë»öÇÑ´Ù.
SELECT table¸í.column¸í, table¸í.column¸í - FROM table1¸í, table2¸í
WHERE table1¸í.column1¸í = table2¸í.column2¸í(+)
[ ¿¹Á¦ ] S_EMP TABLE °ú S_CUSTOMER TABLE À» »ç¿ëÇÏ¿© ¿µ¾÷»ç¿øÀÇ LAST_NAME, SALES_REP_ID, NAME À» °Ë»öÇϽÿÀ.
(´Ü, ¿µ¾÷»ç¿øÀÌ Á¤ÇØÁ® ÀÖÁö ¾ÊÀº °í°´ÀÇ À̸§µµ °Ë»öÇϽÿÀ.)
SELECT E.LAST_NAME, C.SALES_REP_ID, C.NAME
FROM S_EMP E, S_CUSTOMER C
WHERE E.ID(+) = C.SALES_REP_ID ;


- °è¼Ó(8) -


• Self Join
TABLE ÀÇ ALIAS ¸¦ »ç¿ëÇÏ¿©, ¸¶Ä¡ 2 °³ÀÇ TABLE ó·³ »ý°¢ÇÏ¿© ÀÚ½ÅÀÇ TABLE °ú ÀÚ½ÅÀÇ TABLE À» JOIN ÇÑ´Ù.
SELECT alias¸í.column¸í, alias¸í.column¸í...
FROM table¸í alias1¸í, table¸í alias2¸í - WHERE alias1¸í.column1¸í = alias2¸í.column2¸í ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ »ç¿øµéÀÇ LAST_NAME °ú ±×µéÀÇ »ó»ç LAST_NAME À» °Ë»öÇϽÿÀ.
SELECT W.LAST_NAME "Woker", M.LAST_NAME "Manager"
FROM S_EMP W, S_EMP M WHERE W.MANAGER_ID = M.ID ;

¡Ü Á¦ 4 Àå. Group Functions
• Group Function
°¢°¢ÀÇ FUNCTION Àº ARGUMENT ¸¦ ¹Þ´Âµ¥ ±â´ÉÀº ´ÙÀ½°ú °°´Ù.
¡á DISTINCT : Áߺ¹µÈ °ªÀº Á¦¿ÜÇÑ´Ù. ¡á ALL : DEFAULT ·Î½á ¸ðµç °ªÀ» Æ÷ÇÔÇÑ´Ù.
¡á COLUMN¸í : NULL °ªÀº Á¦¿ÜÇÑ´Ù. ¡á * : NULL °ªµµ Æ÷ÇÔÇÑ´Ù.
TABLE Àüü¸¦ ÇϳªÀÇ GROUP À¸·Î º¸°í GROUP FUNCTION °ªÀ» RETURN ÇÑ´Ù.
SELECT group_function(column¸í), group_function(column¸í)... - FROM table¸í ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ ȸ»ç ÀüüÀÇ ±Þ¿©ÇÕ°è, ÃÖ°í±Þ¿©, ÃÖ¼Ò±Þ¿©, Àοø¼ö¸¦ °Ë»öÇϽÿÀ.
SELECT SUM(SALARY), MAX(SALARY), MIN(SALARY), COUNT(SALARY) FROM S_EMP ;
( COUNT(SALARY) ´Â ±Þ¿©¸¦ ¹Þ´Â »ç¿øÀÇ ÃÑ Àοø¼ö°í COUNT(*) ´Â ±Þ¿©¸¦ ¹ÞÁö ¾Ê´Â »ç¿øÀÇ Àοø¼öµµ Æ÷ÇԵȴÙ.)

• ¼ÒgroupÀ¸·Î ºÐ¸®
±âº»ÀûÀÎ SELECT Àý(±×·ìÈ­ µÇÁö ¾ÊÀº SELECTÀý)¿¡´Â COLUMN ¸í°ú GROUP FUNCTION ÀÌ °°ÀÌ ±â¼úµÉ ¼ö ¾ø´Ù.
SELECT Àý¿¡ COLUMN ¸íÀÌ ±â¼úµÇ·Á¸é GROUP BY ÀýÀÌ ¹Ýµå½Ã ±â¼úµÇ¾î¾ß ÇÑ´Ù.
SELECT Àý¿¡ ±â¼úµÈ COLUMN ¸íµéÀº ÀüºÎ GROUP BY Àý¿¡ ±â¼úµÇ¾î¾ß Çϸç
GROUP BY Àý¿¡ ±â¼úµÈ COLUMN ¸íµéÀº SELECT Àý¿¡ ±â¼úµÇÁö ¾Ê¾Æµµ µÈ´Ù.
(ÇÏÁö¸¸ °á°ú¸¦ ÆľÇÇϱâ À§Çؼ­´Â SELECT Àý¿¡ ±â¼úÇØÁÖ´Â °ÍÀÌ ÁÁ´Ù.)
GROUP BY ÀýÀ» ±â¼úÇϸé GROUP BY Àý¿¡ ±â¼úµÈ COLUMN °ªÀ¸·Î 1 °³ÀÇ TABLEÀÌ ¼Ò GROUP À¸·Î ³ª´²Áø´Ù.
°á°ú´Â COLUMN °ªÀ¸·Î SORT µÇ¾î¼­ Ãâ·ÂµÈ´Ù. 1°³ÀÇ TABLE À» ¼Ò GROUP À¸·Î ³ª´©¾î GROUP FUNCTION °ªÀ» ±¸ÇÑ´Ù.
SELECT column1¸í[, column2¸í], group_function(column¸í) - FROM table¸í - GROUP BY column1¸í[, column2¸í] ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ DEPT_ID, TITLE º°·Î, ÃÖ°í±Þ¿©, ÃÖ¼Ò±Þ¿©, Àοø¼ö¸¦ °Ë»öÇϽÿÀ.
SELECT DEPT_ID, TITLE, MAX(SALARY), MIN(SALARY), COUNT(SALARY)
FROM S_EMP GROUP BY DEPT_ID, TITLE;

• ƯÁ¤ groupÀÇ ¼±ÅÃ
HAVING ÀýÀÌ ±â¼úµÆÀ» ¶§ 󸮵Ǵ ¼ø¼­´Â ´ÙÀ½°ú °°´Ù.
¨ç ROW µéÀÌ GROUPing µÈ´Ù. ¨è GROUP ¿¡ ´ëÇØ GROUP FUNCTION ÀÌ Àû¿ëµÈ´Ù.
¨é HAVING ÀýÀ» ¸¸Á·ÇÏ´Â GROUP À» ¼±ÅÃÇÑ´Ù.
GROUP BY Àý°ú HAVING ÀýÀÇ ¼ø¼­´Â ¹Ù²î¾îµµ µÇÁö¸¸ Àǹ̻ó GROUP BY Àý ´ÙÀ½¿¡ HAVING ÀýÀ» ±â¼úÇÏ´Â °ÍÀÌ ÁÁ´Ù.
HAVING Àý¿¡¼­´Â GROUP FUNCTION À» »ç¿ëÇÏ¿© GROUP ¿¡ ´ëÇÑ Á¶°Ç½ÄÀ» ±â¼úÇÑ´Ù.
SELECT column1¸í[, column2¸í], group_function(column¸í) - FROM table¸í - GROUP BY column1¸í[, column2¸í]
HAVING ±×·ìÁ¶°Ç½Ä ;
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ TITLEº°·Î ±Þ¿©Çհ踦 °Ë»öÇϽÿÀ. (´Ü, ±Þ¿©ÇÕ°è°¡ 5000ÀÌ»óÀÎ GROUP¸¸ Ãâ·ÂÇϽÿÀ)
SELECT TITLE, SUM(SALARY) PAYROLL FROM S_EMP
GROUP BY TITLE HAVING SUM(SALARY) >= 5000 ;


- °è¼Ó(9) -

• GroupÀÇ Á¤·Ä
±âº»ÀûÀ¸·Î GROUP BY Àý¿¡ ±â¼úµÈ COLUMN °ªÀ¸·Î SORT µÈ´Ù.
ÀÌ ¼ø¼­¸¦ ¹Ù²Ù°íÀÚ Çϸé ORDER BY ÀýÀ» ±â¼úÇÏ¸é µÈ´Ù. DATA ÀÇ SORT ¼ø¼­¸¦ Á¤ÇÑ´Ù.
SELECT column1¸í[, column2¸í], group_function(column¸í) - FROM table¸í
GROUP BY column1¸í[, column2¸í] - ORDER BY column¸í| group_function(column¸í) ;
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ DEPT_ID º°·Î Àοø¼ö¸¦ °Ë»öÇϽÿÀ. (´Ü, Àοø¼ö°¡ ¸¹Àº ºÎ¼­ºÎÅÍ Ãâ·ÂÇϽÿÀ.)
SELECT DEPT_ID, COUNT(*) FROM S_EMP GROUP BY DEPT_ID ORDER BY COUNT(*) DESC ;

¡Ü Á¦ 5 Àå. Subquery
• Single Row Subquery
SUBQUERYÀÇ °á°ú°¡ 1°³ÀÇ ROW·Î ³ª¿À´Â °ÍÀ» SINGLE ROW SUBQUERY¶ó ÇÏ¸ç ´ÙÀ½°ú °°Àº OPERATOR¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
=, >, >=, <, <= VALUE °ªÀ» ±¸Çϱâ À§ÇØ SELECT ¹®ÀåÀ» »ç¿ëÇÑ´Ù.
SELECT column¸í, column¸í... - FROM table¸í
WHERE column¸í operator (SELECT column¸í FROM table¸í WHERE Á¶°Ç½Ä );
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME ÀÌ Smith ÀÎ »ç¿ø°ú °°Àº ¾÷¹«(TITLE)¸¦ ÇÏ°í ÀÖ´Â »ç¿øÀÇ LAST_NAME, TITLE À» °Ë»öÇϽÿÀ.
SELECT LAST_NAME, TITLE FROM S_EMP
WHERE TITLE = ( SELECT TITLE FROM S_EMP WHERE LAST_NAME = 'Smith') ;

• FromÀýÀÇ Subquery
FROM Àý¿¡ ±â¼úµÈ SUBQUERY ¹®Àº VIEW ó·³ »ç¿ëµÈ´Ù.
SELECT alias¸í.column¸í, alias¸í,column¸í... - FROM table1¸í alias1¸í, (SELECT column2¸í
FROM table2¸í - WHERE Á¶°Ç½Ä) alias2¸í - WHERE alias1¸í.column1¸í OPERATOR alias2¸í.column2¸í ;
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ SALARY°¡ ȸ»çÆò±Õ±Þ¿© º¸´Ù ÀûÀº »ç¿øÀÇ LAST_NAME, SALARY, ȸ»çÆò±Õ±Þ¿©¸¦ °Ë»öÇϽÿÀ.
SELECT E.LAST_NAME, E.SALARY, S.AVGSAL
FROM S_EMP E, (SELECT AVG(SALARY) AVGSAL FROM S_EMP) S WHERE E.SALARY < S.AVGSAL ;

• Multi Row Subquery
SUBQUERY ÀÇ °á°ú°¡ ¿©·¯ ROW ÀÏ ¶§´Â ¹Ýµå½Ã IN OPERATOR ¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.
SELECT column¸í, column¸í... - FROM table¸í
WHERE column¸í IN ( SELECT column¸í FROM table¸í WHERE Á¶°Ç½Ä);
[ ¿¹Á¦ ] S_EMP TABLE°ú S_DEPT TABLE¿¡¼­ OperationsºÎ¼­¿¡¼­ ±Ù¹«ÇÏ´Â »ç¿øÀÇ LAST_NAME, TITLE, DEPT_ID ¸¦ °Ë»öÇϽÿÀ.
SELECT LAST_NAME, TITLE, DEPT_ID FROM S_EMP
WHERE DEPT_ID IN (SELECT ID FROM S_DEPT WHERE NAME = 'Operations') ;

• Multi Column Subquery
SELECT ¹®ÀåÀÇ WHERE Àý¿¡¼­ ¿©·¯°³ÀÇ COLUMN °ªÀ» ºñ±³ÇÏ·Á¸é LOGICAL OPERATOR ¸¦ »ç¿ëÇÏ¿© ¿©·¯°³ÀÇ Á¶°Ç½Ä
À» ±â¼úÇÏ¿©¾ß ÇÑ´Ù. ±×·±µ¥ MULTI COLUMN SUBQUERY ¸¦ »ç¿ëÇϸé À̸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
SELECT column¸í, column¸í,,, - FROM table¸í
WHERE (column¸í, column¸í...) IN (SELECT column¸í, column¸í... FROM table¸í WHERE Á¶°Ç½Ä);
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ LAST_NAME PatelÀÎ »ç¿ø°ú °°Àº ºÎ¼­, °°Àº ¾÷¹«¸¦ ¸Ã°í ÀÖ´Â »ç¿øÀÇ LAST_NAME, TITLE, DEPT_ID ¸¦ °Ë»öÇϽÿÀ.
SELECT LAST_NAME, TITLE, DEPT_ID FROM S_EMP
WHERE (DEPT_ID, TITLE) IN(SELECT DEPT_ID, TITLEFROM S_EMPWHERE LAST_NAME = 'Patel') ;
SELECT LAST_NAME, TITLE, DEPT_ID FROM S_EMP
WHERE (DEPT_ID) IN (SELECT DEPT_ID FROM S_EMP WHERE LAST_NAME = 'Patel')
OR (TITLE) IN (SELECT TITLE FROM S_EMP WHERE LAST_NAME = 'Patel') ;

- °è¼Ó(10) -


¡Ü Á¦ 6 Àå. Table »ý¼º
• À̸§ ºÙÀÌ´Â ¹ý
À̸§Àº ´ÙÀ½ÀÇ ±ÔÄ¢À» µû¶ó¼­ ÁöÁ¤ÇÑ´Ù.
¡á TABLE ¸íÀ̳ª COLUMN ¸íÀº ¹®ÀÚ·Î ½ÃÀÛÇÏ°í 30 ÀÚ À̳»·Î ÁöÁ¤ÇÑ´Ù. ¡á A~Z, a~z, 0~9, _, $, # À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¡á ÇÑ USER ³»¿¡¼­´Â ´Ù¸¥ OBJECT ÀÇ À̸§°ú µ¿ÀÏÇÏ°Ô ÁöÁ¤ÇÒ ¼ö ¾ø´Ù.
¡á ORACLE7 SERVER ¿¹¾à¾î¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ¡á ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù.

• Oracle 7 datatype
COLUMN ÀÇ DATATYPE Àº ´ÙÀ½°ú °°´Ù.
¡á CHAR(size) : °íÁ¤µÈ size ÀÇ ¹®ÀÚ °ª, ÃÖ´ë 255 ÀÚ±îÁö ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¡á VARCHAR2(size) : size³»¿¡¼­ÀÇ °¡º¯±æÀÌ ¹®ÀÚ °ª,ÃÖ´ë 2000ÀÚ±îÁö ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¡á LONG : °¡º¯±æÀÌ ¹®ÀÚ °ª, ÃÖ´ë 2 ±â°¡ ¹ÙÀÌÆ®±îÁö »ç¿ëÇÒ ¼ö ÀÖ´Ù. TABLE ´ç ÇÑ °³ÀÇ COLUMN ¿¡¸¸ ÁöÁ¤ °¡´ÉÇÏ´Ù.
¡á NUMBER(p,s) : Á¤¼ö, ¼Ò¼ö ÀÚ¸®¼öÀÇ ÇÕÀÌ P, ¼Ò¼ö ÀÚ¸®¼ö°¡ s ÀÎ ¼ýÀÚ°ª, ÃÖ´ë 38 ÀÚ¸®¼ö±îÁö ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¡á DATE : ³¯Â¥¿Í ½Ã°£ °ª, B.C. 4712³â 1¿ù 1ÀϺÎÅÍ A.D. 4712³â 12¿ù 31ÀϱîÁö ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù.
¡á RAW(size) : size ³»¿¡¼­ÀÇ °¡º¯±æÀÌ BINARY DATA ¡á LONGRAW : °¡º¯±æÀÌ BINARY DATA

• ´Ù¸¥ table·ÎºÎÅÍ table»ý¼º
±âÁ¸ÇÏ´Â TABLE ·Î ºÎÅÍ µ¥ÀÌŸ¿Í ±¸Á¶¸¦ º¹»çÇÏ¿© TABLE À» »ý¼ºÇÑ´Ù.
CREATE TABLE table¸í [(column¸í, column¸í...)] - AS subquery ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ DEPT_ID °¡ 41 ÀÎ »ç¿øµéÀÇ ID, LAST_NAME, USERID, START_DATE ¸¸À» º¹»çÇÏ¿© EMP_41 TABLE À» »ý¼ºÇϽÿÀ.
CREATE TABLE EMP_41 AS SELECT ID, LAST_NAME, USERID, START_DATE
FROM S_EMP WHERE DEPT_ID = 41;
(S_EMP TABLE ¿¡¼­ COLUMN¸í, TYPE, SIZE, NOT NULL CONSTRAINT °¡ º¹»çµÇ¾î EMP_41 TABLE ÀÌ »ý¼ºµÇ¸ç,
µ¥ÀÌŸ´Â DEPT_ID = 41 ÀÎ ROW ¸¸ º¹»çµÈ´Ù.)

• Constraint
CONSTRAINT ÀÇ Á¾·ù´Â ´ÙÀ½°ú °°´Ù.
¡á NOT NULL : COLUMN¿¡ NULL°ªÀÌ ÀԷµǴ °ÍÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù. COLUMN-CONSTRAINT ·Î¸¸ ±â¼úÇØ¾ß ÇÑ´Ù.
¡á UNIQUE : ÇÑ °³ÀÇ COLUMNȤÀº º¹ÇÕ COLUMNÀ» UNIQUE KEY·Î ÁöÁ¤Çϸç UNIQUE KEY¿¡´Â Áߺ¹µÈ °ªÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù.
ÇÑ°³ÀÇ COLUMN À¸·Î ±¸¼ºµÈ UNIQUE KEY ´Â NULL °ªÀ» Çã¿ëÇÑ´Ù.
COLUMN À̳ª TABLE-CONSTRAINT ·Î ±â¼úÇÒ ¼ö ÀÖ´Ù.
º¹ÇÕ COLUMN À¸·Î ±¸¼ºµÈ UNIQUE KEY ´Â TABLE-CONSTRAINT ·Î¸¸ ±â¼úÇØ¾ß ÇÑ´Ù.
UNIQUE KEY COLUMN ÀÇ UNIQUE INDEX FILE ÀÌ ÀÚµ¿ »ý¼ºµÈ´Ù.
¡á PRIMARY KEY
ROW ¸¦ UNIQUE ÇÏ°Ô ´ëÇ¥ÇÒ ¼ö ÀÖ´Â ÇÑ°³ÀÇ COLUMN ȤÀº º¹ÇÕ COLUMN À¸·Î ÁöÁ¤ÇÑ´Ù.
PRIMARY KEY ¿¡´Â Áߺ¹µÈ °ª°ú NULL °ªÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù.
TABLE ´ç ÇÑ °³ÀÇ PRIMARY KEY ¸¸ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. COLUMN À̳ª TABLE-CONSTRAINT ·Î ±â¼úÇÒ ¼ö ÀÖ´Ù.
º¹ÇÕ COLUMN À¸·Î ±¸¼ºµÈ PRIMARY KEY ´Â TABLE-CONSTRAINT ·Î¸¸ ±â¼úÇØ¾ß ÇÑ´Ù.
PRIMARY KEY COLUMN ÀÇ UNIQUE INDEX FILE ÀÌ ÀÚµ¿ »ý¼ºµÈ´Ù.
¡á FOREIGN KEY
ÇÑ°³ÀÇ COLUMN ȤÀº º¹ÇÕ COLUMN À¸·Î ÁöÁ¤ÇÑ´Ù.
°°Àº TABLE ȤÀº ´Ù¸¥ TABLEÀÇ PRIMARY KEY ³ª UNIQUE KEY °ªÀ» ÂüÁ¶ÇÑ´Ù.
FOREIGN KEY °ªÀº ¸ð TABLE ¿¡ Á¸ÀçÇÏ´Â µ¥ÀÌŸ¿Í °°´ø°¡ NULL °ªÀ» Çã¿ëÇÑ´Ù.
COLUMN À̳ª TABLE-CONSTRAINT ·Î ±â¼úÇÒ ¼ö ÀÖ´Ù.

- °è¼Ó(11) -


¡Ø CHECK : °¢°¢ÀÇ ROW °¡ ¸¸Á·ÇؾßÇÒ Á¶°ÇÀ» ÁöÁ¤ÇÑ´Ù.
Á¶°Ç½ÄÀº QUERY Á¶°Ç½Ä°ú µ¿ÀÏÇÏ°Ô ÁöÁ¤ÇÑ´Ù. (´Ü, ´ÙÀ½°ú °°Àº °ÍÀº »ç¿ëÇÒ ¼ö ¾ø´Ù.)
CURRVAL, NEXTVAL, LEVEL, ROWNUM, SYSDATE, USER COLUMNÀ̳ª TABLE-CONSTRAINT·Î ±â¼úÇÒ ¼ö ÀÖ´Ù.
CONSTRAINT ¸íÀº ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇÑ´Ù.
? CONSTRAINT ´Â DICTIONARY ¿¡ ÀúÀåµÇ¹Ç·Î ÂüÁ¶Çϱ⠽±°Ô ÀǹÌÀÖ°Ô ºÙ¿©ÁØ´Ù.
? ÀϹÝÀûÀ¸·Î TABLE¸í_COLUMN¸í_CONSTRAINTÁ¾·ù¿Í °°Àº ÇüÅ·ΠÁöÁ¤ÇÑ´Ù.
? »ç¿ëÀÚ°¡ CONSTRAINT ¸íÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ORACLE7ÀÌ SYS_CnÀÇ ÇüÅ·ΠºÙÀδÙ.
? µ¿ÀÏÇÑ USER ³»¿¡¼­ CONSTRAINT¸íÀº UNIQUEÇØ¾ß ÇÑ´Ù.
CONSTRAINT ´Â ´ÙÀ½°ú °°ÀÌ ±â¼úÇÒ ¼ö ÀÖ´Ù.
COLUMN-CONSTRAINT : column¸í [CONSTRAINT constraint¸í] constraintÁ¾·ù
TABLE-CONSTRAINT : [CONSTRAINT constraint¸í] constraintÁ¾·ù (column¸í, column¸í..)

• Table »ý¼º
CREATE TABLE table¸í - (column¸í type(size) [DEFAULT VALUE] [column constraint],
column¸í type(size) [DEFAULT VALUE] [column constraint], - .... , - [table constraint], - [table constraint], ....) ;
[ ¿¹Á¦ ] S_EMP TABLE CHART¸¦ º¸°í TABLE À» »ý¼ºÇϽÿÀ.
(´Ü, TABLE CONSTRAINT ·Î ±â¼úÇÒ ¼ö ÀÖ´Â °ÍÀº TABLE CONSTRAINT ·Î Á¤ÀÇÇϽÿÀ.)
CREATE TABLE S_EMP(ID NUMBER(7), LAST_NAME VARCHAR2(25) CONSTRAINT S_EMP_LAST_NAME_NN NOT NULL,
FIRST_NAME VARCHAR2(25), USERID VARCHAR2(8) CONSTRAINT S_EMP_USERID_NN NOT NULL,
START_DATE DATE DEFAULT SYSDATE, COMMENTS VARCHAR2(25), MANAGER_ID NUMBER(7),
TITLE VARCHAR2(25),
DEPT_ID NUMBER(7),
SALARY NUMBER(11,2),
COMMISSION_PCT NUMBER(4,2),
CONSTRAINT S_EMP_ID_PK PRIMARY KEY(ID),
CONSTRAINT S_EMP_USERID_UK UNIQUE,
CONSTRAINT S_EMP_DEPT_ID_FK FOREIGN KEY(DEPT_ID)
REFERENCES S_DEPT(ID),
CONSTRAINT S_EMP_COMMISSION_PCT CHECK
(COMMISSION_PCT IN (10, 12.5, 15, 17.5, 20))) ;

¡Ü Á¦ 7 Àå. Data DICTIONARY
• DICTIONARY
? DATABASE °¡ ¸¸µé¾î Á³À»¶§ DICTIONARY TABLE µµ ¸¸µé¾î Áø´Ù.
? DATABASE °¡ »ç¿ëÁßÀ϶§ DICTIONARY TABLE Àº ORACLE7 SERVER ¿¡ ÀÇÇØ UPDATE µÈ´Ù.
? »ç¿ëÀÚµéÀº DICTIONARY TABLE À» SELECT ÇÒ ¼ö ÀÖ´Ù. ? DICTIONARY TABLE Àº SYS USER ÀÇ ¼ÒÀ¯´Ù.
? DICTIONARY TABLEÀÇ °ªÀº ´ë¹®ÀÚ·Î µé¾îÀÖ´Ù. ? DICTIONARY TABLE ÀÇ Á¾·ù´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ¾Ë ¼ö ÀÖ´Ù.
SELECT¡¡¡¡ *
FROM ¡¡¡¡ DICTIONARY ;
DICTIONARY TABLE ÀÇ Á¾·ù´Â ´ÙÀ½°ú °°´Ù.
? USER : USER °¡ ¼ÒÀ¯ÇÏ°í ÀÖ´Â OBJECT ÀÇ Á¤º¸¸¦ º¸¿©ÁØ´Ù.
? ALL : USER °¡ ACCESS ÇÒ ¼ö ÀÖ´Â OBJECT ÀÇ Á¤º¸¸¦ º¸¿©ÁØ´Ù.
? DBA : DBA USER °¡ ACCESS ÇÒ ¼ö ÀÖ´Â OBJECT ÀÇ Á¤º¸¸¦ º¸¿©ÁØ´Ù.


- °è¼Ó(12) -


• È°¿ë¿¹
DICTIONARY TABLE ÀÇ °Ë»ö¿¹´Â ´ÙÀ½°ú °°´Ù.
¡á ÀÚ½ÅÀÌ °®°í ÀÖ´Â TABLE ÀÇ À̸§À» °Ë»öÇÑ´Ù.
SELECT¡¡¡¡ OBJECT_NAME - FROM ¡¡¡¡ USER_OBJECTS - WHERE ¡¡¡¡OBJECT_TYPE = 'TABLE';
¡á ÀÚ½ÅÀÌ °®°í ÀÖ´Â OBJECT ÀÇ Á¾·ù¸¦ °Ë»öÇÑ´Ù.
SELECT ¡¡¡¡DISTINCT OBJECT_TYPE - FROM ¡¡¡¡USER_OBJECTS;
¡á GRANT ¿Í °ü·ÃµÈ DICTIONARY TABLE ÀÇ À̸§À» °Ë»öÇÑ´Ù.
SELECT ¡¡¡¡TABLE_NAME - FROM ¡¡¡¡DICTIONARY - WHERE ¡¡¡¡UPPER(COMMENTS) LIKE '%GRANT%';
¡á S_EMP TABLE ÀÇ CONSTRAINT Á¾·ù¸¦ °Ë»öÇÑ´Ù.
SELECT ¡¡¡¡CONSTRAINT_NAME, CONSTRAINT_TYPE, SEARCH_CONDITION, R_CONSTRAINT_NAME
FROM ¡¡¡¡USER_CONSTRAINTS - WHERE ¡¡¡¡TABLE_NAME = 'S_EMP';
¡á S_EMP TABLE ÀÇ COLUMN CONSTRAINT ¸¦ °Ë»öÇÑ´Ù.
SELECT CONSTRAINT_NAME, COLUMN_NAME - FROM USER_CONS_COLUMNS - WHERE ¡¡¡¡TABLE_NAME = 'S_EMP';

¡Ü Á¦ 8 Àå. Data Á¶ÀÛ
• µ¥ÀÌŸ ÀÔ·Â
TABLE Àüü COLUMN ¿¡ °ªÀ» ÀÔ·ÂÇÑ´Ù.
INSERT INTO table¸í - VALUES (value, value...);
[ ¿¹Á¦ ] S_EMP TABLE¿¡ ´ÙÀ½°ú °°Àº µ¥ÀÌŸ¸¦ ÀÔ·ÂÇϽÿÀ.
[ID : 26, LAST_NAME : Jung Mi, FIRST_NAME : Hong, USERID : Hjungmi,
START_DATE : 05-APR-97, COMMENTS : Teacher, MANAGER_ID : 10,
TITLE : Stock Clerk, DEPT_ID : 45, SALARY : 1200 COMMISSION_PCT : 10]
INSERT INTO S_EMP
VALUES (26, 'Jung Mi', 'Hong', 'Hjungmi', '05-APR-97', Teacher', 10, 'Stock Clerk', 45, 1200, 10) ;
(°ªÀ» ÁöÁ¤ÇÏ´Â ¼ø¼­´Â TABLE ÀÇ COLUMN ¼ø¼­¿¡ ¸ÂÃá´Ù. ÀÌ ¹æ¹ýº¸´Ù´Â COLUMN¸íÀ» ±â¼úÇÏ¿© ÀÔ·ÂÇÏ´Â ¹æ¹ýÀÌ ´õ ÁÁ´Ù.)

• ƯÁ¤ column¿¡ µ¥ÀÌÅÍÀÔ·Â
µ¥ÀÌŸ¸¦ ÀÔ·ÂÇÏ°íÀÚ ÇÏ´Â COLUMNÀ» ¼±ÅÃÇÏ¿© ÀÔ·ÂÇÑ´Ù.
INSERT INTO table¸í(column¸í, column¸í....) - VALUES (value, value....);
[ ¿¹Á¦ ] S_EMP TABLE ¿¡ ´ÙÀ½°ú °°Àº µ¥ÀÌŸ¸¦ ÀÔ·ÂÇϽÿÀ.
[ID : 27, LAST_NAME : Smith, FIRST_NAME : Donna, START_DATE : 05-APR-97]
INSERT INTO S_EMP(ID, LAST_NAME, FIRST_NAME, START_DATE)
VALUES (27, 'Smith', 'Donna', '05-APR-97') ;

• Null, Ư¼ö value ÀÔ·Â
COLUMN °ª¿¡ NULL °ªÀ» ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº 3 °¡Áö°¡ ÀÖ´Ù. ? INSERT ¹®ÀåÀÇ COLUMN LIST ¿¡¼­ »ý·«ÇÑ´Ù.
? INSERT ¹®ÀåÀÇ VALUE Àý¿¡¼­ NULL ·Î ÁöÁ¤ÇÑ´Ù. ? INSERT ¹®ÀåÀÇ VALUE Àý¿¡¼­ '' ·Î ÁöÁ¤ÇÑ´Ù.
COLUMN °ª¿¡ Ư¼öÇÑ °ªÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù. (SYSDATE : ÇöÀ糯¥¿Í ½Ã°£, USER : ÇöÀç USERID)
[ ¿¹Á¦ ] S_EMP TABLE ¿¡ ´ÙÀ½°ú °°Àº µ¥ÀÌŸ¸¦ ÀÔ·ÂÇϽÿÀ.
[ID : 29, LAST_NAME : Donna, USERID : USER, SALARY : NULL, START_DATE : SYSDATE]
INSERT INTO S_EMP(ID, LAST_NAME, USERID, SALARY, START_DATE)
VALUES (29, 'Donna', USER, NULL, SYSDATE);



- °è¼Ó(13) -


• Ư¼öÇüÅÂÀÇ ³¯Â¥/½Ã°£ÀÔ·Â
DATE °ªÀ» ÀÔ·ÂÇÒ ¶§´Â ÁöÁ¤µÈ DATE ÇüÅ·ΠÀÔ·ÂÇÏ¿©¾ß ÇÑ´Ù.
ÀϹÝÀûÀ¸·Î DD-MON-YY ÇüŸ¦ »ç¿ëÇϸç, ÀÌ ÇüÅ·Πµ¥ÀÌŸ¸¦ ÀÔ·ÂÇÏ¸é ¼¼±â´Â ÇöÀçÀÇ ¼¼±â·Î, ½Ã°£Àº ÀÚÁ¤À¸·Î ÀԷµȴÙ.
´Ù¸¥ ¼¼±âÀÇ ³¯Â¥³ª ½Ã°£À» ÀÔ·ÂÇÏ°í ½ÍÀ¸¸é TO_DATE FUNCTION À» »ç¿ëÇÑ´Ù.
ÁöÁ¤µÈ ÇüÅ°¡ ¾Æ´Ñ ´Ù¸¥ ÇüÅÂÀÇ ³¯Â¥ °ªÀ» ÀÔ·ÂÇÑ´Ù. ex>TO_DATE('³¯Â¥°ª','³¯Â¥ÇüÅÂ')
[ ¿¹Á¦ ] S_EMP TABLE ¿¡ ´ÙÀ½°ú °°Àº µ¥ÀÌŸ¸¦ ÀÔ·ÂÇϽÿÀ.
[ID : 30, LAST_NAME : Donna, USERID : SQL01, START_DATE : 199704051400]
INSERT INTO S_EMP(ID, LAST_NAME, USERID, START_DATE)
VALUES (30, 'Donna', 'SQL01', TO_DATE('199704051400','YYYYMMDDHH24MI'));

• ´Ù¸¥table·ÎºÎÅÍ µ¥ÀÌŸÀÔ·Â
INSERT ¹®ÀåÀ» »ç¿ëÇÏ¿© ±âÁ¸ÇÏ´Â TABLE ÀÇ µ¥ÀÌŸ¸¦ ´Ù¸¥ TABLE ·Î COPY ÇÒ ¼ö ÀÖ´Ù.
INSERT INTO table¸í[(column¸í, column¸í...)] - SUBQUERY;
[ ¿¹Á¦ ] S_EMP TABLE ÀÇ ROWµéÀ» HISTORY TABLE ·Î COPY ÇϽÿÀ.
(´Ü, 01-JAN-94 ÀÌÀü¿¡ ÀÔ»çÇÑ »ç¿øÀÇ ID,LAST_NAME,SALARY,START_DATE ¸¦ COPY ÇϽÿÀ)
INSERT INTO HISTORY(ID, LAST_NAME, SALARY, START_DATE)
SELECT ID, LAST_NAME, SALARY, START_DATE
FROM S_EMP WHERE START_DATE < '01-JAN-94' ;
(INSERT ÀýÀÇ COLUMN ¼ö¿Í SELECT ÀýÀÇ COLUMN ¼ö´Â °°¾Æ¾ß ÇÑ´Ù.)

• µ¥ÀÌŸ ¼öÁ¤
UPDATE ¹®ÀåÀ» »ç¿ëÇÏ¿© ÀÌ¹Ì Á¸ÀçÇÏ´Â COLUMN °ªÀ» ¼öÁ¤ÇÑ´Ù.
UPDATE table¸í - SET column¸í = value, [column¸í = value] - [WHERE Á¶°Ç½Ä] ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ ID °¡ 1 ÀÎ »ç¿øÀÇ µ¥ÀÌŸ¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇϽÿÀ. (DEPT_ID : 32, SALARY : 2550)
UPDATE S_EMP SET DEPT_ID = 32, SALARY = 2550 WHERE ID = 2 ;

• µ¥ÀÌŸ »èÁ¦
DELETE ¹®ÀåÀ» »ç¿ëÇÏ¿© µ¥ÀÌŸ¸¦ »èÁ¦ÇÑ´Ù.
DELETE FROM table¸í - [WHERE Á¶°Ç½Ä] ;
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ ID °¡ 20 º¸´Ù Å« »ç¿øÀ» »èÁ¦ÇϽÿÀ.
DELETE FROM S_EMP WHERE ID > 20 ;

• ÀúÀå
COMMIT ¹®Àå(COMMIT;)¿¡ ÀÇÇØ º¯°æµÈ ¸ðµç ³»¿ëÀÌ DATABASE¿¡ ÀúÀåµÇ¸ç º¯°æµÈ ¸ðµç µ¥ÀÌŸ´Â DATABASE¿¡ ÀúÀåµÈ´Ù.
±× ÀüÀÇ µ¥ÀÌŸ´Â ¿ÏÀüÈ÷ Áö¿öÁö¸ç ¸ðµç »ç¿ëÀÚ°¡ º¯°æÇÑ ³»¿ëÀ» º¼ ¼ö ÀÖ°í º¯°æµÈ ROW ¿¡ °É·ÁÀÖ´ø LOCK ÀÌ ÇØÁ¦µÈ´Ù.
±×·¯¹Ç·Î ´Ù¸¥ »ç¿ëÀÚ°¡ ¼öÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç ¸ðµç SAVEPOINT °¡ ¾ø¾îÁø´Ù.
TRANSACTION À» Á¾·áÇÏ°í TRANSACTION ¾ÈÀÇ ¸ðµç º¯°æµÈ ÀÛ¾÷À» ÀúÀåÇÑ´Ù.

• Ãë¼Ò
ROLLBACK ¹®Àå(ROLLBACK)Àº ¸ðµç º¯°æµÈ ³»¿ëÀ» Ãë¼ÒÇÏ¸ç ¼öÁ¤Çϱâ ÀüÀÇ µ¥ÀÌŸ°¡ º¹±¸µÈ´Ù.
º¯°æµÈ ROW ¿¡ °É·ÁÀÖ´ø LOCK ÀÌ ÇØÁ¦µÇ°í ´Ù¸¥ »ç¿ëÀÚµéÀÌ ±× ROW ¿¡ ´ëÇؼ­ º¯°æÀ» ÇÒ ¼ö ÀÖ´Ù.
TRANSACTION À» Á¾·áÇÏ°í TRANSACTION ¾ÈÀÇ ¸ðµç º¯°æµÈ ÀÛ¾÷À» Ãë¼ÒÇÑ´Ù.



- °è¼Ó(14) -


• SavepointÁöÁ¤~Ãë¼Ò
TRANSACTION ¾È¿¡¼­ ROLLBACK ÇÒ ¼ö ÀÖ´Â POINT ¸¦ ÁöÁ¤ÇÑ´Ù. ÁöÁ¤µÈ POINT ±îÁö¸¸ ROLLBACK ÇÑ´Ù.
SAVEPOINT savepoint¸í ; - ROLLBACK TO savepoint¸í ;
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ TITLEÀÌ Stock Clerk ÀÎ »ç¿øÀÇ SALARY ¸¦ 10% ÀλóÇϽÿÀ. SAVEPOINT ¸¦ ÁöÁ¤ÇϽÿÀ.
S_REGION TABLE ¿¡ ´ÙÀ½°ú °°Àº µ¥ÀÌŸ¸¦ ÀÔ·ÂÇϽÿÀ. ID : 8, NAME : Central
SAVEPOINT ±îÁö ROLLBACK ÇϽÿÀ. UPDATE °á°ú¸¦ ÀúÀåÇϽÿÀ.
UPDATE S_EMP SET SALARY = SALARY * 1.1 WHERE TITLE = 'Stock Clerk' ; SAVEPOINT S1;
INSERT INTO S_REGION(ID, NAME) VALUES (8, 'Central') ; ROLLBACK TO S1; COMMIT;

¡Ü Á¦ 9 Àå. Tableº¯°æ/»èÁ¦
• Column Ãß°¡
TABLE ¿¡ »õ·Î¿î COLUMN À» Ãß°¡ÇÑ´Ù.
ALTER TABLE table¸í - ADD (column¸í type(size) [DEFAULT value] [column_constraint], - ...........) ;
[ ¿¹Á¦ ] S_REGION TABLE ¿¡ ´ÙÀ½°ú °°Àº COLUMN À» Ãß°¡ÇϽÿÀ. (COMMENTS VARCHAR2(25))
ALTER TABLE S_REGION ADD (COMMENTS VARCHAR2(25))
(Ãß°¡µÉ COLUMN ÀÇ À§Ä¡´Â ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. »õ·Î¿î COLUMN Àº ¸¶Áö¸· À§Ä¡¿¡ »ý¼ºµÈ´Ù.)

• Column º¯°æ
ALTER TABLE ¹®ÀåÀÇ MODIFY ÀýÀ» »ç¿ëÇÏ¿© ´ÙÀ½°ú °°Àº º¯°æÀ» ÇÒ ¼ö ÀÖ´Ù. COLUMN ÀÇ Å©±â¸¦ È®ÀåÇÒ ¼ö ÀÖ´Ù.
µ¥ÀÌŸ°¡ µé¾îÀÖÁö ¾ÊÀ¸¸é COLUMN ÀÇ Å©±â¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù. µ¥ÀÌŸ°¡ µé¾îÀÖÁö ¾Ê´Ù¸é COLUMN ÀÇ Å¸ÀÔÀ» ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.
COLUMN ¿¡ NULL °ªÀÌ ¾ø´Ù¸é NOT NULL CONSTRAINT ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. DEFAULT VALUE ¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù.
ÀÌ¹Ì »ý¼ºµÇ¾î ÀÖ´Â COLUMN À» º¯°æÇÑ´Ù.
ALTER TABLE table¸í - MODIFY (column¸í type(size) [DEFAULT value] [NOT NULL], - .............) ;

• Constraint Ãß°¡
ÀÌ¹Ì »ý¼ºµÇ¾î ÀÖ´Â TABLE ¿¡ CONSTRAINT ¸¦ Ãß°¡ÇÑ´Ù.
ALTER TABLE table¸í - ADD (table_constraint) ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡ ´ÙÀ½°ú °°Àº CONSTRAINT ¸¦ Ãß°¡ÇϽÿÀ.
[ MANAGER_ID COLUMN ÀÌ S_EMP TABLE ÀÇ ID COLUMN À» REFERENCE ÇÏ´Â FOREIGN KEY CONSTRAINT ¸¦ Ãß°¡ÇϽÿÀ. ]
ALTER TABLE S_EMP
ADD (CONSTRAINT S_EMP_MANAGER_ID_FK FOREIGN KEY(MANAGER_ID) REFERENCES S_EMP(ID)) ;

• Constraint »èÁ¦
ÀÌ¹Ì »ý¼ºµÇ¾î ÀÖ´Â TABLE ÀÇ CONSTRAINT ¸¦ »èÁ¦ÇÑ´Ù.
ALTER TABLE table¸í - DROP PRIMARY KEY | - UNIQUE(column¸í) | - CONSTRAINT constraint¸í [CASCADE] ;
[ ¿¹Á¦ ] S_EMP TABLEÀÇ ´ÙÀ½°ú °°Àº CONSTRAINT¸¦ »èÁ¦ÇϽÿÀ. (MANAGER_ID COLUMNÀÇ FOREIGN KEY CONSTRAINT)
ALTER TABLE S_EMP DROP CONSTRAINT S_EMP_MANAGER_ID_FK ;

• Àüü µ¥ÀÌŸÀÇ »èÁ¦
TRUNCATE ¹®ÀåÀº DDL ÀÌ´Ù. ROLLBACK SEGMENT ¸¦ ¸¸µéÁö ¾Ê°í ¸ðµç µ¥ÀÌŸ¸¦ »èÁ¦ÇÑ´Ù.
µ¥ÀÌŸ°¡ »èÁ¦µÈ FREE ¿µ¿ªÀº ȯ¿øµÈ´Ù. TABLE ·ÎºÎÅÍ ¸ðµç µ¥ÀÌŸ¸¦ »èÁ¦ÇÑ´Ù.
TRUNCATE TABLE table¸í ;
[ ¿¹Á¦ ] S_ITEM TABLE ÀÇ ¸ðµç µ¥ÀÌŸ¸¦ »èÁ¦ÇϽÿÀ.
TRUNCATE TABLE S_ITEM ;

- °è¼Ó(15) -


• Constraint disable/enable
TABLE ¿¡ ÀÖ´Â ¸ðµç µ¥ÀÌŸ°¡ CONSTRAINT ¸¦ ¸¸Á·½ÃÄÑ¾ß ENABLE ÇÒ ¼ö ÀÖ´Ù.
PRIMARY KEY, UNIQUE CONSTRAINT ¸¦ ENABLE ÇÏ¸é ±×¿¡ µû¸¥ INDEX FILE ÀÌ ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÈ´Ù.
CASCADE OPTION Àº FOREIGN KEY CONSTRAINT ¸¦ DISABLE ÇÒ ¶§ »ç¿ëÇÑ´Ù.
CONSTRAINT ¸¦ »èÁ¦ÇÏ°í »õ·Î ¸¸µéÁö ¾Ê°í DISABLE, ENABLE ÇÑ´Ù.
ALTER TABLE table¸í-DISABLE |ENABLE PRIMARY KEY |-UNIQUE(column¸í) |CONSTRAINT constraint¸í [CASCADE] ;
[ ¿¹Á¦ ] S_DEPT TABLE ÀÇ PRIMARY KEY CONSTRAINT ¸¦ DISABLE ½ÃÅ°½Ã¿À.
ALTER TABLE S_DEPT DISABLE CONSTRAINT S_DEPT_ID_PK CASCADE;
(S_EMP TABLE ÀÇ S_EMP_DEPT_ID_FK CONSTRAINT µµ ÀÚµ¿ÀûÀ¸·Î DISABLE µÈ´Ù.)

• Table »èÁ¦
TABLE À» »èÁ¦ÇÏ¸é ±× TABLE ¿¡ µþ¸° INDEX FILE µµ »èÁ¦µÈ´Ù.
VIEW, SYNONYM, STORED PROCEDURE, FUNCTION, TRIGGER µîÀº »èÁ¦µÇÁö ¾Ê´Â´Ù.
CASCADE CONSTRAINTS ´Â ¸ð TABLE À» »èÁ¦ÇÏ°í ÀÚ TABLE ÀÇ FOREIGN KEY CONSTRAINT µµ »èÁ¦ÇÑ´Ù.
DROP TABLE table¸í [CASCADE CONSTRAINTS] ;
[ ¿¹Á¦ ] S_DEPT TABLE À» »èÁ¦ÇϽÿÀ.
DROP TABLE S_DEPT CASCADE CONSTRAINTS ;

• À̸§ÀÇ º¯°æ
TABLE, VIEW, SEQUENCE, SYNONYM ÀÇ À̸§À» º¯°æÇÑ´Ù.
RENAME old¸í TO new¸í ;
[ ¿¹Á¦ ] S_ORD TABLE ÀÇ À̸§À» S_ORDER ·Î º¯°æÇϽÿÀ.
RENAME S_ORD TO S_ORDER ;

¡Ü Á¦ 10 Àå. Sequence
• Sequence »ý¼º
SEQUENCE ´Â ¿©·¯ »ç¿ëÀÚ¿¡°Ô UNIQUE ÇÑ °ªÀ» »ý¼ºÇØ ÁÖ´Â OBJECT ÀÌ´Ù.
SEQUENCE ¸¦ »ç¿ëÇÏ¿© PRIMARY KEY °ªÀ» ÀÚµ¿ÀûÀ¸·Î »ý¼ºÇÑ´Ù.
CREATE SEQUENCE sequence¸í - INCREMENT BY n - START WITH n - MAXVALUE n | NOMAXVALUE
MINVALUE n | NOMINVALUE - CYCLE | NOCYCLE - CACHE n | NOCACHE ;
[ ¿¹Á¦ ] S_DEPT TABLE ÀÇ ID COLUMN °ª¿¡ »ç¿ëÇÒ SEQUENCE ¸¦ ´ÙÀ½°ú °°ÀÌ »ý¼ºÇϽÿÀ.
(START : 51, INCREMENT : 1, MAXVALUE : 9999999, NOCYCLE, NOCACHE)
CREATE SEQUENCE S_DEPT_ID INCREMENY BY 1 START WITH 51
MAXVALUE 9999999 NOCACHE NOCYCLE ;

• Sequence º¯°æ
SEQUENCE ¿¡ Á¤ÀÇµÈ °ªÀ» º¯°æÇÑ´Ù.
ALTER SEQUENCE sequence¸í - INCREMENT BY n - MAXVALUE n | NOMAXVALUE - MINVALUE n | NOMINVALUE
CYCLE | NOCYCLE - CACHE n | NOCACHE ; -
[ ¿¹Á¦ ] S_DEPT_ID SEQUENCE ¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇϽÿÀ. (CACHE : 10)
ALTER SEQUENCE S_DEPT_ID
CACHE 10 ;



- °è¼Ó(16) -


• Sequence »èÁ¦
SEQUENCE ¸¦ »èÁ¦ÇÑ´Ù.
DROP SEQUENCE sequence¸í ;
[ ¿¹Á¦ ] S_DEPT_ID SEQUENCE ¸¦ »èÁ¦ÇϽÿÀ.
DROP SEQUENCE S_DEPT_ID ;

¡Ü Á¦ 11 Àå. VIEW
• Simple view
SUBQUERY ¹®ÀåÀÌ °£´ÜÇÑ °æ¿ì VIEW ¸¦ ÅëÇØ SELECT,INSERT,UPDATE,DELETE ¸¦ ÇÒ ¼ö ÀÖ´Ù.
¡á SELECT : SUBQUERY ÀÇ Á¶°Ç½ÄÀ» ¸¸Á·ÇÏ´Â µ¥ÀÌŸ¸¸ °Ë»öµÈ´Ù.
¡á INSERT : NOT NULL COLUMN À» ´Ù Æ÷ÇÔÇÏ°í ÀÖ´Â °æ¿ì INSERT ¸¦ ÇÒ ¼ö ÀÖ´Ù.
SUBQUERY ÀÇ Á¶°Ç½ÄÀ» ¸¸Á·ÇÏÁö ¾Ê´Â µ¥ÀÌŸµµ ÀÔ·ÂÀÌ °¡´ÉÇÏ´Ù.
¡á UPDATE : VIEW ¸¦ ÅëÇØ SELECT ÇÒ ¼ö ÀÖ´Â µ¥ÀÌŸ¸¸ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.
SUBQUERY ÀÇ Á¶°Ç½ÄÀ» ¸¸Á·ÇÏÁö ¾Ê´Â µ¥ÀÌŸµµ ¼öÁ¤ÀÌ °¡´ÉÇÏ´Ù.
¡á DELETE : VIEW ¸¦ ÅëÇØ SELECT ÇÒ ¼ö ÀÖ´Â µ¥ÀÌŸ¸¸ »èÁ¦ÇÒ ¼ö ÀÖ´Ù.
CREATE VIEW view¸í [(alias¸í, alias¸í....)] - AS SUBQUERY ;
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ DEPT_ID°¡ 45ÀÎ »ç¿øÀÇ ID, LAST_NAME, DEPT_ID, TITLEÀ» ¼±ÅÃÇؼ­ VIEW¸¦ »ý¼ºÇϽÿÀ.
CREATE VIEW EMP41 AS SELECT ID, LAST_NAME, DEPT_ID, TITLE
FROM S_EMP WHERE DEPT_ID = 45 ;

• With check option
VIEW ¸¦ Á¤ÀÇÇÒ¶§ ÁöÁ¤ÇÑ Á¶°Ç½ÄÀ» ¸¸Á·ÇÏ´Â µ¥ÀÌŸ¸¸ INSERT, ¶Ç´Â Á¶°Ç½ÄÀ» ¸¸Á·ÇÏ´Â µ¥ÀÌÅͷθ¸ UPDATE °¡ °¡´ÉÇÏ´Ù.
µ¥ÀÌŸ°¡ VIEW ÀÇ Á¶°Ç½ÄÀ» ¸¸Á·ÇÏ´ÂÁö CHECK ÇÑ´Ù.
CREATE VIEW view¸í [ (alias¸í, alias¸í...)] - AS SUBQUERY - WITH CHECK OPTION ;
[ ¿¹Á¦ ] S_EMP TABLE¿¡¼­ DEPT_ID°¡ 45ÀÎ »ç¿øÀÇ ID, LAST_NAME, DEPT_ID, TITLEÀ» ¼±ÅÃÇؼ­ VIEW¸¦ »ý¼ºÇϽÿÀ.
(´Ü, DEPT_ID °¡ 45 °¡ ¾Æ´Ñ »ç¿øÀº ÀԷµÇÁö ¸øÇÏ°Ô ¸¸µå½Ã¿À.)
CREATE VIEW EMP45 AS SELECT ID, LAST_NAME, DEPT_ID, TITLE
FROM S_EMP WHERE DEPT_ID = 45 WITH CHECK OPTION ;

• With read only
SELECT¸¸ °¡´ÉÇÑ VIEW ¸¦ »ý¼ºÇÑ´Ù.
CREATE VIEW view¸í [(alias¸í, alias¸í...)] - AS SUBQUERY - WITH READ ONLY ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ ID, LAST_NAME, DEPT_ID, SALARY °¡ SELECT ¸¸ µÇµµ·Ï VIEW ¸¦ »ý¼ºÇϽÿÀ.
CREATE VIEW R_EMP AS SELECT ID, LAST_NAME, SALARY
FROM S_EMP WITH READ ONLY ;

• Force
±âÁØ TABLE ÀÌ Á¸ÀçÇÏÁö ¾Ê¾Æµµ VIEW ¸¦ »ý¼ºÇÑ´Ù.
CREATE FORCE VIEW view¸í [(alias¸í, alias¸í...)] - AS SUBQUERY ;
[ ¿¹Á¦ ] S_EMP TABLE ÀÌ ¾ø¾îµµ S_EMP TABLE ¿¡¼­ ID, LAST_NAME, SALARY ¸¦ ¼±ÅÃÇؼ­ VIEW ¸¦ »ý¼ºÇϽÿÀ.
CREATE FORCE VIEW T_EMP
AS SELECT ID, LAST_NAME, SALARY
FROM S_EMP ;


- °è¼Ó(17) -


• complex view
SUBQUERY¹®Àå¿¡ JOIN, FUNCTION, DISTINCT/¿¬»êÀÌ Æ÷ÇÔµÈ °æ¿ì¸¦ ¸»Çϸç ÀÌ °æ¿ì VIEW¸¦ ÅëÇÑ DMLÀº ¼öÇàÇÒ ¼ö ¾ø´Ù.
COMPLEX VIEW ¸¦ »ý¼ºÇÑ´Ù. CREATE VIEW view¸í (alias¸í, alias¸í...) - AS SUBQUERY ;
[ ¿¹Á¦ ] S_EMP TABLE°ú S_DEPT TABLE¿¡¼­ ID, LAST_NAME, DEPT_ID, NAMEÀ» ¼±ÅÃÇؼ­ VIEW¸¦ »ý¼ºÇϽÿÀ.
CREATE VIEW EMPDEPT AS SELECT E.ID, E.LAST_NAME, E.DEPT_ID, D.NAME
FROM S_EMP E, S_DEPT D WHERE E.DEPT_ID = D.ID ;

• View »èÁ¦
VIEW ¸¦ »èÁ¦Çϸé DATABASE ·ÎºÎÅÍ VIEW ÀÇ Á¤ÀÇ°¡ »èÁ¦µÈ´Ù. VIEW °¡ ±âÃÊ·Î ÇÑ TABLE Àº »èÁ¦µÇÁö ¾Ê´Â´Ù.
DROP VIEW view¸í ;
[ ¿¹Á¦ ] EMPDEPT VIEW ¸¦ »èÁ¦ÇϽÿÀ.
DROP VIEW EMPDEPT ;

¡Ü Á¦ 12 Àå. Index
• Index »ý¼º
TABLE »ý¼º½Ã PRIMARY KEY ³ª UNIQUE CONSTRAINT ¸¦ ÁöÁ¤Çϸé UNIQUE INDEX °¡ ÀÚµ¿ÀûÀ¸·Î ¸¸µé¾î Áø´Ù.
ÀÌ ¿ÜÀÇ COLUMN À¸·Î QUERY ¸¦ ÇÒ ¶§ ¼Óµµ¸¦ Çâ»ó½ÃÅ°±â À§Çؼ­ INDEX ¸¦ »ý¼ºÇÑ´Ù.
INDEX¸¦ »ý¼ºÇϸé QUERY ¼Óµµ´Â »¡¶óÁú ¼ö ÀÖÀ¸³ª DML¼Óµµ´Â ´Ê¾îÁú ¼ö ÀÖ´Ù.
ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº °æ¿ì¿¡ INDEX ¸¦ »ý¼ºÇÑ´Ù.
¡á COLUMN ÀÌ WHERE ÀýÀ̳ª JOIN Á¶°Ç½Ä¿¡ ºó¹øÇÏ°Ô »ç¿ëµÉ ¶§ ¡á COLUMN °ªÀÌ ³Ð°Ô ºÐÆ÷µÇ¾î ÀÖÀ» ¶§
¡á COLUMN °ª¿¡ NULL °ªÀÌ ¸¹ÀÌ Æ÷ÇԵǾî ÀÖÀ» ¶§ ¡á TABLE ÀÌ Å©°í QUERY ÇÏ´Â µ¥ÀÌÅÍ ¾çÀÌ 10 % ÀÌÇÏÀÏ ¶§
CREATE [UNIQUE] INDEX index¸í - ON table¸í(column¸í[, column¸í...]) ;
[ ¿¹Á¦ ] S_EMP TABLE ¿¡¼­ LAST_NAME ÀÇ QUERY ¼Óµµ¸¦ Çâ»óÇϱâ À§ÇÏ¿© INDEX ¸¦ »ý¼ºÇϽÿÀ.
CREATE INDEX S_EMP_LAST_NAME_IDX ON S_EMP(LAST_NAME) ;

• Index »èÁ¦
INDEX ´Â ¼öÁ¤ÇÒ ¼ö ¾ø´Ù. ¼öÁ¤ÇÏ°í ½ÍÀº °æ¿ì »èÁ¦ÇÏ°í ´Ù½Ã »ý¼ºÇÑ´Ù.
DROP INDEX index¸í ;
[ ¿¹Á¦ ] S_EMP_LAST_NAME_IDX INDEX ¸¦ »èÁ¦ÇϽÿÀ.
DROP INDEX S_EMP_LAST_NAME_IDX ;

(Ãâó : 'DB¿¡ °üÇÏ¿© (¿À¶óŬ msSQL)' - ³×À̹ö Áö½ÄiN)


¸ñ·Ï

ºÐ·ù ¼±ÅÃ
64 ÀÏ¹Ý [SQL] ¿À¶óŬ ¼ÓµµÀúÇÏ ¹®Á¦ ÃßÃâ È£¼® 07-02-02 5369
63 ÀÏ¹Ý ¿À¶óŬ ÃʱâÈ­ ÆÄÀÏÀ» º¯°æÇؼ­ ¿ÀÇÂÇϱâ È£¼® 07-01-31 3475
62 ÀÏ¹Ý [Æ©´×] ¿À¶óŬ Æ©´× °ü·Ã Æß È£¼® 07-01-30 6261
61 ÀÏ¹Ý Åäµå 7.4 ±ò±¸³ª¼­ ¿¡·¯ ³ª¸é regedit ·Î Å°°ªÀ» º¯°æÇØ¾ßµÊ toad È£¼® 07-01-19 3946
60 ÀÏ¹Ý Äõ¸®¹æ½ÄÀ» ÀÌ¿ëÇÑ export dump data ¹Þ±â exp È£¼® 06-12-19 4034
59 ÀÏ¹Ý Æ©´×½ÎÀÌÆ® È£¼® 06-12-10 3613
58 ÀÏ¹Ý [ORA-06508] ¿¡·¯Ã³¸® È£¼® 06-09-05 6268
57 ÀÏ¹Ý [sql] Å×ÀÌºí ½ºÆäÀ̽º Á¤º¸ È®ÀÎ , Áõ°¡À²µµ È®ÀΠȣ¼® 06-08-17 11506
56 ÀÏ¹Ý ¿À¶óŬ È°¿ë¸í·É [ÀÎÅÍ³Ý ÂüÁ¶ÀÚ·á ] È£¼® 06-08-06 4370
ÀÏ¹Ý ¿À¶óŬ Á¤¸®ÀÚ·á sql [ÀÎÅÍ³Ý ÂüÁ¶ÀÚ·á ] È£¼® 06-08-06 4394
54 Áú¹® Á¶¾ðÀ» ºÎŹµå¸³µð´Ï´Ù. ³ªÁß¿¬ 06-07-26 2858
  ÀÏ¹Ý    Á¶¾ðÀ» ºÎŹµå¸³µð´Ï´Ù. È£¼® 06-08-06 3119
53 ÀÏ¹Ý ¿À¶óŬ Æ÷·³ .com ½ÎÀÌÆ® È£¼® 06-07-08 3376
52 ÀÏ¹Ý ÀÓÀÇ°èÁ¤À¸·Î sqlplus ½ÇÇà½Ã ¿¡·¯ ORA-27121 & Permission denied ÀÏ°æ¿ì È£¼® 06-06-28 4803
51 ÀÏ¹Ý XDB »èÁ¦ÈÄ ´Ù½Ã ¼³Ä¡Çϱâ (1) È£¼® 06-06-27 5323
óÀ½ÀÌÀü  [1] [2] [3] [4] [5] 6 [7] [8] [9] [10]  ´ÙÀ½¸Ç³¡

 
Copyright © zenos.pe.kr. All rights reserved.