MOD q 100 SQL SELECT MODsal 100 2

  • Slides: 42
Download presentation

MOD(나머지) 함수 q 급여를 100으로 나눈 나머지 조회 SQL> SELECT MOD(sal, 100) 2 FROM

MOD(나머지) 함수 q 급여를 100으로 나눈 나머지 조회 SQL> SELECT MOD(sal, 100) 2 FROM emp; q 직원들 중 사번이 홀수인 직원 조회 SQL> SELECT * 2 FROM emp 3 WHERE MOD(empno, 2) = 1; 6

환경 변수 설정 저장 q 환경변수를 로그인할 때마다 적용하기 원할때 SQL> ed d: ₩oracle₩product₩

환경 변수 설정 저장 q 환경변수를 로그인할 때마다 적용하기 원할때 SQL> ed d: ₩oracle₩product₩ 10. 1. 0₩db_1₩dbs₩login. sql set pagesize 50 set linesize 120 7

대문자로 변환하는 UPPER 함수 q 문자열을 모두 대문자로 변경하여 조회 SQL> SELECT UPPER('Welcome to

대문자로 변환하는 UPPER 함수 q 문자열을 모두 대문자로 변경하여 조회 SQL> SELECT UPPER('Welcome to Oracle 10 g') 2 FROM DUAL; q 사원명을 대문자로 변경 조회 SQL> SELECT UPPER(ename) 2 FROM emp; 9

소문자로 변환하는 LOWER 함수 q 문자열을 모두 소문자로 변경하여 조회 SQL> SELECT LOWER('Welcome to

소문자로 변환하는 LOWER 함수 q 문자열을 모두 소문자로 변경하여 조회 SQL> SELECT LOWER('Welcome to Oracle 10 g') 2 FROM DUAL; q 사원명을 소문자로 변경 조회 SQL> SELECT LOWER(ename) 2 FROM emp; 10

이니셜만 대문자로 변환하는 INITCAP 함수 q 문자열의 첫글자를 대문자로 SQL> SELECT INITCAP('Welcome to Oracle

이니셜만 대문자로 변환하는 INITCAP 함수 q 문자열의 첫글자를 대문자로 SQL> SELECT INITCAP('Welcome to Oracle 10 g') 2 FROM DUAL; q 사원명의 첫글자를 대문자로 SQL> SELECT INITCAP(ename) 2 FROM emp; 11

문자열의 길이를 알려주는 LENGTH 함수 q 문자열의 길이 조회 SQL> SELECT LENGTH('Welcome to Oracle

문자열의 길이를 알려주는 LENGTH 함수 q 문자열의 길이 조회 SQL> SELECT LENGTH('Welcome to Oracle 10 g') 2 FROM DUAL; q 사원명과 사원명의 길이 조회 SQL> SELECT ename, LENGTH(ename) 2 FROM emp; 12

오른쪽에서 특정 문자를 삭제하는 RTRIM 함수 q 문자열 오른쪽의 x를 삭제 SQL> SELECT RTRIM(‘xxx.

오른쪽에서 특정 문자를 삭제하는 RTRIM 함수 q 문자열 오른쪽의 x를 삭제 SQL> SELECT RTRIM(‘xxx. Oracle 10 gxxx', ‘x') 2 FROM DUAL; q 문자열 오른쪽의 공백 삭제 SQL> SELECT RTRIM(‘ Oracle 10 g ‘) 2 FROM DUAL; 특정 문자를 삭제하는 TRIM 함수 q 문자열 양쪽의 ‘A’ 삭제 SQL> SELECT ename, TRIM(‘A‘ from ename ) 2 FROM emp; 18

문자 함수 예제 q 사원명이 Smith 인 사람 검색 SQL> SELECT * 2 FROM

문자 함수 예제 q 사원명이 Smith 인 사람 검색 SQL> SELECT * 2 FROM emp 사원명이 대소문자인지 모르므로 3 WHERE UPPER(ename)=‘SMITH’; Upper, lower, Initcap 함수 사용 q 이름의 세번째 자리가 ‘R’인 사원 검색 SQL> SELECT * 2 FROM emp 3 WHERE SUBSTR(ename, 3, 1) = ‘R’; Where ename like ‘__R%’ q 이름의 끝자리가 ‘N’인 사원 검색 SQL> SELECT * 2 FROM emp 3 WHERE SUBSTR(ename, -1, 1) = ‘N’; Where ename like ‘%N’ 19

문자 함수 예제 q 87년도에 입사한 사원 검색 SQL> SELECT * 2 FROM emp

문자 함수 예제 q 87년도에 입사한 사원 검색 SQL> SELECT * 2 FROM emp 3 WHERE hiredate like ‘%87%’; Where hiredate between ‘ 1987/1/1’ and ‘ 1987/12/31’ Where substr(hiredate, 1, 2)=’ 87’ q 직원 이름이 5글자인 직원의 이름 소문자와 입사일, 급여 검색 SQL> SELECT LOWER(ename), hiredate, sal 2 FROM emp 3 WHERE LENGTH(ename) = 5; 20

SYSDATE 함수 q 오늘 날짜 조회 SQL> SELECT SYSDATE 2 FROM DUAL; 날짜 연산

SYSDATE 함수 q 오늘 날짜 조회 SQL> SELECT SYSDATE 2 FROM DUAL; 날짜 연산 q 어제 날짜 조회 SQL> SELECT SYSDATE -1 2 FROM DUAL; q 직원의 이름, 입사일, 근무일수 조회 SQL> SELECT ename, hiredate, SYSDATE - hiredate 2 FROM emp; 22

MONTHS_BETWEEN 함수 v 두 날짜 사이의 개월 수 계산 함수 q 직원의 근무 개월수

MONTHS_BETWEEN 함수 v 두 날짜 사이의 개월 수 계산 함수 q 직원의 근무 개월수 조회 MONTHS_BETWEEN ( 날짜, 날짜 ) -> 숫자 SQL> SELECT SYSDATE, hiredate, MONTHS_BETWEEN(SYSDATE, hiredate) FROM emp; ADD_MONTHS 함수 ADD_MONTHS ( 날짜, 숫자 ) -> 날짜 q 입사일에서 6개월이 지난 날짜 조회 SQL> SELECT hiredate, ADD_MONTHS(hiredate, 6) 2 FROM emp; 23

LAST_DAY 함수 v 어떤 날짜(date) 달의 마지막 날 q 입사일 달의 마지막 날 조회

LAST_DAY 함수 v 어떤 날짜(date) 달의 마지막 날 q 입사일 달의 마지막 날 조회 SQL> SELECT LAST_DAY(hiredate) 2 FROM emp; NEXT_DAY 함수 day(요일) : NEXT_DAY(날짜, 요일) Date 의 돌아오는 day 요일 일, 월, 화, 수, 목, 금, 토 1, 2, 3, 4, 5, 6, 7 q 입사일이후 첫번째 금요일 조회 SQL>SELECT hiredate, NEXT_DAY(hiredate, '금'), NEXT_DAY(sysdate, ’수 ’) 2 FROM emp; 24

날짜 형식 변경 q date format을 우리식으로 하기위해 국제언어시스템을 Korean으 로 SQL> alter session

날짜 형식 변경 q date format을 우리식으로 하기위해 국제언어시스템을 Korean으 로 SQL> alter session set NLS_LANGUAGE=Korean; SQL> alter session set NLS_DATE_FORMAT=‘YYYY-MON-DD’; SQL> select * from emp; q 이번달 마지막날짜와 다가오는 일요일 조회 SQL> SELECT LAST_DAY(sysdate), NEXT_DAY(SYSDATE, 1) 2 FROM DUAL; q 입사일이후 6개월이 지난후 돌아오는 토요일 조회 SQL> SELECT NEXT_DAY(ADD_MONTHS(hiredate, 6), 7) 2 FROM emp; SQL> alter session set NLS_DATE_FORMAT=‘RR/MM/DD’; 25

문자열을 날짜 형으로 변환하는 TO_DATE q 2006년1월 1일부터 현재까지 경과된 일수 조회 SQL> select

문자열을 날짜 형으로 변환하는 TO_DATE q 2006년1월 1일부터 현재까지 경과된 일수 조회 SQL> select sysdate, sysdate – to_date('2006/01/01', 'YYYY/MM/DD') 2 FROM DUAL; 29

NULL 변환 함수인 NVL –cont’d SQL> DESC emp q상사(mgr)가 없으면 ‘CEO’로 변경하여 출력 SQL>

NULL 변환 함수인 NVL –cont’d SQL> DESC emp q상사(mgr)가 없으면 ‘CEO’로 변경하여 출력 SQL> SELECT ename, NVL( mgr, ‘CEO’) 2 FROM emp; SQL> SELECT ename, NVL( TO_CHAR(mgr, ‘ 9999’), ‘CEO’) 2 FROM emp; Mgr은 숫자형이므로 먼저 문자형으로 바꾸고 null 이면 ‘CEO’로 변경 36

C언어의 else if 문과 같은 DECODE 함수 q 부서번호가 10 이면 ‘accounting’, 20 이면

C언어의 else if 문과 같은 DECODE 함수 q 부서번호가 10 이면 ‘accounting’, 20 이면 ‘research’, 30 이면 ‘sales’, 40이면 ‘operations’의 부서명을 DNAME으로 하여 이름, 부 서번호, 부서명 조회 SQL> SELECT ename, deptno, 2 DECODE(deptno, 10, ‘ACCOUNTING’, 3 20, ‘RESEARCH’, 4 30, ‘SALES’, 5 40, ‘OPERATIONS’) dname 6 FROM emp; 38

C언어의 else if 문과 같은 DECODE 함수 q 직급이 ‘MANAGER’이면 15%, ‘CLERK’이면 5%인상하여 ‘Up

C언어의 else if 문과 같은 DECODE 함수 q 직급이 ‘MANAGER’이면 15%, ‘CLERK’이면 5%인상하여 ‘Up Sal’로 하여 이름, 직급, ‘Up Sal ‘조회 SQL> SELECT ename, job, 2 DECODE(job, ‘CLERK’, sal*1. 05, 3 ‘MANAGER’, sal*1. 15, 4 sal) as “인상급여” 5 FROM emp; 39

조건에 따라 다른 처리가 가능한 CASE 함수 q 각 부서번호에 해당되는 부서명을 이름, 부서번호와

조건에 따라 다른 처리가 가능한 CASE 함수 q 각 부서번호에 해당되는 부서명을 이름, 부서번호와 함께 조회 SQL> SELECT ename, deptno, 2 CASE WHEN deptno = 10 THEN ‘ACCOUNTING’ 3 WHEN deptno = 20 THEN ‘RESEARCH’ 4 WHEN deptno = 30 THEN ‘SALES’ 5 WHEN deptno = 40 THEN ‘OPERATIONS’ 6 END dname 7 FROM emp; 41

조건에 따라 다른 처리가 가능한 CASE 함수 q 직급이 ‘CLERK’이면 20%, ‘ANALYST’이면 15%, ‘MANAGER’이

조건에 따라 다른 처리가 가능한 CASE 함수 q 직급이 ‘CLERK’이면 20%, ‘ANALYST’이면 15%, ‘MANAGER’이 면 10% 인상하여 이름, 직급, 급여, 인상된 급여를 조회하시오 SQL> SELECT ename, job, sal, 2 CASE WHEN job= ‘CLERK’ THEN sal*1. 20 3 WHEN job= ‘ANALYST’ THEN sal*1. 15 4 WHEN job=‘MANAGER’ THEN sal*1. 10 5 6 ELSE sal END AS 인상된급여 7 FROM emp; 42