-
Oracle - Insert 개념정리DataBase/Oracle 2024. 8. 27. 22:04반응형
1. 기본적인 INSERT 문
가장 단순한 형태로, 특정 테이블에 데이터를 삽입하는 문장은 다음과 같습니다.
INSERT INTO 테이블_이름 (컬럼1, 컬럼2, 컬럼3, ...) VALUES (값1, 값2, 값3, ...);
- 테이블_이름: 데이터를 삽입할 테이블의 이름입니다.
- 컬럼1, 컬럼2, ...: 데이터를 삽입할 컬럼들의 이름입니다.
- 값1, 값2, ...: 해당 컬럼에 삽입할 값들입니다. 각각의 값은 해당 컬럼의 데이터 타입과 일치해야 합니다.
예를 들어, EMPLOYEES라는 테이블에 새로운 직원을 추가하려면 다음과 같이 작성할 수 있습니다:
INSERT INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DEPARTMENT_ID) VALUES (101, 'John', 'Doe', 10);
2. 컬럼 명시 없이 INSERT 문 사용하기
만약 모든 컬럼에 데이터를 삽입할 경우, 컬럼 목록을 생략할 수 있습니다. 이 경우 VALUES 절에 지정된 값들이 테이블의 모든 컬럼에 순서대로 매핑됩니다.
INSERT INTO 테이블_이름 VALUES (값1, 값2, 값3, ...);
이 방법은 테이블의 모든 컬럼에 대해 값을 제공할 때 유용합니다. 하지만 테이블의 구조가 변경될 경우 문제를 일으킬 수 있으므로 권장되지는 않습니다.
3. 서브쿼리를 사용한 INSERT 문
또한, 서브쿼리(subquery)를 사용하여 다른 테이블이나 쿼리의 결과를 기반으로 데이터를 삽입할 수도 있습니다.
INSERT INTO 테이블_이름 (컬럼1, 컬럼2, 컬럼3, ...) SELECT 값1, 값2, 값3, ... FROM 다른_테이블 WHERE 조건;
예를 들어, TEMP_EMPLOYEES 테이블에 있는 데이터를 EMPLOYEES 테이블로 옮기려면 다음과 같이 할 수 있습니다:
INSERT INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DEPARTMENT_ID) SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DEPARTMENT_ID FROM TEMP_EMPLOYEES WHERE DEPARTMENT_ID = 10;
4. 다중 행 삽입
오라클에서는 한 번의 INSERT 문으로 여러 행을 삽입할 수도 있습니다.
INSERT ALL INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DEPARTMENT_ID) VALUES (102, 'Alice', 'Smith', 20) INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DEPARTMENT_ID) VALUES (103, 'Bob', 'Johnson', 30) SELECT * FROM DUAL;
이 방식은 여러 행을 한 번에 삽입할 때 유용합니다.
5. 삽입된 데이터 확인
오라클에서는 RETURNING 절을 사용하여 INSERT 문이 실행된 후 삽입된 데이터를 반환할 수 있습니다.
INSERT INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DEPARTMENT_ID) VALUES (104, 'Jane', 'Doe', 40) RETURNING EMPLOYEE_ID INTO :new_employee_id;
여기서 :new_employee_id는 반환된 값을 저장할 변수입니다.
반응형'DataBase > Oracle' 카테고리의 다른 글
Oracle - Update 정복하기 (0) 2024.09.02 Oracle - Insert 실습 한방정리 (0) 2024.08.27 Oracle - SET(UNION, UNION ALL, INTERSECT, MINUS) (0) 2024.08.21 Oracle - 결과가 하나 이상인 서브쿼리(IN, ANY, ALL) (0) 2024.08.20 Oracle - 서브쿼리(Sub query) (0) 2024.08.19