Building value

Oracle SQL 기본 문법[INSERT] 본문

RDBMS/Oracle DB

Oracle SQL 기본 문법[INSERT]

developer_Michael 2023. 3. 16. 18:26
반응형

Oracle SQL에서 INSERT문은 새로운 데이터를 테이블에 추가할 때 사용됩니다.

INSERT INTO 테이블이름 (칼럼 1, 칼럼 2, 칼럼 3,...) VALUES (값 1, 값 2, 값 3,...);

 

이전 글에서 만들어 놓은 EMP_TEST 테이블에

 

23년 3월 16일에 개발자로 입사한 것으로 가정하여 데이터를 추가해 보겠습니다.

INSERT INTO EMP_TEST
(EMPNO, ENAME, JOB, HIREDATE)
VALUES(7999, 'MICHAEL', 'DEVELOPER', TO_DATE('23/03/16', 'yy/mm/dd'));

 

만약에 추가하려는 데이터가 칼람의 개수와 동일하다면 앞에 쓴 (EMPNO, ENAME, JOB, HIREDATE)를 생략해도 됩니다.

 

다만 추가하려는 데이터의 칼람이 전체 칼람의 개수보다 적을 경우

 

앞에 적은 칼람의 순서대로 뒤에 VALUES 괄호 속에 적어줘야 합니다.

 

-- 가능한 쿼리
INSERT INTO EMP_TEST
VALUES(7999, 'MICHAEL', 'DEVELOPER', TO_DATE('23/03/16', 'yy/mm/dd'));

-- 가능한 쿼리
INSERT INTO EMP_TEST
(EMPNO, ENAME, JOB)
VALUES(7999, 'MICHAEL', 'DEVELOPER');

-- 불가능한 쿼리
INSERT INTO EMP_TEST
(EMPNO, ENAME, JOB)
VALUES(7999, 'DEVELOPER');

 

우선 기존 EMP_TEST 테이블의 데이터를 모두 삭제 한번 하겠습니다.

 

TRUNCATE TABLE EMP_TEST;

위 쿼리는 기존 테이블에 있는 데이터만 모두 삭제하고 칼람은 유지하는 쿼리입니다.

 

 

이제 EMP 테이블에 있는 데이터를 EMP_TEST로 불러오는 쿼리에 대해 알려드리겠습니다.

INSERT INTO EMP_TEST 
SELECT EMPNO, ENAME, JOB, HIREDATE 
FROM EMP;

위 쿼리는 INSERT INTO와 SELECT 문을 함께 사용하여 데이터를 복사하는 방식으로 작동합니다. 

 

이 쿼리에서는 EMP 테이블의 데이터를 EMP_TEST 테이블로 복사하고 있습니다.

단, 이 쿼리를 실행하기 위해서는 EMP_TEST 테이블이 EMP 테이블과 동일한 칼럼을 가져야 합니다. 

 

또한, 데이터 형식과 크기도 일치해야 합니다.

SELECT * FROM EMP_TEST;

모든 데이터 말고도 특정 조건 WHERE문을 사용하여 특정 데이터만 복사할 수도 있습니다.

INSERT INTO EMP_TEST 
SELECT EMPNO, ENAME, JOB, HIREDATE 
FROM EMP
WHERE JOB = 'MANAGER';

위의 SQL 쿼리는 EMP 테이블에서 JOB이 'MANAGER'인 레코드를 선택하고, 

 

그 결과를 EMP_TEST 테이블에 삽입하는 INSERT 문입니다.

EMP_TEST 테이블의 컬럼과 EMP 테이블의 컬럼은 동일한 순서로 매핑되며, 

 

선택된 레코드의 값들이 EMP_TEST 테이블에 삽입됩니다.

이 쿼리는 조건에 따라 특정 레코드만을 삽입하기 위해 WHERE절을 사용합니다. 

 

조건을 만족하는 레코드만을 선택하여 EMP_TEST 테이블에 삽입합니다.

SELECT * FROM EMP_TEST; // 출력 결과

 

반응형