[Oracle] 데이터 갱신

Oracle / / 2019. 4. 28. 11:19

1. 데이터 갱신

SQL의 데이터 조작어(DML)는 UPDATE, INSERT, DELETE의 명령을 이용하여 데이터베이스의 갱신 연산을 수행합니다. 

 

2. INSERT

기존 데이터베이스에 새로운 데이터를 삽입하는 연산으로 INSERT 명령이 있으며, 그 형식은 다음과 같습니다.

INSERT

INTO table-name [(column-name [, column-name] …)]

VALUES (value, [, value] …);

또는

INSERT

INTO table-name [(column-name [, column-name] …)]

SELECT column-name [,column-name] … FROM … WHERE …;

 

첫 번째 형식은 새로운 데이터 한 행을 삽입하는 것이며, 두 번째 형식은 다른 테이블로부터 데이터를 유도하여 삽입(여러 행을 동시에 삽입 할 수 있음)하는 형식입니다.

INSERT INTO tmpa_emp(empno, ename, hiredate, sal, deptno)

       VALUES(1, 'kim', to_date('2013-01-01'), 700, 40);

 

이때 각 열의 이름과 값들의 위치는 일치하여야 하며, 테이블의 정의된 순서와 전체 열에 대해 모든 값들이 존재할 경우에는 열의 이름을 다음과 같이 생략할 수 있습니다.

INSERT INTO tmpa_emp

       VALUES(2, 'kang' , to_date('2013-01-01'), 800, 40);

 

다음은 다른 열의 값은 아직 알지 못하는 경우 열의 이름을 명시적으로 다음과 같이 표현 해야 합니다. 값이 생략된 열에는 정의된 DEFAULT 값이 없다면, 널값이 입력됩니다.

INSERT INTO tmpa_emp(empno, ename, hiredate)

VALUES(3, 'kho', to_date('2013-01-01'));

 

다음은 복수 행 삽입입니다. 부질의를 포함하는 두 번째 INSERT문은 부질의의 결과를 테이블에 입력합니다. 이때 부질의 결과의 열의 위치 및 수와 INSERT절의 열의 위치 및 수와 일치하여야 합니다. 다음은 tmpa_emp의 데이터 중 empno가 10보다 작은 데이터를 tmpb_emp에 삽입하는 예제입니다.

INSERT INTO tmpb_emp

    SELECT *

    FROM tmpa_emp

    WHERE empno < 10;

 

3. DELETE

기존 데이터베이스의 데이터를 삭제하는 연산으로 DELETE 명령이 있으며, 그 형식은 다음과 같습니다. 

DELETE

    FROM table-name

    [WHERE predicate]

 

조건절을 만족하는 테이블내의 모든 데이터를 삭제하며, 조건절이 없는 경우 테이블의 모든 데이터를 삭제합니다. 또한 WHERE절에 부질의 사용도 가능합니다. 

 

다음 DELETE 문은 WHERE 절 조건에 만족하는 행을 삭제합니다.

DELETE FROM tmpa_emp

WHERE deptno = 10;

 

* 부질의를 갖는 DELETE 문

DELETE tmpb_emp

WHERE deptno = (SELECT deptno

FROM dept

WHERE loc = 'DALLAS');

 

* 다중 튜플 삭제

테이블내의 모든 데이터가 삭제됩니다.

DELETE FROM tmpa_emp;

 

4. UPDATE

기존의 데이터 값을 변경하는 연산으로 UPDATE 명령이 있으며, 그 형식은 다음과 같습니다.

UPDATE table-name

SET column-name = expression [, column-name = expression …]

[WHERE predicate]

 

조건절을 만족하는 테이블의 열의 값을 set절에 있는 내용의 수식으로 변경됩니다. 이때 WHERE 절에 부질의도 사용이 가능합니다.

 

* 전체 데이터에 대한 변경

UPDATE tmpb_emp

SET sal = sal + 500;

 

* 조건에 의한 변경

UPDATE tmbp_emp

SET sal = sal + 500

WHERE deptno = 30;

 

* 부질의를 갖는 UPDATE문

Update tmpb_emp

SET sal = sal +500;

WHERE deptno = (SELECT deptno

FROM dept

WHERE dname = 'OPERATIONS');

'Oracle' 카테고리의 다른 글

[Oracle] DDL(Data Definition Language)  (0) 2019.06.02
[Oracle] TCL(Transaction Control Language)  (0) 2019.04.28
[Oracle] 서브쿼리(SubQuery)  (0) 2019.04.28
[Oracle] 조인(join)  (0) 2019.04.28
[Oracle] SELECT문  (0) 2019.04.27
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기