DB 6일 (23.03.28)

Jane·2023년 3월 28일
0

IT 수업 정리

목록 보기
91/124

1. DECODE 함수

  • SELECT DEPTNO FROM EMP ORDER BY DEPTNO;

  • SELECT DEPTNO, DECODE(DEPTNO, 10, 'A', 20, 'B', 'DEFAULT') FROM EMP ORDER BY DEPTNO;
    (DEPTNO가 10번이면 A, 20번이면 B, 나머지는 DEFAULT)

  • SELECT ENAME, DEPTNO, DECODE(DEPTNO, 10, 'ACCOUNTING', 20, 'RESEARCH', 30, 'SALES', 40, 'OPERATIONS') AS DNAME FROM EMP;
    (DEPTNO가 10번이면 ACCOUNTING, 20번이면 RESEARCH, 30번이면 SALES, 40번이면 OPERATIONS)

2. 트레이닝

-- 부서 테이블의 모든 데이터 출력
select * from dept;

-- 부서 테이블의 데이터 타입
desc dept;

-- EMP 테이블에서 각 사원의 직업, 사원번호, 이름, 입사일 출력
select job, empno, ename, hiredate from emp;

-- EMP 테이블에서 직업을 중복되지 않게 출력하기
select distinct job from emp;

-- 급여가 2850 이상인 사원의 이름 및 급여
select ename, sal from emp where sal >= 2850;

-- 사원 번호가 7566인 사원의 이름과 부서번호
select ename, deptno from emp where empno = 7566;

-- 급여가 1500이상 ~ 2850이하의 범위에 속하지 않는 모든 사원의 이름 및 급여
select ename, sal from emp where sal not between 1500 and 2850;

3. 복습하기

- 사원 테이블의 사원들 중에서 커미션(COMM)을 받은 사원의 수를 구하는 쿼리문
SELECT COUNT(COMM) FROM EMP;
- 이름(ENAME)이 FORD인 사람의 사번(empno), 이름(ename), 급여(SAL)를 출력하는 쿼리문
SELECT EMPNO, ENAME, SAL FROM EMP WHERE ENAME='FORD';
-1981년에 입사한 사원을 출력하는 쿼리문
SELECT * FROM EMP WHERE HIREDATE >='1981/01/01' AND HIREDATE <='1981/12/31';
SELECT * FROM EMP WHERE HIREDATE BETWEEN '1981/01/01' AND '1981/12/31';
- 커미션(COMM)300 혹은 500 혹은 1400인 사원
SELECT * FROM EMP WHERE COMM IN (300,500,1400);

- 위치 상관 없이 이름 중에 A가 들어있는 사람을 찾는 쿼리문
SELECT * FROM EMP WHERE ENAME LIKE '%A%';
- 현재 날짜를 구하는 쿼리문
SELECT SYSDATE FROM DUAL;
- 부서별 사원의 수와 커미션을 받는 사원의 수를 계산하는 쿼리문
SELECT DEPTNO, COUNT(*), COUNT(COMM) FROM EMP GROUP BY DEPTNO;

- 부서별 평균 급여가 2000 이상인 부서의 번호와 부서별 평균 급여를 출력하는 쿼리문
SELECT DEPTNO, AVG(SAL) FROM EMP GROUP BY DEPTNO HAVING AVG(SAL) >= 2000;
- 부서별 사원의 수와 커미션을 받는 사원의 수를 계산하는 쿼리문
SELECT DEPTNO, COUNT(*) "사원 수", COUNT(COMM)"커밋 있음" FROM EMP GROUP BY DEPTNO;
- 소속 부서별 최대 급여와 최소 급여를 구하는 쿼리문
SELECT DEPTNO, MAX(SAL), MIN(SAL) FROM EMP GROUP BY DEPTNO;
- 각 사원의 급여가 몇 등급인지 살펴보는 쿼리문
SELECT ENAME, SAL, GRADE FROM EMP, SALGRADE WHERE SAL BETWEEN LOSAL AND HISAL;
- SMITH의 매니저 이름과 번호
SELECT E.ENAME, E.MGR, M.ENAME FROM EMP E, EMP M WHERE E.MGR = M.EMPNO AND E.ENAME='SMITH';

- 9월달에 입사한 사원은?
SELECT ENAME, HIREDATE FROM EMP WHERE SUBSTR(HIREDATE, 4, 2) = '09';

- 모든 사원의 연봉 계산
SELECT ENAME, SAL as "월급", NVL(COMM, 0) as "커미션", SAL*12+NVL(COMM, 0) as "연봉" FROM EMP;
profile
velog, GitHub, Notion 등에 작업물을 정리하고 있습니다.

0개의 댓글