||'첨가할문자'
ex)SELECT CNAME, SUBSTR(CNAME,0,LENGTH(CNAME))||'과' FROM COURSE;
LOWER() : 소문자
UPPER() : 대문자
SUBSTR() : 부분문자열 추출
1.인덱스가 1부터 시작, 갯수 substr(문자열,인덱스,갯수)
2.인덱스 부터 갯수만큼 substr(문자열,인덱스) 인덱스부터 끝까지
3.뒤에서 인덱스기준 끝까지 substr(문자열,-인덱스)
4.뒤에 인덱스기준 갯수만큼 출력 substr(문자열, - 인덱스, 갯수)
LPAD(), RPAD() : 데이터 빈공간을 특정 문자로 채우는 것 LPAD('oracle',10,'#') 6글자(oracle) 나머지 4칸을 #으로 왼쪽에 채운다 (10글자 채우기위해서) RPAD('oracle',10,'*') 6글자(oracle) 나머지 4칸을 *으로 오른쪽에 채운다 (10글자 채우기위해서)
ex)SELECT 'ORACLE', LPAD('ORACLE',10,'#'),RPAD('ORACLE',10,'*') FROM DUAL;
LENGTH() :문자열 길이
MOD() : 나머지
TRUNC() : 버림
ROUND() : 반올림
ex)ROUND(3243.35444,2) 3243.35 ROUND(3245.3544,-2) 3200
날짜함수
-SYSDATE : 현재시간을 출력하는 함수, SYSDATE+1 : 내일, SYSDATE-1 : 어제
-ADD_MONTHS(날짜데이터,더할 개월 수,) NEXT_DAY(날짜데이터, 요일 문자) : 요일에 해당하는 가까운 날짜를 찾을 수 있다
ex)
SELECT LAST_NAME,HIRE_DATE 입사일, ROUND(SYSDATE-HIRE_DATE)||'일' 근속일,ROUND((SYSDATE-HIRE_DATE)/365,1)||'년' 근속년수 FROM EMPLOYEES;
SELECT SYSDATE, ADD_MONTHS(SYSDATE,2) FROM DUAL;
SELECT SYSDATE, NEXT_DAY(SYSDATE,'월요일') FROM DUAL;
변환함수
-TO_CHAR() : 숫자, 날짜 ⇒ 문자열 변환
예시)
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
SELECT 50000000, TO_CHAR(50000000,'$999,999,999') FROM DUAL;
-TO_DATE() : 문자열 ⇒ 날짜로 변환
예시)
SELECT TO_DATE('2021-02-18','YYYY-MM-DD'), TO_DATE('20210219','YYYY-MM-DD') FROM DUAL;
NULL 값을 설정해주는거.
-NVL() : NULL을 0 또는 다른 Default 값으로 설정
ex)
select employee_id, salary, commission_pct, nvl(commission_pct,0) from employees;
-NVL2() : NULL값과 NULL값 아닌거 설정해줄때
ex)
SELECT NVL2(TO_CHAR(COMM),'X','O') "EXIST_COMM", COUNT(*) FROM EMP GROUP BY NVL2(TO_CHAR(COMM),'X','O');
DECODE() : DECODE(컬럼, 값1, 값1을변경해줄값1, 값2, 값2를 변경해줄값, '해당되지않는값2, 나머지 값')
ex)SELECT JOB_ID, DECODE(JOB_ID,'SA_MAN','SALES DEPT', 'ANOTHER') FROM EMPLOYEES;
CASE WHEN THEN :
1. CASE 다음에 컬럼명 써주었을 때,
SELECET 컬럼명,
CASE 컬럼명
WHEN 값1 THEN 변경해줄 값1
WHEN 값2 THEN 변경해줄 값2
ELSE '나머지해당되지않는 값"
END "CASE"
FROM 테이블명;
ex1)
SELECT JOB_ID,
CASE JOB_ID
WHEN 'SA_MAN' THEN 'SALES DEPT'
ELSE 'ANOTER2'
END "CASE"
FROM EMPLOYEES;
2. CASE다음에 컬럼명 안썼을때 조건하고 END 하고 별칭부여
SELECT 컬럼명,
CASE
WHEN 조건1 THEN 값1
WHEN 조건2 THEN 값2
WHEN 조건3 THEN 값3
ELSE 값
END AS 별칭(컬럼명)
FROM 테이블명
ex2)
SELECT EMPNO, ENAME, MGR,
CASE
WHEN MGR IS NULL THEN '0000' WHEN SUBSTR(MGR,1,2)='78' THEN '8888' WHEN SUBSTR(MGR,1,2)='77' THEN '7777' WHEN SUBSTR(MGR,1,2)='76' THEN '6666' WHEN SUBSTR(MGR,1,2)='75' THEN '5555' ELSE TO_CHAR(MGR) END AS CHG_MGR FROM EMP;
ROLLUP() 그룹함수에서 이용 :각 그룹별 총계를 구하는 함수
'DataBase > DBMS' 카테고리의 다른 글
6.DDL (테이블 정의)-CREATE, ALTER(ADD, MODIFY, DROP), TRUNCATE, RENAME, DROP (0) | 2021.02.18 |
---|---|
4~5 함수, 그룹함수 개념 연습 (SCOTT계정) (0) | 2021.02.18 |
4.그룹(GRUOP BY절), 그룹함수:sum(), avg(), max(), min(), count() (0) | 2021.02.17 |
1~3 개념 연습 (SCOTT계정 이용) (0) | 2021.02.17 |
3.집합: 주의-> 열(컬럼)의 개수와 자료형(데이터종류)이 일치해야 가능 (0) | 2021.02.17 |