IT_developers

SQL - scott(개념 + 실습) DML- update, delete 본문

SQL

SQL - scott(개념 + 실습) DML- update, delete

developers developing 2022. 8. 17. 12:00

DML(데이터 조작어 : 삽입, 삭제, 수정) =>최종 반영을 할껀지 안할껀지 여부 

 

※ UPDATE :  update 테이블 명 set 수정할 열 =  값  [where] ;

where은 선택

 

1) loc를 seoul로 변경

UPDATE dept_temp
SET
    loc = 'SEOUL';

 

변경 전                                                                                         변경후

where 사용 안함.

ROLLBACK;

 

2) deptno=50인 경우 loc를 부산으로 변경

UPDATE dept_temp
SET
    loc = 'BUSAN'
WHERE
    deptno = 50;

변경 전                                                                                         변경후

ROLLBACK;

 

3) EMP_TEMP 사원 중 SAL 3000이하인 사원만 COMM 300 으로 수정

UPDATE emp_temp
SET
    comm = 300
WHERE
    sal <= 3000;

SELECT
    *
FROM
    emp_temp;

변경 전                                                                                         변경후

COMMIT;

 

4) dept 테이블의 부서번호가 40번인 부서명과 지역 추출

UPDATE dept_temp
SET
    ( dname,
      loc ) = (
        SELECT
            dname,
            loc
        FROM
            dept
        WHERE
            deptno = 40
    );

변경 전                                                                                         변경후

update 서브쿼리 가능

ROLLBACK;

 

5) dname이 operations인 부서번호 추출 : DEPT. 추출된 부서번호와 일치하는 부서번호의 지역을 'SEOUL' 변경

UPDATE dept_temp
SET
    loc = 'SEOUL'
WHERE
    deptno = (
        SELECT
            deptno
        FROM
            dept
        WHERE
            dname = 'OPERATIONS'
    );

변경 전                                                                                         변경후

deptno가 40번인 loc가 boston에서 seoul로 변경됨.

COMMIT;

 

6) EMPNO=7369인 사원의 SAL 1500으로 변경

UPDATE emp_temp
SET
    sal = 1500
WHERE
    empno = 7369;

변경 전                                                                                         변경후

COMMIT;

 

※ DELETE : DELETE [FROM] 테이블 명 [WHERE]

from, where은 선택

 

7) job이 ANALYST인 사원 삭제

DELETE FROM emp_temp
WHERE
    job = 'ANALYST';

변경 전                                                                                         변경후

ROLLBACK;

 

8) emp_temp 에서 급여등급이 3이고, 20번 부서의 사원만 삭제

DELETE FROM emp_temp
WHERE
    empno IN (
        SELECT
            empno
        FROM
                 emp_temp e
            JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal
        WHERE
                s.grade = 3
            AND e.deptno = 20
    );

변경 전                                                                                          변경후

서브쿼리 형태 

COMMIT;

 

9) emp_temp 데이터 삭제

DELETE emp_temp;

ROLLBACK;

 

 

프로그램 종료시 뜨는 최종 반영 여부 확인

COMMIT;커밋) : 데이터베이스에 최종 반영

ROLLBACK;(롤백) : 지금 반영된걸 취소

 

'SQL' 카테고리의 다른 글

SQL - hr 만들기  (0) 2022.08.19
SQL - scott(DML 실습)  (0) 2022.08.18
SQL - scott(개념 + 실습) DML- insert  (0) 2022.08.16
SQL - scott(개념 + 실습) 서브쿼리  (0) 2022.08.15
SQL - scott(개념 + 실습) JOIN  (0) 2022.08.14
Comments