|
|
Ȩ > Á¤º¸ÀÚ·á½Ç
 |
Á¦ ¸ñ |
 |
 |
[oracle] [Ãâó:Naver]DB¿¡ °üÇÏ¿© (¿À¶óŬ msSQL) |
 |
|
 |
±Û¾´ÀÌ |
 |
 |
±è¿µÀÏ |
 |
³¯ Â¥ |
 |
|
06-03-03 17:24 |
|
Á¶È¸(4662)
|
 |
|
Æ®·¢¹é ÁÖ¼Ò : http://netcop.woobi.co.kr/bbs/tb.php/k_pds/22
|
|
¿À¶óŬ°ú msSQL ¸í·É¾î¿¡´Â ¹¹°¡ ÀÖÀ»±î¿ä? °¢Á¾ °Ë»ö¿£Áø ã¾ÆºÁµµ ¸¶¶¥ÇÑ°Ô ¾ø¾î¿ä |
| ±×¿¡ ´ëÇÑ ´äº¯ÀÔ´Ï´Ù~ ^^* |
|
|
Áú¹®ÀÚ Æò ![]() °¨»çÇØ¿ä.. |
|
¿À¶óŬ°ú MSSQL À» È®½ÇÈ÷ ±¸ºÐ ÁöÀ¸¶ó¸é.. ±×°Ç Èûµé°Å °°±¸¿©~ ^^;;
±Û½ê¿ä.. ±×³É Á¦°¡ óÀ½ SQL°øºÎÇÏ¸é¼ ÀÚ·á Á¤¸®ÇѰ͵éÀÔ´Ï´Ù...
¹«¾ù¹«¾ùÀÌ Àִ°¡.. ºñ±³¸¦ Ç϶ó.. ÀÌ·± ¸»µéÀÌ ¾øÀ¸¼Å¼ ±×³É ÀÌ ÀڷḸÀ¸·Îµµ ÃæºÐÇÒ°Å °°¾Æ¼.. ¿Ã¸³´Ï´Ù.. ±×³É Âü°í Çϼ¼¿ä~ ^^*
¿À¶óŬÀ» À§ÁÖ·Î °øºÎÇ߱⠶§¹®¿¡ ¿À¶óŬ¿¡¼ ¸¹ÀÌ »ç¿ëÇÏ´Â ¸í·É¹®°ú ¾ð¾îµé ¸ðÀ½ÀÌ ¸¹½À´Ï´Ù.. SQLÀº °ÅÀÇ´Ù ºñ½ÁÇϱ⠶§¹®¿¡ ±»ÀÌ µûÁöÁö ¾ÊÀ¸½Ã¸é ÁÁÀº Âü°íÀÚ·á°¡ µÉ°Å¶ó°í È®½ÅÇÕ´Ï´Ù~ *^__^*
Ȥ½Ã ºÎÁ·ÇÑ Á¡À̳ª ´õ ¾Ë¾Æ¾ß ÇÒ°æ¿ì¿¡´Â ¸ÞÀϳª Ãß°¡Áú¹®¿¡ ³²°ÜÁÖ¼¼¿ä~ ±×·³~! *^^*
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 ; |
| ³»¿ëÃâó : º»ÀÎÀÇ °æÇè~! *^^* |
|
|
|