Excel에서 SQL Server로 변환
Excel 파일을 놓으면 CREATE TABLE과 INSERT 문이 담긴 SQL Server 스크립트가 만들어져요. 열마다 타입을 정하고, 모든 수정 사항을 행과 열과 함께 나열해요.
4개 행 변환, 수정 10개, 거부 없음
| 행 | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for SQL Server.
SET NOCOUNT ON;
BEGIN TRANSACTION;
CREATE TABLE clientes_2024 (
no_cliente nvarchar(8) NOT NULL, -- Nº Cliente
nombre nvarchar(16) NOT NULL,
c_p nvarchar(8) NOT NULL, -- C.P.
alta date NOT NULL,
activo bit NOT NULL,
saldo decimal(6,2)
);
INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
(N'00127', N'Peña Muñoz', N'01234', '2024-02-03', 1, 1234.50),
(N'00128', N'José Ángel', N'09870', '2024-02-15', 0, NULL),
(N'00129', N'Zoë Ortíz', N'44100', '2024-02-29', 1, -12.00),
(N'00130', N'Ñuño Castañeda', N'06700', '2024-03-11', 0, 980.75);
COMMIT TRANSACTION;
수정 사항
- 헤더는 4행에 있어요. 그 위의 행은 제외했어요.
- 9행("TOTAL")은 합계라서 제외했어요.
- SQL Server에서 따옴표 없이 읽을 수 있도록 "Nº Cliente" 열 이름을 no_cliente(으)로 바꿨어요.
- SQL Server에서 따옴표 없이 읽을 수 있도록 "C.P." 열 이름을 c_p(으)로 바꿨어요.
- "Nº Cliente" 열의 앞자리 0을 유지했어요. 00127 값은 00127 그대로 텍스트로 저장돼요.
- "C.P." 열의 앞자리 0을 유지했어요. 01234 값은 01234 그대로 텍스트로 저장돼요.
- 15/02/2024 값을 보면 "Alta" 열의 날짜는 일이 먼저예요. 그래서 03/02/2024 값을 2024‑02‑03 날짜로 읽어요.
- "Activo" 열에 예/아니요 단어(sí, no)가 있어 불리언으로 저장했어요.
- "Saldo" 열의 숫자는 소수점으로 쉼표를 써요. 1.234,50 값을 1234.50 값으로 읽어요.
- "Saldo" 열의 N/A 값을 빈 값으로 읽었어요(4개 중 1개).
파일은 이 컴퓨터에서 변환되고 업로드되지 않아요.
다른 샘플:
Excel에서 SQL Server까지, 열 하나씩
IntoSQL이 위 샘플 파일 clientes_2024.xlsx을(를) SQL Server용으로 쓴 결과예요. 각 열이 파일에 담은 내용, 받는 형식, 첫 값이 스크립트에 들어가는 모습을 보여 줘요.
| 파일에서 | 첫 값 | 열 | SQL Server 형식 | 스크립트에서 |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | nvarchar(8) | N'00127' |
| Nombre | Peña Muñoz | nombre | nvarchar(16) | N'Peña Muñoz' |
| C.P. | 01234 | c_p | nvarchar(8) | N'01234' |
| Alta | 03/02/2024 | alta | date | '2024-02-03' |
| Activo | sí | activo | bit | 1 |
| Saldo | 1.234,50 | saldo | decimal(6,2) | 1234.50 |
스크립트를 SQL Server에 불러오기
다운로드한 파일은 일반 .sql 파일이에요. SQL Server 자체 도구로 실행하세요.
터미널에서
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를 고르세요.
Excel 파일과 SQL Server에 대해 알아 둘 점
IntoSQL이 Excel 파일에서 읽는 내용
- 위에 제목이나 메모가 있어도 머리글 행을 찾고, 맨 끝의 합계 행은 제외해요.
- Excel 일련번호로 저장된 날짜는 1900 날짜 체계와 1904 날짜 체계 모두에서 실제 날짜가 돼요.
- 00127처럼 앞에 0이 있는 코드는 텍스트로 유지돼요. 통합 문서에 시트가 여러 개 있으면 시트를 직접 고를 수 있어요.
SQL Server에 대해 알아 둘 점
- 텍스트는 N'...' 값을 쓰는 nvarchar라서 악센트 문자가 유지돼요. 4000자가 넘는 텍스트는 nvarchar(max)가 돼요.
- 예/아니요 값은 bit가 되고, 시차가 있는 날짜는 datetimeoffset이 돼요.
- 긴 값은 나눠서 기록되므로 sqlcmd와 SQL Server Management Studio에서 스크립트를 받아들여요.
SQL Server에서 값의 종류별 저장 방식
| 값 | SQL Server |
|---|---|
| 예/아니요 | bit |
| 정수 | int |
| 큰 정수 | bigint |
| 소수 | decimal(p,s) |
| 부동소수점 | float |
| 날짜 | date |
| 시각 | time |
| 날짜와 시간 | datetime2 |
| 날짜, 시간과 시차 | datetimeoffset |
| 텍스트 | nvarchar(n)nvarchar(max) |
Excel에서 SQL Server(으)로 변환하기에 관한 질문
여기에 답이 없나요? 문의 페이지로 연락하시면 담당자가 답장해요. 문의 페이지
Excel 파일을 SQL Server용으로 어떻게 변환하나요?
이 페이지 위쪽의 변환기에 파일을 놓으세요. 헤더를 찾고 모든 값을 읽은 뒤, 적용한 수정 사항을 나열하며 SQL Server 스크립트를 써요. 스크립트를 다운로드해 sqlcmd에서 실행하세요.
통합 문서의 어느 시트가 변환되나요?
보이는 첫 번째 시트예요. 시트가 여러 개면 시트 옵션이 나타나서 다른 시트를 고를 수 있어요.
SQL Server에서는 어떤 형식을 쓰나요?
예/아니요 값은 bit, 정수는 int, 소수는 decimal(p,s), 날짜는 date, 시각이 있는 날짜는 datetime2, 텍스트는 nvarchar(n) 형식이 돼요. 크기는 각 열에서 가장 긴 값에 맞춰져요.
SQL Server에서 앞자리 0이 유지되나요?
네. 00127 같은 코드는 텍스트로 유지되므로 SQL Server에 nvarchar(8) 형식으로 저장되고 스크립트에는 N'00127'(으)로 쓰여요.
스크립트 없이 SQL Server에 데이터를 불러올 수 있나요?
아니요. 스크립트를 다운로드해 sqlcmd에서 실행하세요. 스크립트 없이 불러오기는 데스크톱 앱이나 명령줄에서 PostgreSQL, MySQL, MariaDB, SQLite에 쓸 수 있어요.
Excel 파일은 얼마나 커도 되나요?
브라우저는 통합 문서를 통째로 읽으므로, 한도는 브라우저가 이 페이지에 주는 메모리예요. 데스크톱 앱과 명령줄은 크기에 상관없이 통합 문서를 처리해요. Apple M4 노트북에서 명령줄은 100만 행, 117MB 통합 문서를 약 1초 만에 변환해요.