INSERT 한번에 여러개 입력 (oracle 만 문법 다름)

SQL 공부

목록 보기
5/11

INSERT 문에서 한 줄에 여러 개의 값을 입력할 수 있습니다. 하지만 사용하는 데이터베이스(DBMS)에 따라 문법이 다를 수 있습니다.


1. MySQL, PostgreSQL, SQL Server (다중 VALUES 지원)

MySQL, PostgreSQL, SQL Server에서는 한 줄에 여러 개의 값을 입력할 수 있습니다.

INSERT INTO employees (id, name, salary) 
VALUES (1, 'Alice', 5000), 
       (2, 'Bob', 6000), 
       (3, 'Charlie', 7000);
  • ✅ 한 번의 INSERT 문으로 여러 개의 행을 삽입 가능
  • ✅ 성능이 향상됨 (한 번의 트랜잭션으로 여러 개 삽입)

2. Oracle (다중 VALUES 미지원 → INSERT ALL 사용)

Oracle에서는 위 방식이 지원되지 않으므로 INSERT ALL을 사용해야 합니다.

INSERT ALL
    INTO employees (id, name, salary) VALUES (1, 'Alice', 5000)
    INTO employees (id, name, salary) VALUES (2, 'Bob', 6000)
    INTO employees (id, name, salary) VALUES (3, 'Charlie', 7000)
SELECT 1 FROM DUAL;
  • ✅ 여러 개의 INSERT 문을 하나의 트랜잭션에서 처리
  • SELECT 1 FROM DUAL은 더미 테이블(DUAL)에서 한 번 실행하여 INSERT ALL을 수행하는 역할

3. SQL Server (INSERT ALL 대신 UNION ALL 사용 가능)

SQL Server에서는 INSERT ALL이 없지만, UNION ALL을 활용한 방법이 있습니다.

INSERT INTO employees (id, name, salary)
SELECT 1, 'Alice', 5000 UNION ALL
SELECT 2, 'Bob', 6000 UNION ALL
SELECT 3, 'Charlie', 7000;
  • UNION ALL을 사용하여 여러 개의 데이터를 한 번에 삽입

📌 정리

DBMS다중 VALUES 지원 (INSERT INTO table VALUES (...), (...) )대체 방법
MySQL✅ 지원-
PostgreSQL✅ 지원-
SQL Server✅ 지원UNION ALL 활용 가능
Oracle❌ 미지원INSERT ALL ... SELECT FROM DUAL 사용

가장 추천하는 방법

  • MySQL, PostgreSQL, SQL Server → INSERT INTO ... VALUES (...), (...), (...);
  • Oracle → INSERT ALL ... SELECT 1 FROM DUAL;

DBMS에 맞게 사용하면 한 번의 INSERT로 여러 개의 데이터를 입력할 수 있습니다! 🚀

profile
AI 답변 글을 주로 올립니다.

0개의 댓글