UPDATE
UPDATE
테이블에 기록된 기존의 데이터를 수정하는 구문
UPDATE 테이블명
SET 컬럼명=변경값,컬럼명=변경값,...
여러개의 컬럼값을 동시변경 가능 (,로 나열한다)
WHERE 조건; --WHERE절은 생략가능하지만 생략하면 모든 행에 데이터가 변경되니 주의해야한다.
EX) EMP_SALARY 테이블에서 노옹철 사원(EMP_NAME 컬럼을 이용)의 급여(SALARY 컬럼)를 1000만원으로 변경
UPDATE EMP_SALARY
SET SALARY = 10000000
WHERE EMP_NAME = '노옹철';
EX) 전체사원의 급여를 기존의 급여에 20% 인상하기(EMP_SALARY 테이블, SALARY 컬럼 이용)
UPDATE EMP_SALARY
SET SALARY = SALARY*1.2;
UPDATE 서브쿼리 사용
서브쿼리를 수행한 결과값으로 기존의 값을 변경하겠다
-CREATE시에 서브쿼리 사용 : 서브쿼리를 수행한 결과를 테이블에 넣겠다.
-INSERT시에 서브쿼리 사용 : 서브쿼리를 수행한 결과를 해당 테이블에 삽입하겠다.
==>
[표현법]
UPDATE 테이블명
SET 컬럼명 = (서브쿼리)
WHERE 조건명;(생략가능)
EX) 방명수 사원의 부서코드를 선동일 사원의 부서코드로 변경하기( EMP_SALARY 테이블 사용, 부서코드 컬럼은 DEPT_CODE, 사원의 이름은 EMP_NAME으로 정의)
UPDATE EMP_SALARY
SET DEPT_CODE = (SELECT DEPT_CODE
FROM EMPLOYEE
WHERE EMP_NAME ='선동일')
WHERE EMP_NAME='방명수';
EX) 방명수 사원의 급여와 보너스를 유재식 사원의 급여와 보너스값으로 변경( EMP_SALARY 테이블 사용, 급여(SALARY컬럼), 보너스(BONUS), 사원이름 (EMP_NAME 컬럼 사용) 사용
UPDATE EMP_SALARY
SET (SALARY,BONUS) = (SELECT SALARY,BONUS
FROM EMP_SALARY
WHERE EMP_NAME='유재식')
WHERE EMP_NAME='방명수';
UPDATE 구문으로 변경할때 제약조건을 위해할 수 없음
EX) EMP_ID가 200인 사원의 이름을 NULL로 변경
UPDATE EMPLOYEE
SET EMP_NAME =NULL
WHERE EMP_ID =200;
다음 UPDATE구문은 제약조건을 위해할 수 없다.