| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 스프링부트
- 프론트엔드
- java
- 오라클
- oracle
- 쿼리
- Next.js
- 서버
- jsp
- 코드테스트
- 알고리즘
- 프로그래머스
- 자바
- 코드 테스트
- 디자인 패턴
- 미니정리
- SQL
- 데이터베이스
- JavaScript
- 프런트엔드
- jpa
- 스프링
- 정리
- node.js
- web
- MySQL
- 백엔드
- spring
- 자바스크립트
- BACK-END
- Today
- Total
참치코더의 꿈 메모장
2021/08/15 Oracle - 테이블에 있는 데이터 수정하기 본문
오라클에서는 특정 테이블에 저장되어 있는 데이터 내용을 수정할 때 UPDATE문을 사용한다.
UPDATE문의 기본 사용법
UPDATE [변경할 테이블]
SET [변경할 열1]=[데이터], [변경할 열2]=[데이터], ..., [변경할 열n]=[데이터]
[WHERE 데이터를 변경할 대상 행을 선별하기 위한 조건];
UPDATE : 데이터를 수정할 테이블을 지정한다.
SET : 변경할 열을 선택하고 변경할 데이터를 입력한다.
WHERE : 테이블의 변경할 데이터 선별 조건식을 지정한다.
데이터 전체 수정하기
테이블의 어떤 한 행의 전체 데이터를 바꾸고 싶다면 WHERE절을 생략하고 열의 데이터 값을 바꾸면
전체 데이터가 변경된다.
수정한 내용을 되돌리고 싶을 때
실수로 UPDATE문을 실행했을 때 UPDATE문 실행을 취소하기 위해 ROLLBACK 명령문을 사용할 수 있다.
ROLLBACK은 INSERT, UPDATE, DELETE의 실행을 취소하는 명령어이다.
데이터 일부분만 수정하기
데이터의 일부만을 수정하기 위해서 수정 대상 행을 선별하기 위한 WHERE절과 조건식을 사용해야 한다.
서브쿼리를 사용하여 데이터 수정하기
여러 열을 한번에 수정하는 경우
UPDATE DEPT_TEMP2
SET (DNAME, LOC) = (SELECT DNAME, LOC
FROM DEPT
WHERE DEPTNO = 40)
WHERE DEPTNO = 40;
열 하나하나를 수정하는 경우
열 하나하나에 서브쿼리를 적용하는 것도 가능하다.
UPDATE DEPT_TEMP2
SET DNAME = (SELECT DNAME
FROM DEPT
WHERE DEPTNO = 40),
LOC = (SELECT LOC
FROM DEPT
WHERE DEPTNO = 40)
WHERE DEPTNO = 40;
* 변경 열의 개수에 따라 서브쿼리에서 지정한 열 개수도 변한다.
WHERE절에 서브쿼리를 사용하여 데이터를 수정하는 경우
UPDATE DEPT_TEMP2
SET LOC = 'SEOUL'
WHERE DEPTNO = (SELECT DEPTNO
FROM DEPT_TEMP2
WHERE DNAME = 'OPERATIONS');
UPDATE문 사용할 때 유의점
UPDATE문은 데이터를 검색하는 SELECT 문이나 데이터를 삽입하는 INSERT 문과 달리 사용자가 입력하거나
실제 중요한 정보가 들어있을수 있는 테이블을 직접적으로 데이터를 바꾸는 작업을 하기 때문에
UPDATE문의 WHERE절을 검증하는 작업이 반드시 필요하다.
'Oracle' 카테고리의 다른 글
| 트랜잭션과 세션 Oracle - 2021/08/30 (0) | 2021.08.30 |
|---|---|
| 2021/08/27 Oracle - 테이블에 있는 데이터 삭제하기 (0) | 2021.08.27 |
| 2021/08/15 Oracle - 테이블에 데이터 추가하기 (0) | 2021.08.15 |
| 2021/08/04 Oracle - 서브쿼리 (0) | 2021.08.04 |
| 2021/08/03 Oracle - SQL_99 (ANSI) 표준 조인 (0) | 2021.08.03 |