티스토리 뷰

728x90

emp01 테이블

-- 모든 사원 부서 번호 30번으로 수정
-- (WHERE로 타겟 확실히 잡고 UPDATE 실행할 것)
-- (COMMIT 전에 타켓 확실히 잡혔는지 체크 필요 *SELECT * FROM emp01;)
UPDATE emp01 SET DEPTNO=30;

 

-- 모든 사원 연봉 10% 인상 
UPDATE emp01 SET SAL=SAL+(SAL*0.1);

 

-- 모든 사원 HIREDATE = 오늘날짜 입력하기
-- 둘 다 사용은 잘 안함
-- CURDATE() : 오늘날짜
-- NOW() : 오늘날짜 + 현재시간 
UPDATE emp01 SET HIREDATE = CURDATE();

 

 

-- WHERE 절로 UPDATE 대상 데이터 한정하기
-- 부서번호 10번인 사원 부서번호를 30번으로 변경하기
UPDATE emp01 SET DEPTNO = 10 WHERE DEPTNO = 30;

 

 

-- 급여 3000이상 사원의 급여 10% 인상하기
-- 자동 형변환
UPDATE emp01 SET SAL = SAL+(SAL*0.1) WHERE SAL >= 3000;
-- 소수로 나오기에 소숫점 FLOOR로 날림
UPDATE emp01 SET SAL = FLOOR(SAL*1.1) WHERE SAL >= 3000;

 

 

-- 복수 데이터 업데이트 + 조건절 
-- SCOTT 사원 부서번호 30번, 직급 MANAGER로 변경하기
UPDATE emp01 SET DEPTNO=30, JOB='MAMAGER' WHERE ENAME = 'SCOTT';

 

 

-- SCOTT 사원 입자일자 CURDATE(), SAL = 50, COMM = 4000 변경하기
UPDATE emp01 SET HIREDATE=CURDATE(), SAL=50, COMM=4000 WHERE ENAME='SCOTT';

 

 

-- UPDATE문에 서브쿼리 사용하기
-- 20번 부서 지역명을 40번 부서 지역명으로 바꾸기
UPDATE dept01 SET LOC=(SELECT LOC FROM dept01 WHERE DEPTNO = 40)
WHERE DEPTNO = 20;

 

-- 부서번호 10번 부서의 부서명, 지역명을 40번 부서와 같게 바꾸기
UPDATE dept01 
SET DNAME=(SELECT DNAME FROM dept01 WHERE DEPTNO=40), 
	 LOC=(SELECT LOC FROM dept01 WHERE DEPTNO = 40)
WHERE DEPTNO=10;

 

-- ORACLE/ALTIBASE에서 실행 가능한 UPDATE 다중쿼리 / MYSQL,MARIABD는 안됨
UPDATE dept01
SET (DNAME, LOC) = (SELECT DNAME, LOC FROM dept01 WHERE DEPTNO = 40)
WHERE DEPTNO=20;
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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 31
글 보관함