MSSQL의 데이터 수정 기능인 UPDATE문에 대한 사용법과 부가적인 팁에 대한 글입니다.
UPDATE란?
데이터베이스 테이블 내 데이터를 수정하는 명령어입니다.
가장 기본적인 기능 중 하나로 굉장히 많이 쓰이고 중요한 내용입니다.
UPDATE문 사용법
기본 사용법
--// 문법
UPDATE 테이블
SET 수정할 칼럼1 = 수정할 값1
, 수정할 칼럼2 = 수정할 값2
, 수정할 칼럼3 = 수정할 값3
...
--// 예제
UPDATE TEMP_TABLE
SET C_NAME = 'John'
, AGE = 21
, GRADE = 'A'
--// TEMP_TABLE 에있는 C_NAME 칼럼을 'John', AGE 칼럼을 21, GRADE 칼럼을 'A' 값으로 수정합니다.
기본 문법에 따라 수정하는 예제를 보여드렸지만 해당 예제처럼 사용되는 경우는 거의 없습니다.
테이블에 모든 데이터를 같은 값으로 수정하는 경우는 거의 없기 때문입니다.
우리는 보통 데이터를 수정할 때 특정 행(ROW)만 수정합니다.
따라서 MSSQL 또한 UPDATE시 WHERE 절을 지원합니다.
UPDATE TEMP_TABLE
SET C_NAME = 'John'
, AGE = 21
, GRADE = 'A'
WHERE C_NAME = 'Matthew'
--// 이름이 'Matthew' 데이터 행을 수정합니다.
UPDATE FROM
업데이트하는 테이블 외 다른 테이블을 참조해야 할 때 사용합니다.
물론 다른 테이블 참조 필요 없을 때 사용해도 무방합니다.
UPDATE 테이블A
SET 수정할 칼럼1 = 수정할 값1
, 수정할 칼럼2 = 수정할 값2
FROM 테이블B
WHERE 테이블B.NAME = 테이블 A.NAME
AND B.IDX = 10
위처럼 테이블 B의 IDX = 10과 같은 네임 값이 있는 테이블 A를 수정하고 싶은 경우
즉 다른 테이블 참조가 필요한 경우 사용합니다.
ALIAS를 사용해 더 가독성 좋게 사용할 수 있습니다. (저는 주로 이렇게 사용합니다.)
UPDATE A
SET 수정할 칼럼1 = 수정할 값1
, 수정할 칼럼2 = 수정할 값2
FROM 테이블 A AS A
INNER JOIN 테이블B ON (B.NAME = A.NAME AND B.IDX = 10)
안전하게 UPDATE 하기
업데이트 문은 언제나 신중해야 합니다. (잘못 수정하여 데이터가 엎어진다면... 너무 슬프겠죠?)
그래서 제가 주로 사용하는 방법을 소개합니다.
SELECT 문을 먼저 작성하여 수정되는 데이터를 확인한 후 UPDATE 하는 것입니다.
UPDATE A
SET 수정할 칼럼1 = 수정할 값1
, 수정할 칼럼2 = 수정할 값2
--SELECT A.수정할 칼럼1, A.수정할 값1, A.수정할 칼럼2, A.수정할 칼럼2, A.*
FROM 테이블 A AS A
INNER JOIN 테이블B ON (B.NAME = A.NAME AND B.IDX = 10)
SELECT 문을 작성한 뒤 SELECT 라인은 주석처리 후 UPDATE문을 상단에 작성하여 실행합니다.
UPDATE 하기 전 언제라도 SELECT 라인부터 드래그하여 수정될 데이터를 확인할 수 있습니다.
이상으로 MSSQL UPDATE문에 대한 글이었습니다.
도움이 되었다면 공감 부탁드립니다.