SQL - scott(개념 + 실습) DML- update, delete
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;(롤백) : 지금 반영된걸 취소