본문 바로가기
오라클

[오라클] INSERT 문법 완벽 정리 (예제+주의 사항)

by devlog93 2026. 1. 3.

INSERT는 테이블에 새로운 데이터를 추가할 때 사용하는 DML문이다. 회원 등록, 로그 저장, 주문 생성 등 모든 서비스의 시작점이 되는 문법이다. 

INSERT 기본 개념

  • 테이블에 새로운 행(row) 추가
  • 컬럼 순서와 값 순서는 반드시 일치
  • 컬럼 목록 생략 가능하지만 권장하진 않는다.
INSERT 
  INTO 테이블명 (
                 컬럼 1
               , 컬럼 2
               , ...
               )
        VALUES (
                 값 1
               , 값 2
               , ...
               );

예제용 테이블 EMP

EMPNO ENAME DEPTNO SAL JOB HIREDATE
1001 KIM 10 3000 CLERK 2024-01-01

1. 기본 INSERT 예제

√ 모든 컬럼에 값 입력

INSERT 
  INTO EMP (
             EMPNO
           , ENAME
           , DEPTNO
           , SAL
           , JOB
           , HIREDATE
           )
    VALUES (
             1002
           , 'LEE'
           , 20
           , 4000
           , 'MANAGER'
           , SYSDATE
           );

 

◆ 실행 결과

EMPNO ENAME DEPTNO SAL JOB HIRDATE
1001 KIM 10 3000 CLERK 2024-01-01
1002 LEE 20 4000 MANAGER 2025-01-10

 


2. 컬럼 일부만 INSERT 하기

√ 나머지 컬럼은

  • DEFAULT 값
  • NULL (NOT NULL 아니면)
INSERT 
  INTO EMP (
             EMPNO
           , ENAME
           , DEPTNO
           )
    VALUES (
             1003
           , 'PARK'
           , 10
           );

 


3. 컬럼 목록 생략 (비추천)

  • 테이블 구조 변경 시 오류 위험
  • 실무에서는 거의 사용하지 않음 되도록 어떤 컬럼을 INSERT 하는지 작성하자.
INSERT
  INTO EMP
    VALEUS (
             1004
           , 'CHOI'
           , 30
           , 3500
           , 'ANALYST'
           , SYSDATE
           );

 


4. 날짜(DATE) ISNERT 방법

√ SYSDATE 사용

INSERT 
  INTO EMP (
             EMPNO
           , EMANE
           , DEPTNO
           , SAL
           , JOB
           , HIREDATE
           )
    VALUES (
             1005
           , 'JUNG'
           , 40
           , 2800
           , 'CLERK'
           , SYSDATE     -- 현재 날짜와 시작
           );

 

 

[오라클] TO_CHAR와 TO_DATE 함수 정리

오라클 TO_CHAR와 TO_DATE 함수를 정리해 보려 합니다. 1. TO_CHAR 사용법TO_CHAR 함수는 날짜 또는 숫자 데이터를 문자열로 변환할 때 사용함.날짜 포맷 변경SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS TO_CHAR

devlog93.tistory.com

 

√ 문자열 날짜 입력(반드시 TO_DATE)

  • 2025-01-01 넣으면 오류
INSERT
  INTO EMP ( 
             EMPNO
           , ENAME
           , DEPTNO
           , SAL
           , JOB
           , HIREDATE
           )
    VALUES ( 
             1006
           , 'HAN'
           , 50
           , 3200
           , 'CLERK'
           , TO_DATE('2025-01-01', 'YYYY-MM-DD') -- 날짜 형식을 YYYY-MM-DD형태로
           );

 


5. INSERT 실행 후 COMMIT

  • COMMIT 전 -> ROLLBACK 가능
  • COMMIT 후 -> 데이터 확정
COMMIT;

 


6. INSERT 사용 시 주의 사항

1. NOT NULL 컬럼 확인

더보기

ORA-01400: cannot insert NULL

2. PK (기본 키) 중복 주의

더보기

ORA-0001: unique constraint violated

3. 데이터 타입 일치 필수

더보기

ORA-01722: invalid number

4. 대량 INSERT는 트랜잭션 주의

  • 락 발생 가능
  • COMMIT 타이밍 중요

7. INSERT 핵심 요약

항목 설명
역할 신규 데이터 추가
컬럼 명시 필수 권장
날짜 처리 TO_DATE
대량 처리 INSERT SELECT
실무 핵심 COMMIT 관리

 


마무리

INSERT 문은 데이터베이스에 새로운 데이터를 생성하는 출발점이 되는 문법이다. 회원가입, 주문 생성, 로그 기록 등 대부분의 서비스 로직은 결국 INSERT를 통해 데이터가 저장되면서 시작된다. 하지만 단순해 보이는 문법과 달리

  • 컬럼 순서 불일치
  • 데이터 타입 오류
  • 날짜 처리 실수
  • 기본 키 중복
  • COMMIT 누락

같은 문제로 오류가 발생하는 경우가 매우 많다. 그래서 INSERT는 문법을 아는 것도 중요하지만 데이터 구조를 이해하고 사용하는 것이 더 중요한 SQL이다. 

  • 컬럼을 명시해서 INSERT 하고
  • 날짜는 TO_DATE로 처리하며
  • 실행 후 결과를 확인하고 COMMIT 하는 습관을 들이면

안정적이고 신뢰할 수 있는 데이터 처리가 가능해진다. 다음 글로는 MERGE 문법이나 트랜잭션 관리에 대해 알아볼까 한다. 감사합니다. (_ _)