일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- sql연습
- 판다스그래프
- 맷플롯립
- SQL
- 파이썬데이터분석주피터노트북
- 파이썬데이터분석
- 주피터노트북판다스
- 주피터노트북맷플롯립
- python데이터분석
- python알고리즘
- Python
- 파이썬차트
- sql따라하기
- sql연습하기
- 주피터노트북데이터분석
- 파이썬알고리즘
- 판다스데이터분석
- 팀플기록
- matplotlib
- 파이썬수업
- 데이터분석시각화
- 주피터노트북
- 파이썬시각화
- SQL수업
- 주피터노트북그래프
- 수업기록
- 파이썬크롤링
- SQLSCOTT
- python수업
- 파이썬
- Today
- Total
IT_developers
SQL - scott(DML 실습) 본문
※ 기존 테이블을 이용하여 테이블을 생성
실습 1) emp테이블의 내용을 이용하여 exam_emp 생성(내용까지)
CREATE TABLE exam_emp
AS
SELECT
*
FROM
emp;

실습 2) dept 테이블의 내용을 이용하여 exam_dept 생성
CREATE TABLE exam_dept
AS
SELECT
*
FROM
dept;

실습 3) salgrade 테이블의 내용을 이용하여 exam_salgrade 생성
CREATE TABLE exam_salgrade
AS
SELECT
*
FROM
salgrade;

실습 4) 정보를 exam_emp 테이블에 입력

INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES (7201, 'TEST_USER1', 'MANAGER', 7788, '2016-01-02', 4500, NULL, 50);
INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES (7202, 'TEST_USER2', 'CLERK', 7201, '2016-02-21', 1800, NULL, 50);
INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES ( 7203, 'TEST_USER3', 'ANALYST', 7201, '2016-04-11', 3400, NULL, 60);
INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES ( 7204, 'TEST_USER4', 'SALESMAN', 7201, '2016-05-31', 2700, 300, 60);
INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES ( 7205, 'TEST_USER5', 'CLERK', 7201, '2016-07-20', 2600, NULL, 70);
INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES ( 7206, 'TEST_USER6', 'CLERK', 7201, '2016-09-08', 2600, NULL, 70);
INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES ( 7207, 'TEST_USER7', 'LECTURER', 7201, '2016-10-28', 2300, NULL, 80);
INSERT INTO exam_emp (
empno,
ename,
job,
mgr,
hiredate,
sal,
comm,
deptno
) VALUES ( 7208, 'TEST_USER8', 'STUDENT', 7201, '2018-03-09', 1200, NULL, 80);


실습 5) exam_emp에 속한 사원 중 50번 부서에서 근무하는 사원들의 평균 급여보다 많은 급여를 받고 있는 사원들을 70번 부서로 변경
50번 부서의 평균 급여 조회
SELECT
AVG(sal)
FROM
exam_emp
WHERE
deptno = 50;

UPDATE exam_emp
SET
deptno = 70
WHERE
sal > (
SELECT
AVG(sal)
FROM
exam_emp
WHERE
deptno = 50
);


실습 6) exam_emp에 속한 사원 중 60번 부서의 사원 중에서 입사일이 가장 빠른 사원보다 늦게 입사한 급여를 10%인상하고 80번 부서로 변경
UPDATE exam_emp
SET
sal = sal * 1.1,
deptno = 80
WHERE
hiredate > (
SELECT
MIN(hiredate)
FROM
exam_emp
WHERE
deptno = 60
);


실습 7) exam_emp에 속한 사원 중, 급여 등급이 5인 사원을 삭제
DELETE FROM exam_emp
WHERE
empno IN (
SELECT
empno
FROM
exam_emp e
JOIN exam_salgrade s ON e.sal BETWEEN s.losal AND s.hisal
WHERE
s.grade = 5
);


'SQL' 카테고리의 다른 글
SQL - hr 실습 1 (0) | 2022.08.19 |
---|---|
SQL - hr 만들기 (0) | 2022.08.19 |
SQL - scott(개념 + 실습) DML- update, delete (0) | 2022.08.17 |
SQL - scott(개념 + 실습) DML- insert (0) | 2022.08.16 |
SQL - scott(개념 + 실습) 서브쿼리 (0) | 2022.08.15 |