광형 2022. 9. 9. 21:15
728x90
728x90
SMALL

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구문은 제약조건을 위해할 수 없다.

 

728x90
300x250
LIST