Oracle DML, DDL 정리
DML
INSERT
- 총 3가지 방법이 있다.
INSERT INTO [table] ([column1], [column2]) VALUES ([value1], [value2]);
INSERT INTO [table] VALUES ([value1], [value2])
INSERT INTO [table] SELECT * FROM TABLE2
MERGE USING
- 예제
MERGE INTO CUSTOMER C
USING
(
SELECT USERNO
, USERNAME
, ADDRESS
, PHONE
FROM NEW_JOIN
WHERE INPUT_DATE = '20170724'
) N
ON ( C.USERNO = N.USERNO)
WHEN MATCHED THEN
UPDATE
SET C.USERNAME = N.USERNAME
, C.ADDRESS = N.ADDRESS
, C.PHONE = N.PHONE
WHEN NOT MATCHED THEN
INSERT ( USERNO
, USERNAME
, ADDRESS
, PHONE
)
VALUES (
N.USERNO
, N.USERNAME
, N.ADDRESS
, N.PHONE
)
-
MERGE USING TABLE: INSERT 또는 UPDATE 할 테이블을 지정해준다.
-
USING : 원하는 결과를 추출하기 위한 SELECT 구문. 해당 구문에서 나온 결과를 INSERT 또는 UPDATE 를 한다.
-
ON : SELECT 한 결과와 입력하고 싶은 테이블의 UNIQUE 한 값을 매칭하는 연결고리 (주로 KEY 값을 사용한다)
-
WHEN MATCHED THEN: SELECT의 결과가 INSERT할 테이블에 값이 이미 존재 할 경우 실행
-
WHEN NOT MATCHED THEN: SELECT의 결과가 INSERT할 테이블에 값이 없는 경우 실행한다.
-
UPDATE만 하고 싶은 경우에는 WHEN NOT MATCHED THEN을 제거하면 된다.
MERGE INTO CUSTOMER C
USING
(
SELECT USERNO
, USERNAME
, ADDRESS
, PHONE
FROM NEW_JOIN
WHERE INPUT_DATE = '20170724'
) N
ON ( C.USERNO = N.USERNO)
WHEN MATCHED THEN
UPDATE
SET C.USERNAME = N.USERNAME
, C.ADDRESS = N.ADDRESS
, C.PHONE = N.PHONE
- MERGE UPDATE DELETE 예제
MERGE INTO CUSTOMER C
USING
(
SELECT USERNO
, USERNAME
, ADDRESS
, PHONE
FROM NEW_JOIN
WHERE INPUT_DATE = '20170724'
) N
ON ( C.USERNO = N.USERNO)
WHEN MATCHED THEN
UPDATE
SET C.USERNAME = N.USERNAME
, C.ADDRESS = N.ADDRESS
, C.PHONE = N.PHONE
DELETE WHERE SAL >= 3000
Author And Source
이 문제에 관하여(Oracle DML, DDL 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@archymi/Oracle-DML-DDL-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
INSERT INTO [table] ([column1], [column2]) VALUES ([value1], [value2]);
INSERT INTO [table] VALUES ([value1], [value2])
INSERT INTO [table] SELECT * FROM TABLE2
- 예제
MERGE INTO CUSTOMER C
USING
(
SELECT USERNO
, USERNAME
, ADDRESS
, PHONE
FROM NEW_JOIN
WHERE INPUT_DATE = '20170724'
) N
ON ( C.USERNO = N.USERNO)
WHEN MATCHED THEN
UPDATE
SET C.USERNAME = N.USERNAME
, C.ADDRESS = N.ADDRESS
, C.PHONE = N.PHONE
WHEN NOT MATCHED THEN
INSERT ( USERNO
, USERNAME
, ADDRESS
, PHONE
)
VALUES (
N.USERNO
, N.USERNAME
, N.ADDRESS
, N.PHONE
)
-
MERGE USING TABLE: INSERT 또는 UPDATE 할 테이블을 지정해준다.
-
USING : 원하는 결과를 추출하기 위한 SELECT 구문. 해당 구문에서 나온 결과를 INSERT 또는 UPDATE 를 한다.
-
ON : SELECT 한 결과와 입력하고 싶은 테이블의 UNIQUE 한 값을 매칭하는 연결고리 (주로 KEY 값을 사용한다)
-
WHEN MATCHED THEN: SELECT의 결과가 INSERT할 테이블에 값이 이미 존재 할 경우 실행
-
WHEN NOT MATCHED THEN: SELECT의 결과가 INSERT할 테이블에 값이 없는 경우 실행한다.
-
UPDATE만 하고 싶은 경우에는 WHEN NOT MATCHED THEN을 제거하면 된다.
MERGE INTO CUSTOMER C
USING
(
SELECT USERNO
, USERNAME
, ADDRESS
, PHONE
FROM NEW_JOIN
WHERE INPUT_DATE = '20170724'
) N
ON ( C.USERNO = N.USERNO)
WHEN MATCHED THEN
UPDATE
SET C.USERNAME = N.USERNAME
, C.ADDRESS = N.ADDRESS
, C.PHONE = N.PHONE
- MERGE UPDATE DELETE 예제
MERGE INTO CUSTOMER C
USING
(
SELECT USERNO
, USERNAME
, ADDRESS
, PHONE
FROM NEW_JOIN
WHERE INPUT_DATE = '20170724'
) N
ON ( C.USERNO = N.USERNO)
WHEN MATCHED THEN
UPDATE
SET C.USERNAME = N.USERNAME
, C.ADDRESS = N.ADDRESS
, C.PHONE = N.PHONE
DELETE WHERE SAL >= 3000
Author And Source
이 문제에 관하여(Oracle DML, DDL 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@archymi/Oracle-DML-DDL-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)