//************************************************ -- SQLPLUS ½ÇÇà CMD>sqlplus scott/java301$ -- Å×ÀÌºí ¸ñ·Ï È®ÀÎ SQL>SELECT * FROM TAB; -- Å×ÀÌºí ±¸Á¶ È®ÀÎ SQL>DESC[RIBE] insa; //************************************************ -- iSQL*Plus ½ÇÇà(ÀÏ¹Ý »ç¿ëÀÚ) http://ÄÄÇ»Å͸í:5560/isqlplus/ -- em ½ÇÇà(°ü¸®ÀÚ ¿µ¿ª) http://ÄÄÇ»Å͸í:1158/em -- tnsnames.ora ¿¡ Á¤ÀÇµÈ connect_identifier À¸·Î Á¢¼Ó CMD>sqlplus scott/tiger@ora111 -- ora111 : tnsnames.ora ¿¡ Á¤ÀÇµÈ connect_identifier //************************************************ -- SQL ¿¡¼­ CMD âÀ¸·Î Àá½Ã ºüÁ® ³ª°¡¾ß ÇÏ´Â °æ¿ì SQL>HOST CMD>EXIT -- SQL ·Î º¹±Í //************************************************ -- sqlplus ¿¡¼­ *.sql ÆÄÀÏ ½ÇÇà -- ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â °æ·Î¿¡¼­ sqlplus¸¦ ½ÇÇàÇÏ°í, -- "@ÆÄÀϸí" ¸í·ÉÀ» ½ÇÇàÇÏ¸é µÈ´Ù. SQL>@ex.sql -- °æ·Î¸¦ ÁöÁ¤ÇÏ¿© ½ÇÇà SQL>@d:\sql\ex.sql -- sqlplus ¿¡¼­ sql ÀÛ¾÷ ³»¿ë ÀÚµ¿ ÀúÀåÇϱâ SQL>spool d:\sql\test.txt SQL>SELECT * FROM insa; -- d:\sql\test.txt ÆÄÀÏ »ý¼º SQL>spool off -- ½ºÇ® Á¤Áö //************************************************ -- »ê¼ú¿¬»êÀÚ + : µ¡¼À - : »¬¼À * : °ö¼À / : ³ª´°¼À ( ) : °ýÈ£ -- ºñ±³¿¬»êÀÚ = : °°´Ù. > : Å©´Ù. >= : Å©°Å³ª °°´Ù. < : Àû´Ù. <= : À۰ųª °°´Ù. <> : °°Áö ¾Ê´Ù. != : °°Áö ¾Ê´Ù. -- ³í¸® ¿¬»êÀÚ AND : ³í¸® °ö OR : ³í¸® ÇÕ NOT : ºÎÁ¤ -- SQL ¿¬»êÀÚ IN(°ª, °ª, ...) : ÇÇ¿¬»êÀÚ°¡ ½Ä ¸ñ·Ï Áß Çϳª¿Í µ¿ÀÏÇÑ °æ¿ì TRUE BETWEEN ~ AND: ÇÇ¿¬»êÀÚ°¡ ¹üÀ§ ¾È¿¡ ÀÖ´Â °æ¿ì TRUE LIKE : ÇÇ¿¬»êÀÚ°¡ ÆÐÅÏ°ú ÀÏÄ¡ÇÏ´Â °æ¿ì TRUE -- ¹®ÀÚ¿­ ¿¬°á ¿¬»êÀÚ || : ¹®ÀÚ¿­ ¿¬°á //************************************************ -- ÀÚ·á °Ë»ö -- Çü½Ä : SELECT Çʵå¸í, Çʵå¸í ..... FROM Å×À̺í -- ±â¼ú ¼ø¼­ FROMÀý -> WHEREÀý -> GROUP BY Àý -> SELECT Àý -> ORDER BY Àý -- Àüü ÀÚ·á Ãâ·Â SQL>SELECT * FROM INSA; -- À̸§, ÀüÈ­¹øÈ£, ºÎ¼­ SELECT name, tel, buseo FROM insa; -- Çʵå¸í º¯°æ SELECT name AS À̸§, tel AS "ÀüÈ­¹øÈ£", buseo ºÎ¼­ FROM insa; -- ¿¬»ê SELECT name, basicpay/10000 ±âº»±Þ FROM insa; SELECT name || ' ´Ô' AS À̸§, city Ãâ½Åµµ FROM insa; //************************************************ -- Á¶°Ç °Ë»ö SELECT name, city FROM insa WHERE city='¼­¿ï'; SELECT name, city, basicpay FROM insa WHERE city='¼­¿ï' AND basicpay>=2000000; -- ±âº»±Þ+¼ö´çÀÌ 200¸¸¿ø ÀÌ»óÀÌ°í ¼­¿ï»ç¶÷(À̸§, ±âº»±Þ+¼ö´ç Ãâ½Åµµ) SELECT name as À̸§, basicpay+sudang as "±Þ¿©",city as Ãâ½Åµµ FROM insa WHERE basicpay+sudang>=2000000 AND city='¼­¿ï'; //************************************************ -- Å×ÀÌºí ±¸Á¶ È®ÀÎ DESC INSA; //************************************************ -- DUAL -- DUAL Å×À̺íÀº µ¥ÀÌÅÍ µñ¼Å³Ê¸®¿Í ÇÔ²² Oracle¿¡ ÀÇÇØ ÀÚµ¿À¸·Î »ý¼ºµÇ´Â -- Å×À̺í·Î »ç¿ëÀÚ SYSÀÇ ½ºÅ°¸¶¿¡ Á¸ÀçÇϸç, ¸ðµç »ç¿ëÀÚ°¡ »ç¿ë °¡´ÉÇÏ´Ù. //************************************************ -- ½ºÄ®¶ó ÇÔ¼ö ------------------------------------------------------------------ -- SUBSTR (char, m [,n]) : ¹®ÀÚ¿­ ÃßÃâ SELECT SUBSTR('Seoul Korea', 7, 3) FROM DUAL; -- 'Kor' SELECT SUBSTR('Seoul Korea', -5, 3) FROM DUAL; -- 'Kor' SELECT SUBSTR('Seoul Korea', 7) FROM DUAL; -- 'Korea' SELECT name, ssn, city FROM insa WHERE city='¼­¿ï' AND (SUBSTR(ssn, 8, 1)='1' OR SUBSTR(ssn, 8, 1)='3'); SELECT name, ssn, city FROM insa WHERE city='¼­¿ï' AND (SUBSTR(ssn, 8, 1) IN ('1', '3')); -- »ý³â¿ùÀÏÀÌ 78~82³â»ý¸¸ Ãâ·Â(À̸§, ÁֹιøÈ£) SELECT name, ssn FROM insa WHERE SUBSTR(ssn, 1, 2) >= 78 AND SUBSTR(ssn, 1, 2) <= 82; -- ¼­¿ï»ç¶÷À̸鼭 ±è¾¾¸¸ Ãâ·Â(À̸§, Ãâ½Åµµ) SELECT name, city FROM insa WHERE city='¼­¿ï' AND SUBSTR(name, 1, 1)='±è'; ------------------------------------------------------------------ -- LENGTH (column | expression) : ¹®ÀÚ¿­ ±æÀÌ LENGTHB (column | expression) : ¹®ÀÚ¿­ ¹ÙÀÌÆ®¼ö SELECT LENGTH('´ëÇѹα¹') FROM DUAL; -- 4 ------------------------------------------------------------------ -- INSTR (column | expression, 'string' [,m] [,n]) ¹®ÀÚÀÇ À§Ä¡¸¦ ¹ÝȯÇÑ´Ù. m°ªÀº ½ÃÀÛÀ§Ä¡°í, n°ªÀº ¹ß»ý Ƚ¼öÀ̸ç m°ú nÀÇ ±âº» °ªÀº 1ÀÌ´Ù. SELECT INSTR('Korea','e') FROM DUAL; -- 4 ------------------------------------------------------------------ -- LPAD (column | expression, n, ['string']), RPAD (column | expression, n, ['string']) expressionÀÇ ¹®ÀÚ¿­À» Á¦¿ÜÇÑ °ø°£¿¡ ¹®ÀÚ¿­À» ¿ÞÂÊ(¿À¸¥ÂÊ)¿¡ ä¿î´Ù. SELECT LPAD ('Korea', 12, '*') FROM DUAL; -- '*******Korea' SELECT LPAD('*', 0, '*') FROM DUAL; -- NULL ------------------------------------------------------------------ -- REPLACE (text, search_string [, replacement_string]) : ¹®ÀÚ¿­ ġȯ SELECT REPLACE('Seoul Korea', 'Seoul', 'Busan') FROM DUAL; SELECT name, REPLACE(buseo, 'ºÎ', 'ÆÀ') AS "ºÎ¼­" FROM insa; ------------------------------------------------------------------ -- RTRIM(char [,set]), LTRIM(char [,set]) TRIM (leading | trailing | both trim_character FROM trim_source) °ø¹éÀ» Á¦°íÇϰųª ¿À¸¥ÂÊ(¿ÞÂÊ)ÀÇ ¹®ÀÚ¿­ Á¦°Å SELECT RTRIM('¿ì¸®³ª¶ó ') FROM DUAL; SELECT RTRIM('¿ì¸®³ª¶ó´ëÇÑ', '´ëÇÑ') FROM DUAL; -- ¿À¸¥ÂÊÀÇ '´ëÇÑ' Àý»è SELECT TRIM(' ¿ì¸® ') FROM DUAL; SELECT name, RTRIM(buseo, 'ºÎ') || 'ÆÀ' AS "ºÎ¼­" FROM insa; SELECT LTRIM('AABBBBCDAD', 'BA') FROM DUAL; -- °á°ú : CDAD(BAÁß Çѹ®ÀÚ¶óµµ Ã¹ºÎºÐ¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸é Á¦°Å) ------------------------------------------------------------------ -- MOD(m, n) : mÀ» nÀ¸·Î ³ª´« ³ª¸ÓÁö SELECT MOD(11, 4) "³ª¸ÓÁö" FROM DUAL; ------------------------------------------------------------------ -- ROUND(n [,m]) : ¹Ý¿Ã¸² SELECT ROUND(15.193, 1) "¹Ý¿Ã¸²" FROM DUAL; -- 15.2 SELECT ROUND(15.193) FROM DUAL; -- 15 SELECT ROUND(15.193, 0) FROM DUAL; -- 15 SELECT ROUND(15.193, -1) FROM DUAL; -- 20 SELECT TRUNC(15.79, -1) "Àý»è" FROM DUAL; -- 10 ------------------------------------------------------------------ -- TRUNC(n [,m]) : Àý»è SELECT TRUNC(15.79, 1) "Truncate" FROM DUAL; -- 15.7 SELECT TRUNC(15.79, -1) "Truncate" FROM DUAL; -- 10 SELECT name, TRUNC(basicpay/10000) ¸¸¿ø±Ç FROM insa; SELECT name, basicpay, LPAD('*', TRUNC(basicpay/100000), '*') ±×·¡ÇÁ FROM INSA; -- TRUNC(basicpay/100000) °á°ú°¡ 1º¸´Ù ÀûÀ¸¸é NULL Ãâ·Â ------------------------------------------------------------------ -- ¾Ï½ÃÀû Çü º¯È¯ °ªÀ» ÇÒ´çÇÒ ¶§ ¿À¶óŬ ¼­¹ö´Â ´ÙÀ½°ú °°ÀÌ ÀÚµ¿À¸·Î °ªÀ» º¯È¯ÇÒ ¼ö ÀÖ´Ù. VARCHAR2, CHAR ¡æ NUMBER VARCHAR2, CHAR ¡æ DATE NUMBER ¡æ VARCHAR2 DATE ¡æ VARCHAR2 ------------------------------------------------------------------ -- TO_CHAR(label [, fmt]) : MLSLABEL datatypeÀ» VARCHAR2 ŸÀÔÀ¸·Î º¯È¯ TO_CHAR(n [, fmt [, 'nlsparams'] ]) : ¼ýÀÚ¸¦ ¹®ÀÚ·Î º¯È¯(VARCHAR2 ŸÀÔ) TO_CHAR(d [, fmt [, 'nlsparams'] ]) : ³¯Â¥¸¦ ¹®ÀÚ·Î º¯È¯(VARCHAR2 ŸÀÔ) SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') NOW FROM DUAL; SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD DAY') FROM DUAL; SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY"³â" MM"¿ù" DD"ÀÏ"') FROM DUAL; SELECT SYSDATE, TO_CHAR(SYSDATE, 'DD "of" MONTH') FROM DUAL; -- 07/04/05 05 of APRIL SELECT TO_CHAR(12345, '0,999,999') FROM DUAL; -- 0,012,345 SELECT TO_CHAR(12345, '0,999') FROM DUAL; -- ##### SELECT TO_CHAR(-1234, '99999MI') FROM DUAL; -- 1234- SELECT TO_CHAR(-1234, '9999PR') FROM DUAL; -- <1234> SELECT TO_CHAR(1234.345, '9.999EEEE') FROM DUAL; -- 1.234E+03 SELECT TO_CHAR(1234, '999999V9999') FROM DUAL; -- 12340000 SELECT TO_CHAR(1234, 'L9,999,999') FROM DUAL; -- £Ü1,234 SELECT name, basicpay+sudang ±Þ¿© FROM insa; SELECT name, TO_CHAR(basicpay+sudang, 'L9,999,999') ±Þ¿© FROM insa; SELECT name, TO_CHAR(ibsadate, 'YYYY"³â" MM"¿ù" DD"ÀÏ" DAY') ÀÔ»çÀÏ FROM insa; SELECT name, ibsaDate FROM insa WHERE TO_CHAR(ibsaDate,'YYYY') = '2000'; ------------------------------------------------------------------ -- ÅëÈ­±âÈ£, ³¯Â¥ µî Ãâ·Â Çü½Ä º¯°æ SELECT parameter, value FROM NLS_SESSION_PARAMETERS; -- È®ÀÎ ALTER SESSION SET NLS_LANGUAGE = 'KOREAN'; ALTER SESSION SET NLS_CURRENCY = '\'; ALTER SESSION SET NLS_DATE_LANGUAGE = 'KOREAN'; -- ³¯Â¥Çü½Ä º¯°æ(±âº»:RR/MM/DD) ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD'; -- RR : 1900³â´ëÀÇ ³âµµ¸¦ ±âÁØÀ¸·Î ÇÏ¿© ÀÌÀü 50³âµµ¿¡¼­ ÀÌÈÄ 49³â±îÁö´Â ±âÁس⵵¿Í °¡±î¿î 1850³âµµ¿¡¼­ 1949³âµµ±îÁöÀÇ °ªÀ¸·Î Ç¥ÇöÇÏ°í, ÀÌ ¹üÀ§¸¦ ¹þ¾Æ ³¯ °æ¿ì ´Ù½Ã 2000³âÀ» ±âÁØÀ¸·Î ÀÌÀü 50³âµµ¿¡¼­ ÀÌÈÄ 49³â±îÁöÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù. ÇÏÁö¸¸ YY´Â ¹«Á¶°Ç system »óÀÇ ³âµµ¸¦ µû¸¥´Ù. ------------------------------------------------------------------ -- TO_NUMBER(char [,fmt [, 'nlsparams'] ]) : ¹®ÀÚ¸¦ ¼ýÀÚ·Î º¯È¯ ------------------------------------------------------------------ -- TO_DATE(char [, fmt [, 'nlsparams'] ]) : ¹®ÀÚ¸¦ ³¯Â¥·Î º¯È¯ SELECT TO_DATE('01-JUL-07', 'DD-MON-YY') FROM DUAL; -- 07/07/01(³¯Â¥ Çü½ÄÀÌ ¹Ì±¹ÀÎ °æ¿ì) SELECT TO_DATE('01-7¿ù-07', 'DD-MON-YY') FROM DUAL; -- 07/07/01(³¯Â¥ Çü½ÄÀÌ Çѱ¹ÀÎ °æ¿ì) SELECT TO_DATE('07-01-07', 'MM-DD-YY') FROM DUAL; -- 07/07/01 SELECT TRUNC(SYSDATE - TO_DATE('2000/10/10', 'YYYY/MM/DD')) "»ì¾Æ¿Â³¯¼ö" FROM DUAL; SELECT name, TRUNC((SYSDATE-ibsaDate)/365) ±Ù¹«³â¼ö FROM insa; ------------------------------------------------------------------ -- ¿ùÀ» ÇÑ±Û ¶Ç´Â ¿µ¾î·Î Ãâ·Â SELECT TO_CHAR(SYSDATE, 'MON dd DAY', 'NLS_DATE_LANGUAGE = American') AS en, TO_CHAR(SYSDATE, 'MON dd DAY', 'NLS_DATE_LANGUAGE = Korean') AS ko FROM DUAL; ------------------------------------------------------------------ -- SYSDATE : ½Ã½ºÅÛ¿¡ ÀúÀåµÈ ÇöÀç ³¯Â¥¸¦ ¹Ýȯ SELECT SYSDATE FROM DUAL; -- 07/04/05 SELECT name, TRUNC(SYSDATE-ibsaDate) ±Ù¹«Àϼö FROM insa; ------------------------------------------------------------------ -- CURRENT_DATE : ÇöÀç sessionÀÇ ³¯Â¥ Á¤º¸¸¦ ¹Ýȯ SELECT CURRENT_DATE FROM DUAL; -- 07/04/05 ------------------------------------------------------------------ -- ADD_MONTHS(d, n) : ÇØ´ç ³¯Â¥¿¡ n¸¸Å­ÀÇ ´Þ¼ö¸¦ ´õÇÑ´Ù. SELECT CURRENT_DATE "today", ADD_MONTHS(CURRENT_DATE,1) "next month" FROM DUAL; ------------------------------------------------------------------ -- LAST_DAY(d) : Á¤ÀÇµÈ ³¯Â¥ÀÇ ´Þ¿¡¼­ ¸¶Áö¸·ÀÏÀÌ ¸îÀÏÀÎÁö µ¹·ÁÁØ´Ù. SELECT SYSDATE, LAST_DAY(SYSDATE) "last day", LAST_DAY(SYSDATE) - SYSDATE "Days Left" FROM DUAL; SELECT name, ibsadate, LAST_DAY(ibsadate) FROM insa; -- ÀÔ»ç¿ùÀÇ ¸¶Áö¸· ³¯Â¥´Â ??(30, 31, 29, 28 µî) ------------------------------------------------------------------ -- MONTHS_BETWEEN(d1, d2) : Á¤ÀÇµÈ µÎ ³¯Â¥»çÀÌÀÇ Â÷ÀÌ(d1 - d2)¸¦ ¿ù·Î µ¹·ÁÁØ´Ù. SELECT MONTHS_BETWEEN(TO_DATE('2007-05-20', 'YYYY-MM-DD'), TO_DATE('2007-04-10', 'YYYY-MM-DD')) FROM DUAL; -- 1.32258065 SELECT name, ibsadate, TRUNC(MONTHS_BETWEEN(SYSDATE, ibsadate)/12) ±Ù¹«³â¼ö FROM INSA; SELECT ssn, TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19'||SUBSTR(ssn,1,6), 'YYYYMMDD'))/12) ³ªÀÌ FROM INSA; ------------------------------------------------------------------ -- ROUND(d [,fmt]) : Á¤ÇØÁø ³¯Â¥¸¦ fmt¸¦ ±âÁØÀ¸·Î ¹Ý¿Ã¸² SELECT ROUND(TO_DATE('2007-07-10', 'YYYY-MM-DD'),'YEAR') "FIRST OF THE YEAR" FROM DUAL; -- 08/01/01(³â ¹Ý¿Ã¸². 7¿ù 1ÀϺÎÅÍ ¹Ý¿Ã¸²) SELECT name, ibsadate, ROUND(ibsadate, 'MONTH') FROM insa; -- ¿ù ¹Ý¿Ã¸²(16ÀÏ ±âÁØ) ------------------------------------------------------------------ -- TRUNC(d,[fmt]) : Á¤ÇØÁø ³¯Â¥¸¦ fmt¸¦ ±âÁØÀ¸·Î ¹Ý ³»¸² SELECT TRUNC(TO_DATE('27-08-04','DD-MM-YY'), 'YEAR') FROM DUAL; -- 04/01/01 SELECT name, ibsadate, TRUNC(ibsadate, 'MONTH') FROM insa; ------------------------------------------------------------------ -- NEXT_DAY(d, char) ¸í½ÃµÈ ¿äÀÏ(char)ÀÌ µ¹¾Æ¿À´Â ³¯Â¥¸¦ °è»êÇÑ´Ù. ¿äÀÏÀº ¼ýÀڷΠǥÇö °¡´É(SUNDAY : 1, MONDAY : 2, ...) SELECT NEXT_DAY(TO_DATE('07/05/01', 'YY/MM/DD'), 6) FROM DUAL; -- 07/05/04 SELECT SYSDATE, NEXT_DAY(SYSDATE, '¼ö¿äÀÏ') FROM DUAL; -- ¿À´ÃÀ» ±âÁØÀ¸·Î °¡Àå °¡±î¿î ¼ö¿äÀÏÀº ¾ðÁ¦ ?? -- À̹øÁÖ ÀÏ¿äÀÏ, Åä¿äÀÏ ¾Ë¾Æ³»±â SELECT SYSDATE, CASE WHEN TO_CHAR(SYSDATE, 'DAY') = 'ÀÏ¿äÀÏ' THEN SYSDATE ELSE NEXT_DAY(SYSDATE,1)-7 END AS ÁÖ½ÃÀÛÀÏ, CASE WHEN TO_CHAR(SYSDATE, 'DAY') = 'Åä¿äÀÏ' THEN SYSDATE ELSE NEXT_DAY(SYSDATE, 'Åä¿äÀÏ') END ÁÖ¸¶Áö¸·ÀÏ, FROM DUAL; ------------------------------------------------------------------ -- EXTRACT ({year|month|day|hour|minute|second| timezone_hour|timezone_minute| timezone_region|timezone_abbr} FROM {datetime_value_expr|interval_value_rxpr}) ƯÁ¤ ³¯Â¥/½Ã°£ °ªÀ̳ª ³¯Â¥ °ªÀ» °¡Áø Ç¥Çö½ÄÀ¸·Î ºÎÅÍ ¿øÇÏ´Â ³¯Â¥ ¿µ¿ªÀ» ÃßÃâÇÏ¿© Ãâ·ÂÇÑ´Ù. SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; ------------------------------------------------------------------ -- ³¯Â¥¿¡ »ê¼ú ¿¬»êÀ» »ç¿ëÇÏ´Â °æ¿ì ³¯Â¥ + ¼ýÀÚ ¡æ ³¯Â¥ : ³¯Â¥¿¡ Àϼö¸¦ ´õÇÏ¿© ³¯Â¥ °è»ê ³¯Â¥ - ¼ýÀÚ ¡æ ³¯Â¥ : ³¯Â¥¿¡ Àϼö¸¦ °¨ÇÏ¿© ³¯Â¥ °è»ê ³¯Â¥ + ¼ýÀÚ/24 ¡æ ³¯Â¥ : ³¯Â¥¿¡ ½Ã°£À» ´õÇÏ¿© ³¯Â¥ °è»ê ³¯Â¥ - ³¯Â¥ ¡æ Àϼö : ³¯Â¥¿¡ ³¯Â¥¸¦ °¨ÇÏ¿© Àϼö °è»ê //************************************************ -- NULL : °ªÀÌ Á¸ÀçÇÏÁö ¾ÊÀº »óÅ IS NULL : NULL À̸é Âü NOT IS NULL : NULL ÀÌ ¾Æ´Ï¸é Âü ------------------------------------------------------------------ -- NULL °ü·Ã ÇÔ¼ö NVL(expr1, expr2) : expr1ÀÌ Null À̸é expr2 ¹Ýȯ NVL2(expr1, expr2, expr3) : expr1ÀÌ nullÀÌ ¾Æ´Ï¸é expr2¸¦ ¹ÝȯÇÏ°í, nullÀ̸é expr3¸¦ ¹Ýȯ NULLIF(expr1, expr2) : µÎ Ç¥Çö½ÄÀ» ºñ±³Çؼ­ °°À¸¸é null ¹ÝȯÇÏ°í, °°Áö ¾ÊÀ¸¸é expr1À» ¹Ýȯ COALESCE(expr1, expr2, ¡¦¡¦, exprn) : Ç¥Çö½Ä ¸ñ·Ï¿¡¼­ ù ¹ø°·Î nullÀÌ ¾Æ´Ñ °ÍÀ» ¹ÝȯÇÑ´Ù. Áï, expr1ÀÌ ³ÎÀÌ ¾Æ´Ï¸é expr1À» ¹ÝȯÇϸç, expr1ÀÌ ³ÎÀÌ°í expr2°¡ ³ÎÀÌ ¾Æ´Ï¸é expr2¸¦ ¹ÝȯÇÑ´Ù. LNNVL(Á¶°Ç) : Á¶°ÇÀÌ °ÅÁþÀ̰ųª °ªÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é TRUE¸¦ ¸®ÅÏÇϸç, Á¶°ÇÀÌ °ÅÁþÀ̸é FALSE¸¦ ¸®ÅÏ ÇÑ´Ù. SELECT ¸®½ºÆ®¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç WHERE Àý¿¡¼­¸¸ »ç¿ë °¡´É ÇÏ´Ù. SELECT name, tel FROM insa WHERE tel IS NULL; SELECT name, tel FROM insa WHERE tel IS NOT NULL; SELECT name, NVL(tel, '0000-0000') tel FROM insa; SELECT name, NVL(tel, '0000-0000') tel FROM insa WHERE tel IS NULL; SELECT name, NVL2(tel, tel, '0000-0000') tel FROM insa; //************************************************ -- ORDER BY : Á¤·Ä -- ASC : ¿À¸§Â÷¼ø, DESC : ³»¸²Â÷¼ø SELECT name, city, basicpay+sudang pay FROM insa ORDER BY basicpay+sudang ASC; SELECT name, city, basicpay+sudang pay FROM insa ORDER BY basicpay+sudang DESC; SELECT name, city, basicpay+sudang pay FROM insa ORDER BY city DESC, basicpay+sudan; SELECT name, city, basicpay+sudang pay FROM insa ORDER BY city DESC, basicpay+sudan DESC; SELECT name, city, basicpay+sudang pay FROM insa WHERE SUBSTR(ssn, 8, 1) IN ('1', '3') ORDER BY city DESC, basicpay+sudan DESC; -- ¼­¿ï »ç¶÷Áß¿¡¼­ ±âº»±Þ+¼ö´ç ³»¸²Â÷¼øÀ¸·Î Á¤·Ä À̸§, Ãâ½Åµµ, ±âº»±Þ+¼ö´ç SELECT name, city, basicpay+sudang pay FROM INSA WHERE city='¼­¿ï' ORDER BY pay DESC; -- ÇʵåÀÇ º°¸íÀº ORDER BY¿¡ »ç¿ë °¡´É -- ¿©ÀÚÁß ºÎ¼­¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÏ°í ºÎ¼­°¡ °°À¸¸é ±âº»±Þ ³»¸²Â÷¼ø Á¤·Ä À̸§, ÁֹιøÈ£, ºÎ¼­, ±âº»±Þ SELECT name, ssn, buseo, basicpay FROM insa WHERE SUSTR(ssn, 8, 1) IN (2, 4) ORDER BY buseo, basicpay DESC; //************************************************ -- DISTINCT : Áߺ¹ ¹èÁ¦(¹Ý´ë : ALL -- ±âº») SELECT buseo FROM insa; SELECT DISTINCT buseo FROM insa; SELECT DISTINCT buseo, jikwi FROM insa; //************************************************ -- IN IN(°ª, °ª, ...) : ÇÇ¿¬»êÀÚ°¡ ½Ä ¸ñ·Ï Áß Çϳª¿Í µ¿ÀÏÇÑ °æ¿ì TRUE SELECT name, city FROM insa WHERE city = '¼­¿ï' OR city = 'ÀÎõ' OR city = '±¤ÁÖ' OR city = 'ºÎ»ê' SELECT name, city FROM insa WHERE city IN ('¼­¿ï', 'ÀÎõ', '±¤ÁÖ', ºÎ»ê') //************************************************ -- BETWEEN ~ AND : ÇÇ¿¬»êÀÚ°¡ ¹üÀ§ ¾È¿¡ ÀÖ´Â °æ¿ì Âü SELECT name, basicpay FROM insa WHERE basicpay >=1500000 AND basicpay <=2000000; SELECT name, basicpay FROM insa WHERE basicpay BETWEEN 1500000 AND 2000000; SELECT name, ibsadate FROM insa WHERE ibsadate BETWEEN '2000-01-01' AND '2000-12-31'; //************************************************ -- LIKE : ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ÆÐÅÏ°ú ÀÏÄ¡ÇÏ´ÂÁö ¿©ºÎ È®ÀÎ % : ¿©·¯¹®ÀÚ °øÅë _ : Çѹ®ÀÚ °øÅë SELECT name FROM insa WHERE name LIKE '±è%'; SELECT name FROM insa WHERE name NOT LIKE '±è%'; SELECT tel FROM insa WHERE tel LIKE '%3%'; SELECT tel FROM insa WHERE tel LIKE '%3%' OR tel LIKE '%5%'; SELECT ssn FROM insa WHERE ssn LIKE '_0%'; SELECT tel FROM insa WHERE tel LIKE '%%'; //************************************************ -- DECODE : °¢°¢ÀÇ Á¶°Ç¿¡ ¸Â´Â °ª¿¡ ´ëÇÑ Ã³¸®¸¦ °á°ú¸¦ ¸®ÅÏ SELECT name, ssn, DECODE(SUBSTR(ssn, 8,1),'1','³²ÀÚ','3','³²ÀÚ','2','¿©ÀÚ','4','¿©ÀÚ') ¼ºº° FROM INSA; SELECT name, ssn, DECODE(SUBSTR(ssn, 8,1), '1', '³²ÀÚ') ¼ºº° FROM INSA; -- À̸§, ¼ºº°, ³ªÀÌ Ãâ·Â ¼ºº° : ÁֹιøÈ£(ssnÀÇ 8¹ø°)°¡ 1,3->³²ÀÚ 2,4->¿©ÀÚ ³ªÀÌ : ÁֹιøÈ£¸¦ ÀÌ¿ë SELECT name, DECODE(SUBSTR(ssn,8,1), '1','³²ÀÚ','2','¿©ÀÚ','3','³²ÀÚ','4','¿©ÀÚ') ¼ºº°, TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19'||SUBSTR(ssn,1,6),'YYYYMMDD'))/12) ³ªÀÌ FROM INSA; SELECT name, DECODE(MOD(SUBSTR(ssn,8,1), 2),1,'³²ÀÚ',0,'¿©ÀÚ') ¼ºº°, TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19'||SUBSTR(ssn,1,6),'YYYYMMDD'))/12) ³ªÀÌ FROM INSA; //************************************************ -- CASE ~ END : Á¶°Ç¿¡ µû¶ó ´Ù¸¥ °á°ú¸¦ ¸®ÅÏÇØ¾ß ÇÏ´Â °æ¿ì(DECODE º¸´Ù ¼º´É ¿ì¼ö) SELECT name, basicpay+sudang pay, CASE WHEN (basicpay+sudang) >= 2500000 THEN ROUND((basicpay+sudang) * 0.03, -1) WHEN (basicpay+sudang) >= 2000000 THEN ROUND((basicpay+sudang) * 0.02, -1) ELSE 0 END AS tax FROM INSA; //************************************************ -- ÁýÇÕ ¿¬»êÀÚ UNION : ù ¹ø° SQL¹®ÀÇ °á°ú¿Í µÎ ¹ø° SQL¹®ÀÇ °á°ú Áß Áߺ¹µÈ µ¥ÀÌÅ͸¦ Á¦°ÅÇÑ´Ù. UNION ALL : ù ¹ø° SQL¹®ÀÇ °á°ú¿Í µÎ ¹ø° SQL¹®ÀÇ °á°ú¸¦ ¸ðµÎ Ãâ·ÂÇÑ´Ù. MINUS : Â÷ÁýÇÕ. ù ¹ø° SQL¹® °á°ú¿¡´Â ÀÖ°í, µÎ ¹ø° SQL¹®ÀÇ °á°ú¿¡´Â ¾ø´Â µ¥ÀÌÅ͸¦ Ãâ·ÂÇÑ´Ù. INTERSECT : ÀÎÅͼ½Æ®´Â µÎ ¹ø° SQL¹®ÀÇ °á°ú¿Í ù ¹ø° SQL¹®ÀÇ °á°ú¿¡ Áߺ¹µÈ Çุ Ãâ·Â(±³ÁýÇÕ) -- ÇÕÁýÇÕ ¿¬»êÀÚ : UNION -> Áߺ¹ µ¥ÀÌÅÍ Çѹø¸¸ Ãâ·Â SELECT name, city, buseo FROM insa WHERE buseo='°³¹ßºÎ' UNION SELECT name, city, buseo FROM insa WHERE city='ÀÎõ'; -- ÇÕÁýÇÕ ¿¬»êÀÚ : UNION ALL -> Áߺ¹ µ¥ÀÌÅ͵µ Ãâ·Â SELECT name, city, buseo FROM insa WHERE buseo='°³¹ßºÎ' UNION ALL SELECT name, city, buseo FROM insa WHERE city='ÀÎõ' ORDER BY city; -- ORDER BY ´Â ¸¶Áö¸·¿¡ Çѹø¸¸ -- ÇÕÁýÇÕ ¿¬»êÀÚ : UNION -- -> ÇʵåÀÇ °³¼ö¿Í ÀÚ·áÇüÀÌ ÀÏÄ¡Çϸé Çʵ尡 ´Þ¶óµµ °¡´É SELECT name, city, buseo,basicpay FROM INSA WHERE buseo='°³¹ß ºÎ' UNION SELECT name, city, buseo,sudang FROM INSA WHERE city='ÀÎõ'; -- Â÷ÁýÇÕ SELECT name, city, buseo FROM insa WHERE buseo='°³¹ßºÎ' MINUS SELECT name, city, buseo FROM insa WHERE city='ÀÎõ'; -- ±³ÁýÇÕ SELECT name, city, buseo FROM insa WHERE buseo='°³¹ßºÎ' INTERSECT SELECT name, city, buseo FROM insa WHERE city='ÀÎõ';