---
title: "Excel에서 SQL로 변환"
description: "Excel 파일을 브라우저에서 PostgreSQL, MySQL, MariaDB, SQLite, SQL Server 또는 Oracle용 SQL로 변환해요. 무료이며 파일은 업로드되지 않아요."
canonical: https://intosql.com/ko/excel-to-sql
last_updated: 2026-10-15
---

# Excel에서 SQL로 변환

Excel 파일을 놓고 데이터베이스를 고르면 CREATE TABLE과 INSERT 문이 담긴 SQL 스크립트가 만들어져요. 열마다 타입을 정하고, 모든 수정 사항을 행과 열과 함께 나열해요.

## Excel 파일 하나, 데이터베이스 여섯 개

위 샘플 clientes_2024.xlsx의 각 열이 데이터베이스마다 받는 형식이에요.

| 파일에서 | 첫 값 | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Nº Cliente | `00127` | `text` | `varchar(8)` | `varchar(8)` | `TEXT` | `nvarchar(8)` | `VARCHAR2(8 CHAR)` |
| Nombre | `Peña Muñoz` | `text` | `varchar(16)` | `varchar(16)` | `TEXT` | `nvarchar(16)` | `VARCHAR2(16 CHAR)` |
| C.P. | `01234` | `text` | `varchar(8)` | `varchar(8)` | `TEXT` | `nvarchar(8)` | `VARCHAR2(8 CHAR)` |
| Alta | `03/02/2024` | `date` | `date` | `date` | `DATE` | `date` | `DATE` |
| Activo | `sí` | `boolean` | `tinyint(1)` | `tinyint(1)` | `BOOLEAN` | `bit` | `NUMBER(1)` |
| Saldo | `1.234,50` | `numeric(6,2)` | `decimal(6,2)` | `decimal(6,2)` | `NUMERIC(6,2)` | `decimal(6,2)` | `NUMBER(6,2)` |

## 스크립트를 데이터베이스에 불러오기

다운로드한 파일은 일반 .sql 파일이에요. 각 데이터베이스의 자체 도구로 실행해요.

### PostgreSQL

```shell
psql -v ON_ERROR_STOP=1 -d mydb -f clientes_2024.postgresql.sql
```

ON_ERROR_STOP을 쓰면 psql이 첫 오류에서 멈춰요. 스크립트는 하나의 트랜잭션으로 실행되므로, 불러오기에 실패해도 데이터베이스는 그대로예요. pgAdmin이나 DBeaver에서는 쿼리 창에서 스크립트를 열고 실행하세요.

스크립트 없이:

```shell
intosql load clientes_2024.xlsx --into postgres://user@localhost/mydb
```

### MySQL

```shell
mysql --default-character-set=utf8mb4 mydb < clientes_2024.mysql.sql
```

스크립트가 utf8mb4를 직접 설정해요. 이 플래그로 클라이언트도 같은 방식으로 보내므로 악센트가 그대로 전달돼요. MySQL Workbench에서 File, Run SQL Script를 차례로 고르고 파일을 선택하세요.

스크립트 없이:

```shell
intosql load clientes_2024.xlsx --into mysql://user@localhost/mydb
```

### MariaDB

```shell
mariadb --default-character-set=utf8mb4 mydb < clientes_2024.mariadb.sql
```

스크립트가 utf8mb4를 직접 설정해요. 이 플래그로 클라이언트도 같은 방식으로 보내므로 악센트가 그대로 전달돼요. HeidiSQL이나 DBeaver에서 스크립트를 열고 실행하세요.

스크립트 없이:

```shell
intosql load clientes_2024.xlsx --into mariadb://user@localhost/mydb
```

### SQLite

```shell
sqlite3 clientes_2024.db < clientes_2024.sqlite.sql
```

데이터베이스 파일이 없으면 새로 만들어져요. 변환기에서는 명령 없이 바로 쓸 수 있는 .sqlite 데이터베이스도 다운로드할 수 있어요. DB Browser for SQLite에서 Execute SQL을 고르고 스크립트를 열어 실행하세요.

스크립트 없이:

```shell
intosql load clientes_2024.xlsx --into clientes_2024.db
```

### SQL Server

```shell
sqlcmd -S localhost -d mydb -f 65001 -i clientes_2024.sql_server.sql
```

-f 65001은 파일을 UTF-8로 읽으므로 악센트와 ñ가 적힌 그대로 전달돼요. SQL Server Management Studio나 Azure Data Studio에서 파일을 열고 Execute를 고르세요.

### Oracle

```shell
sqlplus user@//localhost/mydb @clientes_2024.oracle.sql
```

스크립트가 치환 변수를 꺼서(SET DEFINE OFF) 데이터 속 앰퍼샌드가 그대로 남아요. SQL Developer에서 스크립트를 열고 Run Script(F5)를 고르세요.

## IntoSQL이 Excel 파일에서 읽는 내용

- 위에 제목이나 메모가 있어도 머리글 행을 찾고, 맨 끝의 합계 행은 제외해요.
- Excel 일련번호로 저장된 날짜는 1900 날짜 체계와 1904 날짜 체계 모두에서 실제 날짜가 돼요.
- 00127처럼 앞에 0이 있는 코드는 텍스트로 유지돼요. 통합 문서에 시트가 여러 개 있으면 시트를 직접 고를 수 있어요.

## 데이터베이스별로 알아 둘 점

- 파일을 연 다음 데이터베이스를 고르세요. 각 데이터베이스가 지원하는 타입을 사용해요.

### 데이터베이스별로 값의 종류가 저장되는 방식

| 값 | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
| --- | --- | --- | --- | --- | --- | --- |
| 예/아니요 | `boolean` | `tinyint(1)` | `tinyint(1)` | `BOOLEAN` | `bit` | `NUMBER(1)` |
| 정수 | `integer` | `int` | `int` | `INTEGER` | `int` | `NUMBER(10)` |
| 큰 정수 | `bigint` | `bigint` | `bigint` | `INTEGER` | `bigint` | `NUMBER(19)` |
| 소수 | `numeric(p,s)` | `decimal(p,s) · double` | `decimal(p,s) · double` | `NUMERIC(p,s) · TEXT` | `decimal(p,s)` | `NUMBER(p,s)` |
| 부동소수점 | `double precision` | `double` | `double` | `REAL` | `float` | `BINARY_DOUBLE` |
| 날짜 | `date` | `date` | `date` | `DATE` | `date` | `DATE` |
| 시각 | `time` | `time(6) · time` | `time(6) · time` | `TIME` | `time` | `INTERVAL DAY(0) TO SECOND` |
| 날짜와 시간 | `timestamp` | `datetime(6) · datetime` | `datetime(6) · datetime` | `DATETIME` | `datetime2` | `TIMESTAMP` |
| 날짜, 시간과 시차 | `timestamptz` | `datetime(6) · datetime` | `datetime(6) · datetime` | `DATETIME` | `datetimeoffset` | `TIMESTAMP WITH TIME ZONE` |
| 텍스트 | `text` | `varchar(n) · text · mediumtext · longtext` | `varchar(n) · text · mediumtext · longtext` | `TEXT` | `nvarchar(n) · nvarchar(max)` | `VARCHAR2(n CHAR) · CLOB` |

## Excel에서 SQL로 변환하기에 관한 질문

### Excel 파일을 SQL로 어떻게 변환하나요?

이 페이지 위쪽의 변환기에 파일을 놓고 데이터베이스를 고르세요. PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle 중 각자 지원하는 형식을 써요. 스크립트를 다운로드해 데이터베이스에서 실행하세요.

### 통합 문서의 어느 시트가 변환되나요?

보이는 첫 번째 시트예요. 시트가 여러 개면 시트 옵션이 나타나서 다른 시트를 고를 수 있어요.

### 데이터베이스별로 어떤 형식을 쓰나요?

데이터베이스마다 달라요. 예/아니요 값은 PostgreSQL에서 boolean, MySQL과 MariaDB에서 tinyint(1), SQL Server에서 bit, Oracle에서 NUMBER(1)이에요. 이 페이지의 표에 값 종류별로 모두 나와 있어요.

### 앞자리 0이 유지되나요?

네. 00127 같은 코드는 모든 데이터베이스에서 텍스트로 유지되고 '00127'(으)로 쓰여서 0이 사라지지 않아요.

### 스크립트 없이 데이터를 불러올 수 있나요?

네. 명령줄은 SQLite에 무료로 불러와요. IntoSQL Pro에서는 데스크톱 앱과 명령줄로 PostgreSQL, MySQL, MariaDB에도 불러올 수 있어요. SQL Server와 Oracle은 스크립트를 실행하세요.

### Excel 파일은 얼마나 커도 되나요?

브라우저는 통합 문서를 통째로 읽으므로, 한도는 브라우저가 이 페이지에 주는 메모리예요. 데스크톱 앱과 명령줄은 크기에 상관없이 통합 문서를 처리해요. Apple M4 노트북에서 명령줄은 100만 행, 117MB 통합 문서를 약 1초 만에 변환해요.

## Excel에서 다른 데이터베이스로

- [Excel에서 PostgreSQL로 변환](https://intosql.com/ko/excel-to-postgresql)
- [Excel에서 MySQL로 변환](https://intosql.com/ko/excel-to-mysql)
- [Excel에서 MariaDB로 변환](https://intosql.com/ko/excel-to-mariadb)
- [Excel에서 SQLite로 변환](https://intosql.com/ko/excel-to-sqlite)
- [Excel에서 SQL Server로 변환](https://intosql.com/ko/excel-to-sql-server)
- [Excel에서 Oracle로 변환](https://intosql.com/ko/excel-to-oracle)

## 다른 파일에서 SQL(으)로

- [CSV에서 SQL로 변환](https://intosql.com/ko/csv-to-sql)
- [JSON에서 SQL로 변환](https://intosql.com/ko/json-to-sql)
