개인공부
테이블의 내용을 추가,수정,삭제하는 DML 본문
INSERT - 테이블에 새로운 행을 추가
INSERT INTO table_name
(column_name, …)
VALUES(column_value, …);
INSERT INTO DEPT01
(DEPTNO, DNAME, LOC)
VALUES(10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT01
VALUES (20, 'RESEARCH', 'DALLAS');
서브쿼리로 데이터 삽입하기
INSERT INTO DEPT02
SELECT * FROM DEPT;
INSERT ALL - 다중 테이블에 다중 행 입력하기
INSERT ALL 명령문은 서브 쿼리의 결과 집합을 조건 없이 여러 테이블에 동시에 입력하기 위한 명령문입니다. 이때 주의할 점은 서브 쿼리의 컬럼명과 데이터가 입력되는 테이블의 컬럼명이 동일해야 한다는 점입니다.
INSERT ALL
INTO EMP_HIR VALUES(EMPNO, ENAME, HIREDATE)
INTO EMP_MGR VALUES(EMPNO, ENAME, MGR)
SELECT EMPNO, ENAME, HIREDATE, MGR
FROM EMP
WHERE DEPTNO=20;
조건(WHEN)에 의해 다중 테이블에 다중 행 입력하기
INSERT ALL 명령문에 WHEN 절을 추가해서 조건을 제시하여 조건에 맞는 행만 추출하여 테이블에 추가합니다.
EMP_HIR02 테이블에는 1982 년 01 월01 일 이후에 입사한 사원들의 번호, 사원 명, 입사일을 추가합니다.
EMP_SAL 테이블에는 급여가 2000 이상인 사원들의 번호, 사원 명, 급여를 추가합니다.
INSERT ALL
WHEN HIREDATE > '1982/01/01' THEN
INTO EMP_HIR02 VALUES(EMPNO, ENAME, HIREDATE)
WHEN SAL >= 2000 THEN
INTO EMP_SAL VALUES(EMPNO, ENAME, SAL)
SELECT EMPNO, ENAME, HIREDATE, SAL FROM EMP;
UPDATE - 테이블 특정 행 변경
UPDATE EMP01
SET DEPTNO=30
WHERE DEPTNO=10;
UPDATE EMP01
SET SAL = SAL * 1.1
WHERE SAL >= 3000;
UPDATE EMP01
SET DEPTNO=20, JOB='MANAGER'
WHERE ENAME='SCOTT';
서브쿼리를 이용한 데이터 수정
UPDATE DEPT01
SET LOC=(SELECT LOC
FROM DEPT01
WHERE DEPTNO=40)
WHERE DEPTNO=20;
DELETE - 테이블의 불필요한 행을 삭제
DELETE [FROM] table_name
WHERE conditions;
DELETE FROM DEPT01
WHERE DEPTNO=30;
서브쿼리를 이용한 데이터 삭제
DELETE FROM EMP01
WHERE DEPTNO=(SELECT DEPTNO
FROM DEPT
WHERE DNAME='SALES');
MERGE - 테이블의 합병
MERGE(합병)란 구조가 같은 두개의 테이블을 하나의 테이블로 합치는 기능을 합니다.
MERGE 명령을 수행하기 위해서 수행하는 테이블에 기존에 존재하는 행이 있다면 새로운 값으로 갱신(UPDATE)되고, 존재하지 않으면 새로운 행으로 추가(INSERT)됩니다.
MERGE INTO BBAN B
USING CHANGE C
ON(B.NAME = C.NAME) -- 조인 조건
WHEN MATCHED THEN -- 조인 조건 일치하는 경우
UPDATE SET -- 수정
B.KOR = C.KOR, B.ENG = C.ENG, B.MAT = C.MAT
WHEN NOT MATCHED THEN -- 조인 조건 일치하지 않는 경우
INSERT VALUES ( -- 삽입(INTO 사용하지 않습니다.)
C.NAME, C.KOR, C.ENG, C.MAT
);
'데이터베이스' 카테고리의 다른 글
데이터 무결성 제약 조건 - 1 (0) | 2018.04.22 |
---|---|
COMMIT와 ROLLBACK (0) | 2018.04.22 |
테이블 구조 생성,변경 및 삭제하는 DDL (0) | 2018.04.21 |
데이터베이스 - 서브쿼리 (0) | 2018.04.20 |
데이터베이스 - 조인 (0) | 2018.04.19 |