[Oracle] 오라클 INSERT문(삽입) 사용법 & 예제

테이블에 데이터를 입력할때는 INSERT문을 사용합니다. 기본 사용법은 아래와 같습니다.

 

 INSERT문 기본 형태 

INSERT INTO 테이블명 
(
컬럼1, 
컬럼2, 
컬럼3
) 
VALUES 
(
값1,
값2,
값3
)

가장 기본적인 형태의 INSERT문입니다. 하지만 위와같은 방식으로 데이터를 삽입할때에는 나열된 컬럼과 값의 타입, 갯수가 일치하여야 합니다. 그렇지 않다면 에러가 납니다. 그리고 컬럼의 위치와 값의 위치가 조금이라도 어긋난다면 원치않는 컬럼에 원치않는 데이터가 INSERT되는 불상사가 발생할 수 있습니다.

 

회사테이블 (COMPANY_TABLE)에 회사코드(COMPANY_CODE) = 1 회사이름(COMPANY_NAME) = '삼성전자' 업종(SECTORS) = 'IT' 데이터 삽입

INSERT INTO COMPANY_TABLE 
(
COMPANY_CODE,
COMPANY_NAME,
SECTORS
) 
VALUES 
(
1, 
'삼성전자', 
'IT'
)

 

 INSERT문의 컬럼명 생략 

INSERT INTO 테이블명
VALUES 
(
값1, 
값2, 
값3
)

순서대로 데이터를 삽입할 예정이라면 위와같이 컬럼명을 생략할수도 있습니다. 역시나 주의할점은 컬럼의 타입과 데이터의 형태가 맞는지, 컬럼의 순서와 데이터의 순서가 일치하는지 유의해야합니다. 그리고 위와같은 방식을 사용했을때에는 테이블에 있는 컬럼에 전부 값을 입력해주어야 합니다. 그렇지 않다면 '값의 수가 충분하지 않습니다' 라는 에러가 출력되게 됩니다.

 

회사테이블(COMPANY_TABLE)에 1, '삼성전자', 'IT' 데이터를 순서대로 삽입

INSERT INTO COMPANY_TABLE
VALUES 
(
1, 
'삼성전자', 
'IT'
)

 

 SELECT한 데이터를 INSERT 

INSERT INTO 테이블명 
(
컬럼1, 
컬럼2, 
컬럼3
)
SELECT문

 많은양의 데이터를 INSERT할때 위와같이 일일히 데이터를 삽입할려다가는 정말 귀찮은 반복작업이 될것입니다. 대규모의 데이터 삽입은 위와같이 SELECT로 조회한 값을 테이블에 INSERT하는 방법을 많이 사용합니다.

 

회사테이블(COMPANY_TABLE)에 COMPANY_TALBE2 를 SELECT한 데이터 삽입

INSERT INTO COMPANY_TABLE 
(
COMPANY_CODE,
COMPANY_NAME,
SECTORS
) 
SELECT * FROM COMPANY_TABLE2

 

데이터 INSERT와 묵시적 형변환

데이터를 삽입할때는 기본적으로 테이블 컬럼의 데이터타입과 입력할 데이터의 타입을 맞춰주는것이 기본입니다. 하지만 이렇게 맞춰주지않아도 데이터 삽입에 성공하는 경우가 있습니다. 이 경우는 오라클에서 자동으로 데이터변환을 해주었기때문입니다. 이를 묵시적 형변환이라고 합니다. 예를들어 NUMBER타입의 컬럼에서 '삼성전자'라는 데이터를 넣으면 에러가 날것입니다. 하지만 NUMBER타입에서 '100'이라는 문자을 삽입하려 시도할경우에는 삽입에 성공하게 됩니다. 삼성전자라는 문자열은 숫자로 변환할수 없어 에러가 나지만 100이라는 문자열은 숫자 100으로 변환할 수 있기에 묵시적 형변환이 일어난것입니다.

 

댓글

Designed by JB FACTORY