테이블에 새로운 데이터를 삽입할 때 사용
INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (1001, 'ALICE', 'CLERK', 1003, '17/6/9', 800, null, 30 );
INSERT INTO emp
VALUES ( 1002, 'MORRIS', 'CLERK', 1003, '17/01/02', 800, NULL, 30 );
INSERT INTO emp
SELECT 1003, 'MATHEW', 'SALESMAN', NULL, sysdate, 1500, 100, 30 FROM dual;
SELECT 구문의 조회결과를 조건에 따라서 INSERT되도록 하는 SQL구문 👉🏻 여러 개의 INSERT구문으로 작성해야할 쿼리를 한 개의 쿼리로 수행할 수 있게 해줌
INSERT ALL
WHEN deptno = 20
THEN INTO emp_research
WHEN deptno = 30
THEN INTO emp_research (empno, ename)
VALUES (empno, ename)
SELECT * FROM emp;
테이블의 데이터(행)을 삭제할 때 사용하는 sql구문
DELETE emp_research;
테이블의 데이터(행)을 수정하는 SQL구문
SELECT * FROM emp
UPDATE emp SET ename = 'Burger', job = 'King'
WHERE empno = 1001;
💡 오라클 전용 구문
SELECT의 조회 결과 중에서 조건절에 맞는 데이터가
존재할 경우 : UPDATE 또는 DELETE 수행
존재하지 않을 경우 : INSERT 수행
INTO절 : 병합(MERGE)이 이루어질 대상 테이블을 지정USING절 : 조건값을 비교할 기준 테이블 또는 서브쿼리ON절 : WHEN절에서 반응할 조건문을 작성WHEN MATCHED절 : ON절의 조건을 만족하는 데이터가 USING테이블의 조회결과로 존재할 때 수행하는 영역 👉🏻 UPDATE / DELETEWHEN NOT MATCHED절 : ON절의 조건을 만족하는 데이터가 USING테이블의 조회결과로 존재하지 않을 때 수행하는 영역 👉🏻 INSERTMERGE INTO emp_merge M
USING (
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno IN (20, 30)
) E
ON (M.empno = E.empno)
WHEN MATCHED THEN
UPDATE SET sal = sal*1.3
-- WHERE sal < 2000 --WHERE절로 UPDATE 조건 설정 가능
WHEN NOT MATCHED THEN
INSERT (M.empno, M.ename, M.sal, M.deptno)
VALUES (E.empno, E.ename, E.sal, E.deptno);
-- WHERE E.sal > 1000 --WHERE절로 INSERT 조건 설정 가능
DB 클라이언트마다 작업한 내역을 임시로 보관하는 것
👉🏻 다른 클라이언트의 작업 상황에 방해되지 않도록 작업한 내역을 원본 테이블에 즉시 반영하지 않음
DML코드로 구성됨DML 코드 : SELECT INSERT UPDATE DELETE트랜잭션을 제어(관리)하는 sql구문 👉🏻 DCL로 분류됨