INSERT 문에서 한 줄에 여러 개의 값을 입력할 수 있습니다. 하지만 사용하는 데이터베이스(DBMS)에 따라 문법이 다를 수 있습니다.
VALUES 지원)MySQL, PostgreSQL, SQL Server에서는 한 줄에 여러 개의 값을 입력할 수 있습니다.
INSERT INTO employees (id, name, salary)
VALUES (1, 'Alice', 5000),
(2, 'Bob', 6000),
(3, 'Charlie', 7000);
INSERT 문으로 여러 개의 행을 삽입 가능 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을 수행하는 역할 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 사용 |
INSERT INTO ... VALUES (...), (...), (...);INSERT ALL ... SELECT 1 FROM DUAL;DBMS에 맞게 사용하면 한 번의 INSERT로 여러 개의 데이터를 입력할 수 있습니다! 🚀