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 |