ð©âð» íšì( FUNCTION) : 맀ê°ë³ìë¡ ê°ì ì ë¬ë°ì ê°ê³µì²ëŠ¬ íì¬ ê²°ê³Œê°ì ë°ííë êž°ë¥ì ì ê³µ
- ëšìŒíšì : íëì ê°ì ì ë¬ë°ì ê°ê³µì²ëŠ¬íì¬ ê²°ê³Œê°ì ë°ííë íšì
- 묞ìíšì, ì«ìíšì, ë ì§íšì, ë³ííšì, ìŒë°íšì
- 귞룹íšì : ë€ìì ê°ì ì ë¬ë°ì ê°ê³µì²ëŠ¬íì¬ ê²°ê³Œê°ì ë°ííë íšì
ð1. ëšìŒíšì
1-1 âïž ë¬žìíšì: 맀ê°ë³ìë¡ ë¬žìê°ì ì ë¬ë°ì ê°ê³µì²ëŠ¬íì¬ ê²°ê³Œê°ì ë°ííë íšì
ð UPPER(묞ìê°) : 묞ìê°ì ì ë¬ë°ì ë묞ìë¡ ë³ííì¬ ë°ííë íšì
ð LOWER(묞ìê°) : 묞ìê°ì ì ë¬ë°ì ì묞ìë¡ ë³ííì¬ ë°ííë íšì
SELECT ENAME , UPPER(ENAME) , LOWER(ENAME) FROM EMP;
ð INITCAP(묞ìê°) : 묞ìê°ì ì ë¬ë°ì 첫 묞ìë§ ë묞ìë¡ ë³ííê³ ëëšžì§ë ì묞ìë¡ ë³ííì¬ ë°ííë íšì
SELECT INTICAP(ENAME) FROM EMP;
ð CONCAT(묞ìê°, 묞ìê°) : ëê°ì 묞ìê° ì ì ë¬ë°ì ê²°í©íì¬ ë°ííë íšì( || êž°ížë¥Œ ì¬ì©íì¬ ê²°í©ê°ë¥)
SELECT (ENAME,JOB) FROM EMP;
ð SUBSTR(묞ìê°, ìììì¹, ê°¯ì) : 묞ìê°ì ì ë¬ë°ì ìììì¹(INDEX)ë¶í° ê°¯ìë§íŒì 묞ìë€ì ë¶ëŠ¬íì¬ ë°ííë íšì
SELECT SUBSTR(JOB,6,3) FROM EMP WHERE EMPNO=7499;
ð LENGTH(묞ìê°) : 묞ìê°ì ì ë¬ë°ì 묞ì ê°¯ì륌 ë°ííë íšì
SELECT LENGTH(JOB) FROM EMP WHERE EMPNO=7499;
ð INSTR(묞ìê°, ê²ì묞ìê°, ìììì¹, ê°¯ì) : 묞ìê°ì ì ë¬ë°ì ê²ì묞ìê°ì ìììì¹ë¶í° ê²ìíì¬ ìíë ìì¹ìì ê²ìë 묞ìê°ì ìì첚ì륌 ë°ííë íšì
SELECT EMPNO, ENAME, JOB, INSTR(JOB,'A',1,2) FROM EMP WHERE EMPNO=7499;
â¡ïž 결곌
EMPNO | ENAME | JOB | TRIM (LEADING 'S' FROM JOB) | TRIM (TRAILING 'N' FROM JOB) |
---|
7499 | ALLEN | SALESMAN | ALESMAN | SALESMA |
ð LPAD(묞ìê°, ì늿ì, ì±ìžë¬žì) : 묞ìê°ì ì ë¬ë°ì ì늿ìì êžžìŽë¥Œ ì ê³µë°ì ì€ë¥žìªœë¶í° ê²ìíê³ ìŒìªœ ëšì ì늬ìë ì±ìžë¬žìë¡ ê²ìíë íšì
ð RPAD(묞ìê°, ì늿ì, ì±ìžë¬žì) : 묞ìê°ì ì ë¬ë°ì ì늿ìì êžžìŽë¥Œ ì ê³µë°ì ìŒìªœë¶í° ê²ìíê³ ì€ë¥žìªœ ëšì ì늬ìë ì±ìžë¬žìë¡ ê²ìíë íšì
SELECT EMPNO,ENAME,SAL, LPAD(SAL,8,'*'), RPAD(SAL,8,'*') FROM EMP;
ð TRIM({LEADING | TRAILING} ì 거묞ì FROM 묞ìê°) : 묞ìê°ì ì ë¬ë°ì ì ëë ë€ì ì¡Žì¬íë ì 거묞ì륌 ìì íì¬ ë°ííë íšì
SELECT EMPNO,ENAME,JOB,TRIM(LEADING 'S' FROM JOB), TRIM(TRAILING 'N' FROM JOB) FROM EMP WHERE EMPNO=7499;
ð REPLACE(묞ìê°, ê²ì묞ìê°, ì¹í묞ìê°) : 묞ìê°ì ì ë¬ë°ì ê²ì묞ìê°ì ì°Ÿì ì¹í묞ìë¬ ë³ííì¬ ë°ííë íšì
SELECT EMPNO,ENAME,JOB, REPLACE (JOB,'MAN','PERSON') FROM EMP WHERE EMPNO=7499;
==>7499 ALLEN SALESMAN SALESPERSON
â¡ïž 결곌
EMPNO | ENAME | JOB | REPLACE (JOB,'MAN','PERSON') |
---|
7499 | ALLEN | SALESMAN | SALESPERSON |
ð DUAL : ê²ìí
ìŽëž ììŽ SELECT ëª
ë ¹ì ìì±í ê²œì° ì¬ì©íë ê°ìì í
ìŽëž
1-2 âïž ì«ìíšì : 맀ê°ë³ìë¡ ì«ìê°ì ì ë¬ë°ì ê°ê³µì²ëŠ¬íì¬ ê²°ê³Œê°ì ë°ííë íšì
- DUAL : ê²ìí
ìŽëž ììŽ SELECT ëª
ë ¹ì ìì±í ê²œì° ì¬ì©íë ê°ìì í
ìŽëž
ð ROUND(ì«ìê°, ììì ì늬ì) : ì«ìê°ì ì ë¬ë°ì ìì«ì ì늿ì ìì¹ë§íŒ ê²ìëëë¡ ë°ì¬ëŠŒ ì²ëŠ¬íì¬ ë°ííë íšì
SELECT ROUND(45.582,2) , ROUND(45.582,0) , ROUND(45.582,-1) FROM DUAL;
결곌 : 45.58 46 50
ðTRUNC(ì«ìê°, ììì ì늬ì) : ì«ìê°ì ì ë¬ë°ì ìì«ì ì늿ì ìì¹ë§íŒ ê²ìëëë¡ ì ìì²ëŠ¬íì¬ ë°ííë íšì
SELECT TRUNC(45.582,2), TRUNC(45.582,0), TRUNC(45.582,-1) FROM DUAL;
결곌 : 45.58 45 40
ð CEIL(ì«ìê°) : ì«ìê°ì ì ë¬ë°ì ìì«ì ìŽí ê°ìŽ ì¡Žì¬í ê²œì° ìŠê°ë ì«ìê°(ì ìê°)ì ë°ííë íšì
SELECT CEIL(15.3), CEIL(-15.3) FROM DUAL;
결곌 : 16 -15
ð FLOOR(ì«ìê°) : ì«ìê°ì ì ë¬ë°ì ìì«ì ìŽí ê°ìŽ ì¡Žì¬í ê²œì° ê°ìë ì«ìê°(ì ìê°)ì ë°ííë íšì
SELECT FLOOR(15.3), FLOOR(-15.3) FROM DUAL;
결곌 : 15 -16
ð MOD(ì«ìê° 1, ì«ìê° 2) : ëê°ì ì«ìê°ì ì ë¬ë°ì ì«ìê°1ë¡ ì«ìê°2륌 ëë ëëšžì§ë¥Œ ë°ííë íšì
ð POWER(ì«ìê°1, ì«ìê°2) : ëê°ì ì«ìê°ì ì ë¬ë°ì ì«ìê°1ì ì«ìê°2ì ì 곱귌ì ë°ííë íšì
SELECT POWER(3,5) FROM DUAL;
결곌 : 243
1-3 âïž ë ì§íšì : 맀ê°ë³ìë¡ ë ì§ê°ì ì ë¬ë°ì ê°ê³µì²ëŠ¬íì¬ ê²°ê³Œê°ì ë°ííë íšì
ð SYSDATE : ìì€í
ì íì¬ ë ì§ì ìê°ì ì ê³µíêž° ìí í€ìë
- SYSDATE : í€ìëì ê²ìê°ì Ʞ볞ì ìŒë¡ [RR/MM/DD] íìì íšíŽìŒë¡ ê²ìëì§ë§ ëŽë¶ì ìŒë¡ë ë ì§ì ìê° ì ê³µ
SELECT SYSDATE FROM DUAL;
ð ADD_MONTHS (ë ì§ê°, ì«ìê°) : ë ì§ê°ì ì ë¬ë°ì ì«ìê° ë§íŒì ê°ìì륌 ëí ë ì§ê°ì ë³ííë íšì
SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL ;
- ìŒ ìŠê° = ë ì§ê°+ ì«ìê°
SELECT SYSDATE+7 FROM DUAL;
- ìê° ìŠê° = ë ì§ê°+ ì«ìê°/24
SELECT , SYSDATE+100/24 FROM DUAL;
- ìŒ ê°ì = ë ì§ê° - ì«ìê°
SELECT SYSDATE-7 FROM DUAL;
- ìê° ê°ì = ë ì§ê° - ì«ìê°/24
SELECT SYSDATE+100/24 FROM DUAL;
- ìŒ(ì€ìê°) = ë ì§ê° - ë ì§ê°
ð NEXT_DAY(ë ì§ê°, ììŒ) : ë ì§ê°ì ì ë¬ë°ì 믞ëì í¹ì ììŒì ë ì§ê°ì ë°ííë íšì
SELECT NEXT_DAY(SYSDATE,'í ') FROM DUAL;
ââ ì€ëŒíŽì ì ìë íì¬ ì¬ì©ì í겜ì ë°ëŒ ì¬ì© ìžìŽ ë° ë ì§ì ìê° íšíŽìŽ ë€ë¥Žê² ì ì©ëìŽ ì¬ì©
ALTER SESSION SET NLS_LANGUAGE='AMERICAM';
ð TRUNC(ë ì§ê°, ííëšì) : ë ì§ê°ì ì ë¬ë°ì ìíë ëšìë§ íííê³ ëëšžì§ ì ìíì¬ ìŽêž°ê°ìŒë¡ ê²ìíëë¡ ë°ííë íšì\
SELECT TRUNC(SYSDATE, 'MONTH'), TRUNC(SYSDATE,'YEAR') FROM DUAL;
1-4 âïž ë³ííšì : ì ë¬ê°ì ìíë ìë£íì ê°ìŒë¡ ë³ííì¬ ë°ííë íšì
ð TO_NUMBER(묞ìê°) : 묞ìê°ì ì ë¬ë°ì ì«ìê°ìŒë¡ ë³ííì¬ ë°ííë íšì
ââì ë¬ë 묞ìê°ì ì«ìê° ìë ííì 묞ìê° ì¡Žì¬í ê²œì° ìë¬ ë°ì
SELECT EMPNO,ENAME,SAL FROM EMP WHERE EMPNO=TO_NUMBER('7893');
ââ ë¹êµì»¬ëŒì ìë£íì ì«ìíìž ê²œì° ë¹êµê°ìŽ 묞ìíìŽë©Ž ìëìŒë¡ ì«ìíìŒë¡ ë³ííì¬ ë¹êµ - ìëíë³í
ââ 묞ìê°ì ì°ì ì°ì°í ê²œì° ë¬žìê°ìŽ ìëìŒë¡ ì«ìê°ìŒë¡ ë³íëìŽ ì°ì°ì²ëŠ¬ - ìëíë³í
ð TO_DATE(묞ìê°,[íšíŽë¬žì]) : ìíë íšíŽì 묞ìê°ì ì ë¬ë°ì ë ì§ê°ìŒë¡ ë³ííì¬ ë°ííë íšì
SELECT EMPNO, ENAME, HIREDATE FROM EMP WHERE HIREDATE = TO_DATE('82/01/23');
ââ íšíŽë¬žì륌 ì¬ì©íì¬ ìíë íšíŽì 묞ìê°ì ì ë¬ë°ì ë ì§ê°ìŒë¡ ë³ííì¬ ë°íê°ë¥
--EX) 2000 01 01ì íìŽë ì¬ëìŽ íì¬ê¹ì§ ìŽììš ë ì§ ê²ì
SELECT CEIL(SYSDATE-TO_DATE('2000-01-01')) || 'ìŒ' "íì¬ ê¹ì§ ìŽììš ë ì§" FROM DUAL;
ð TO_CHAR( { ì«ìê°| ë ì§ê°} , íšíŽë¬žì) : ì«ìê° ëë ë ì§ê°ì ì ë¬ë°ì ìíë íšíŽì 묞ìê°ìŒë¡ ë³ííì¬ ë°ííë íšì
- ë ì§íšíŽë¬žì : RR(ë
), YYYY(ë
), MM(ì), DD(ìŒ), HH24(ìê°), HH12(ìê°), MI(ë¶), SS(ìŽ)
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
ââ íì¬ ì ìë ì¬ì©ì í겜(ìžì
)ì ë ì§ì ìê°ì íííšíŽìŽ [RR/MM/DD] ìž ê²œì°ìë§ ê²ì ê°ë¥
TO_CHAR륌 ì¬ì©íì¬ ìžì
ì ìêŽììŽ ìíë íšíŽì 묞ì ê°ìŒë¡ ë°í
SELECT EMPNO,ENAME,HIREDATE FROM EMP WHERE TO_CHAR(HIREDATE,'YYYY')='1981';
- ì«ìíšíŽë¬žì: 9( ì«ì ëë 공백), 0(ì«ì), L( ííëšì), $(ë¬ë¬)
SELECT TO_CHAR(100000000, '9,999,999,990') FROM DUAL;
- ì ë¬ë°ì ì«ìê°ì êžžìŽê° íšíŽë¬žìì êžžìŽë³Žë€ í° ê²œì° ëªšë íšíŽë¬žìê° #ìŒë¡ ë³íëìŽ ë°í
1-5 âïž ìŒë°íšì : ì ë¬ê°ìŽ í¹ì 조걎ì ì°žìž ê²œì°ìë§ ê°ê³µì²ëŠ¬ëìŽ ê²°ê³Œê°ì ë°ííë íšì
ð NVL(ì ë¬ê°, ë³ê²œê°) : ì ë¬ê°ìŽ NULLìž ê²œì° ë³ê²œê°ìŒë¡ ë³ííì¬ ë°ííë íšì
- ë³ê²œê°ì ì ë¬ê°ê³Œ ê°ì ìë£íì ê°ìŒë¡ë§ ë³ê²œê°ë¥ - ë€ë¥ž ìë£íì ê°ìŒë¡ ë³ê²œí ê²œì° ìë¬ ë°ì
ð NVL2(ì ë¬ê°, ë³ê²œê°1, ë³ê²œê°2) : ì ë¬ê°ìŽ NULLìŽ ìëê²œì° ë³ê²œê°1ë¡ ë³ê²œíê³ NULLìž ê²œì° ë³ê²œê°2ë¡ ë°ííë íšì
ð DECODE(ì ë¬ê°, ë¹êµê°1, ë³ê²œê°1, ë¹êµê°2, ë³ê²œê°,...[,Ʞ볞ê°]) : ì ë¬ê°ì ë¹êµê°ê³Œ ì°šë¡ëë¡ ë¹êµíì¬ ê°ì ê²œì° ë³ê²œê°ìŒë¡ ë³ííì¬ ë°ííë íšì
- 몚ë ë¹êµê°ìŽ íëŠ°ê²œì° êž°ë³žê°ìŒë¡ ë³ííì¬ ë°í - êž°ë³žê° ìëµíë©Ž NULL ë°í
EX EMPí
ìŽëžìì ì
ë¬Žë³ ì€êžì¬ ê²ì
-- ì¬ìì ì
ë¬Žë¡ êµ¬ë¶íì¬ êžì¬ë¥Œ ë€ë¥Žê² ê³ì°íì¬ ì€ì ë¡ ì§ë¶í êžì¬
SELECT EMPNO, ENAME, SAL, JOB, DECODE(JOB, 'ANALYST', SAL*1.1, 'CLERK' ,SAL*1.2, ' MANAGER', SAL*1.3,'PRRESIDENT', SAL*1.4, 'SALESMAN' ,SAL*1.5, SAL) " ì
ë¬Žë³ ì€êžì¬" FROM EMP;
ð©âð» 귞룹íšì
ð2. 귞룹íšì : 맀ê°ë³ìë¡ ë€ìì ê°ì ì ë¬ë°ì ê°ê³µì²ëŠ¬íì¬ ê²°ê³Œê°ì ë°ííë íšì
- COUNT, MAX ,MIN, SUM, AVG
- 귞룹íšìë ë€ë¥ž ê²ìëì곌 ê°ìŽ ì¬ì©í ê²œì° ìë¬ ë°ì
- 귞룹íšìë NULLì ê°ìŒë¡ ì²ëŠ¬ëì§ ìê³ ê²°ê³Œê°ì ë°í
ð COUNT(컬ëŒëª
OR *): 컬ëŒê°ì ê°¯ì륌 ë°ííë íšì ( ê²ìíì ê°¯ì ë°í)
ð MAX: 컬ëŒê° ì€ ìµëê°ì ë°ííë íšì
ð MIN : 컬ëŒê°ì€ ìµìê°ì ë°ííë íšì
ð SUM: 몚ë 컬ëŸê°(ì«ì ê°)ì ëí í©ê³ë¥Œ ê³ì°íì¬ ë°ííë íšì
ð AVG: 몚ë 컬ëŸê°(ì«ì ê°)ì ëí íê· ì ê³ì°íì¬ ë°ííë íšì
ð GROUP BY : 귞룹íšì ì¬ì©ì 컬ëŒê°ìŒë¡ 귞룹ì ì¬ë¬ê° 구ë¶íì¬ ê²ìíë êž°ë¥
- 컬ëŒê°ìŽ ê°ì ê²œì° ê°ì 귞룹ìŒë¡ ìžìëìŽ ì²ëŠ¬
SELECT 귞룹íšì(컬ëŒëª
)[,ê²ìëì,...] FROM í
ìŽëžëª
WHERE 조걎ì
GROUP BY {컬ëŒëª
| ì°ì°ì | íšì}, {컬ëŒëª
| ì°ì°ì | íšì},... ORDER BY {컬ëŒëª
| ì°ì°ì | ë³ì¹ | COLUMN_INDEX} {ASC|DESC},...]
EX )) SELECT DEPTNO, COUNT(*) FROM EMP GROUP BY DEPTNO;
ð HAVING : GROUP BY ì ìíŽ ê·žë£¹íë ê²ì결곌ì ê·žë£¹ì¡°ê±ŽìŽ ì°žìž ê·žë£¹ë§ ê²ìíë êž°ë¥
SELECT 귞룹íšì(컬ëŒëª
)[,ê²ìëì,...] FROM í
ìŽëžëª
WHERE 조걎ì
GROUP BY {컬ëŒëª
| ì°ì°ì | íšì}, {컬ëŒëª
| ì°ì°ì | íšì},... HAVING 귞룹조걎ì[ORDER BY {컬ëŒëª
| ì°ì°ì | ë³ì¹ | COLUMN_INDEX} {ASC|DESC},...]