티스토리 뷰

오라클(Oracle)에서 테이블 생성(CREATE TABLE) 후,

데이터를 처리하는 기능 4가지인 조회(SELECT), 삽입(INSERT), 수정(UPDATE), 삭제(DELETE) 중

UPDATE의 사용법과 예제에 대해서 메모


UPDATE(수정)

: 테이블(TABLE)에 존재하는 행의 내용을 수정하는 명령어.

※조건(WHERE절)을 지정하지 않을 경우, 테이블의 모든 행(=전체)의 내용이 수정되기 때문에 주의!

 만약 실수로 전체 컬럼이나, 어떤 컬럼을 수정했을 경우에는 오라클의 트랜잭션 기능인 [COMMIT/ROLLBACK]을 사용하여

 데이터를 복구하면 된다!

 

・기본 문법

-- 기본 문법
UPDATE 테이블명 SET 컬럼1 = 수정할 값, 컬럼2 = 수정할 값 WHERE 조건

 

・조건을 지정해 컬럼을 수정

-- TestTable의 NAME이 '홍길동'인 데이터의 ID를 1001로 변경
UPDATE TestTable 
   SET ID = 1001 
 WHERE NAME = '홍길동'

 

・SELECT한 결과를 기반으로 UPDATE하기

-- 하나의 컬럼만 변경할 경우
UPDATE 테이블명 SET 컬럼 = (SELECT 컬럼 FROM 테이블명 WHERE 조건)

/* EXAMPLE */
-- TestTable1의 ID가 1200인 NAME을 취득해, TestTable2의 ID가 1104인 NAME을 수정
UPDATE TestTable1 T1 
   SET T1.NAME = (SELECT T2.NAME FROM TestTable2 T2 WHERE T2.ID = 1104)
 WHERE T1.ID = 1200


-- 여러개의 컬럼을 변경할 경우
UPDATE 테이블명 SET (컬럼1, 컬럼2) = (SELECT 컬럼1, 컬럼2 FROM 테이블명 WHERE 조건)

/* EXAMPLE */
-- TestTable1의 ID가 1200인 NAME, AGE를 취득해, TestTable2의 ID가 1104인 NAME, AGE을 수정
UPDATE TestTable1 T1
   SET (T1.NAME, T1.AGE) = (SELECT T2.NAME, T2.AGE FROM TestTable2 T2 WHERE T2.ID = 1104 )
 WHERE T1.ID = 1200

 

 

트랜잭션 기능(COOMMIT/ROLLBACK)

・COMMIT

 : 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어. (= 데이터베이스에 영구적으로 저장하겠다.)

 

・ROLLBACK

 : 작업 중 문제가 발생했을 때, 트렌젝션의 처리 과정에서 발생한 변경 사항을 취소하고, 트랜젝션 과정을 종료

 

 ※트랙젝션(TRANSACTION)의 처리과정이란?

 →INSERT, UPDATE, DELETE 작업 내용을 의미

 

・사용방법

commit;
rollback;

 

 ※트랜잭션(Transaction) 관리 참고

 

[Oracle]트랜잭션(Transaction) 관리

트랜잭션(Transaction) - 트랜잭션은 데이터베이스(Database)에서 데이터를 처리의 한 단위를 의미한다. - 오라클 서버에서 발생하는 여러 개의 SQL문들이 하나의 논리적인 작업 단위로써, 성공하거나

kr98gyeongim.tistory.com

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/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
글 보관함