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 문법이나 트랜잭션 관리에 대해 알아볼까 한다. 감사합니다. (_ _)
'오라클' 카테고리의 다른 글
| [오라클] 인덱스(Index) 완벽 정리 (0) | 2026.01.06 |
|---|---|
| [오라클] 트랜잭션(Transaction) COMMIT / ROLLBACK 완벽 정리 (0) | 2026.01.05 |
| [오라클] DELETE 문법 완벽 정리 (예제 + 주의 사항) (0) | 2026.01.02 |
| [오라클] UPDATE 문법 완벽 정리 (예제 + 주의 사항) (0) | 2026.01.01 |
| [오라클] ORDER BY 정렬 문법 완벽 정리 (1) | 2025.12.31 |