Skip to content

SQL DML UPDATE #
Find similar titles

You are seeing an old version of the page. Go to latest version

UPDATE #

UPDATE 문은 구조화 질의어 중 하나로, 테이블이나 뷰에서 한 개 이상의 행을 바꾼다. 모든 행을 변경해야 되는 경우도 조건절을 사용하여 하위 집합을 선택할 수 있다.

UPDATE table_name SET column_name = value [, column_name = value ...] [WHERE condition]

UPDATE가 성공적으로 이루어진 경우, 사용자는 반드시 데이터 조작 특권 동작 (UPDATE 특권동작)을 반드시 테이블이나 컬럼에서 수행해야 하고 업데이트된 값은 제약 조건에 충돌하지 않아야 한다. 그 예를 들면 고유 키,고유 인덱스, CHECK 제약 조건, 그리고 NOT NULL 제약 조건 등이 있다.

어떤 데이터베이스 시스템은 예로 PostgreSQL를 들자면, FROM 절이 존재하면 기본적으로 대상 테이블이 fromlist에 응답되는 테이블로 조인한다. 각각의 출력한 행의 조인은 대상 테이블의 업데이트를 의미한다. FROM을 쓸 때 생성된 최대 한 개의 각각의 출력 행이 조인되었는지 확인해야 한다. 다시 말해서, 대상 행은 다른 테이블에 한 개 이상의 행을 다른 테이블로부터 조인할 수 없다. 만약 그럴 경우 오직 하나의 행만 대상 테이블에 조인한다. 그런 후, 오직 하나의 조인된 행은 대상 행의 업데이트에 사용한다. 그러나 어떤 행을 썼는 지 예측하기는 어렵다. [2]

이 불확정성의 원인은 다른 테이블을 좀 더 안전한 서브셀렉트 범위에서만 참조하고, 종종 읽기가 좀 더 어렵고 조인이 좀 더 느려지기 때문이다.

[예제]

emp 테이블에서 KMLEE의 급여를 2,500,000원으로 변경

SQL>
UPDATE employee
SET salary = 2500000
WHERE ename = 'KMLEE';
0.0.1_20210630_7_v33