Перейти к содержимому

Конвертация Excel в SQL

Перетащите файл Excel и выберите базу данных, чтобы получить скрипт SQL с командами CREATE TABLE и INSERT. Каждый столбец получает тип, а каждое исправление указано со строкой и столбцом.

Ваш файл
xlsxclientes_2024.xlsxПример файла, 7 кБ
Ваша база данных

4 строки конвертированы, 10 исправлений, ни одна не отклонена

Показать
Первые строки clientes_2024.xlsx, каждое исправление отмечено
Строка
500127Peña Muñoz0123403/02/2024sí1.234,50
600128José Ángel0987015/02/2024noN/A
700129Zoë Ortíz4410029/02/2024sí-12,00
800130Ñuño Castañeda0670011/03/2024no980,75
-- Written by IntoSQL for PostgreSQL.

SET client_encoding = 'UTF8';
BEGIN;

CREATE TABLE clientes_2024 (
    no_cliente text NOT NULL,
    nombre text NOT NULL,
    c_p text NOT NULL,
    alta date NOT NULL,
    activo boolean NOT NULL,
    saldo numeric(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';

INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
('00127', 'Peña Muñoz', '01234', '2024-02-03', TRUE, 1234.50),
('00128', 'José Ángel', '09870', '2024-02-15', FALSE, NULL),
('00129', 'Zoë Ortíz', '44100', '2024-02-29', TRUE, -12.00),
('00130', 'Ñuño Castañeda', '06700', '2024-03-11', FALSE, 980.75);

COMMIT;

Исправления

  1. Заголовок находится в строке 4; строки над ним не включены.
  2. Строка 9 ("TOTAL") содержит итог, поэтому она не включена.
  3. Столбец "Nº Cliente" теперь называется no_cliente, чтобы PostgreSQL читал его без кавычек.
  4. Столбец "C.P." теперь называется c_p, чтобы PostgreSQL читал его без кавычек.
  5. В "Nº Cliente" сохранены ведущие нули: 00127 остается 00127 и хранится как текст.
  6. В "C.P." сохранены ведущие нули: 01234 остается 01234 и хранится как текст.
  7. 15/02/2024 доказывает, что даты в "Alta" начинаются с дня, поэтому 03/02/2024 читается как 2024‑02‑03.
  8. "Activo" содержит слова да и нет (sí, no), они сохранены как логические значения.
  9. Числа в "Saldo" записаны с десятичной запятой: 1.234,50 читается как 1234.50.
  10. N/A в "Saldo" прочитаны как пустые (значений: 1 из 4).

Файл конвертируется на этом компьютере и никуда не загружается.

Другие примеры:

Один файл Excel, шесть баз данных

Пример выше, clientes_2024.xlsx, и тип, который каждый его столбец получает в каждой базе данных.

В файлеПервое значениеPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Nº Cliente00127textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
NombrePeña Muñoztextvarchar(16)varchar(16)TEXTnvarchar(16)VARCHAR2(16 CHAR)
C.P.01234textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
Alta03/02/2024datedatedateDATEdateDATE
Activosíbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Saldo1.234,50numeric(6,2)decimal(6,2)decimal(6,2)NUMERIC(6,2)decimal(6,2)NUMBER(6,2)

Загрузите скрипт в свою базу данных

Вы скачиваете обычный файл .sql. Каждая база данных запускает его своими средствами.

  • PostgreSQL

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

    ON_ERROR_STOP останавливает psql на первой ошибке. Скрипт выполняется в одной транзакции, поэтому неудачная загрузка оставляет базу без изменений.

  • MySQL

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

    Скрипт сам задает utf8mb4; флаг заставляет клиент передавать данные так же, поэтому кириллица и другие символы доходят без искажений.

  • MariaDB

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

    Скрипт сам задает utf8mb4; флаг заставляет клиент передавать данные так же, поэтому кириллица и другие символы доходят без искажений.

  • SQLite

    sqlite3 clientes_2024.db < clientes_2024.sqlite.sql

    Файл базы данных создается, если его нет. Конвертер также скачивает готовую базу .sqlite, вообще без команд.

  • SQL Server

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

    -f 65001 читает файл как UTF-8, поэтому кириллица и ñ доходят в том виде, в котором записаны.

  • Oracle

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

    Скрипт отключает переменные подстановки (SET DEFINE OFF), поэтому амперсанд в ваших данных остается амперсандом.

Командная строка бесплатно загружает файлы прямо в базу SQLite. С IntoSQL Pro она и приложение для компьютера загружают также в PostgreSQL, MySQL и MariaDB. Для SQL Server и Oracle запустите скрипт.

Что нужно знать о файлах Excel и каждой базе данных

Что IntoSQL читает в файлах Excel

  • Строка заголовков находится, даже если над ней есть названия или заметки, а строка итогов в конце не попадает в результат.
  • Даты, сохраненные как порядковые номера Excel, становятся настоящими датами, и в системе дат 1900, и в системе 1904.
  • Коды с ведущими нулями, например 00127, остаются текстом. Если в книге несколько листов, вы выбираете лист.

Что нужно знать о каждой базе данных

  • Выберите базу данных после открытия файла: каждая получает типы, которые поддерживает.

Как каждый вид значений хранится в каждой базе данных

ЗначениеPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Да и нетbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Целые числаintegerintintINTEGERintNUMBER(10)
Большие целые числаbigintbigintbigintINTEGERbigintNUMBER(19)
Десятичные числаnumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Числа с плавающей точкойdouble precisiondoubledoubleREALfloatBINARY_DOUBLE
ДатыdatedatedateDATEdateDATE
Время сутокtimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Даты со временемtimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Даты со временем и смещениемtimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Текстtextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Вопросы о Excel в SQL

Нет ответа на ваш вопрос? Напишите нам через страницу контактов, и вам ответит человек. Страница контактов

Как конвертировать Excel в SQL?

Перетащите файл в конвертер в верхней части этой страницы и выберите базу данных: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server или Oracle. Каждая получает типы, которые поддерживает. Скачайте скрипт и запустите его в своей базе.

Какой лист книги конвертируется?

Первый видимый лист. Если в книге их несколько, появляется параметр Лист, где можно выбрать другой.

Какие типы используются в каждой базе данных?

У каждой базы свои: значения да и нет - это boolean в PostgreSQL, tinyint(1) в MySQL и MariaDB, bit в SQL Server и NUMBER(1) в Oracle. Таблица на этой странице перечисляет каждый вид значений.

Сохраняются ли ведущие нули?

Да. Код вроде 00127 остается текстом в любой базе данных и записывается как '00127', поэтому ни один ноль не теряется.

Можно ли загрузить данные без скрипта?

Да. Командная строка бесплатно загружает в SQLite, а с IntoSQL Pro приложение для компьютера и командная строка загружают в PostgreSQL, MySQL и MariaDB. Для SQL Server и Oracle запустите скрипт.

Насколько большим может быть файл Excel?

В браузере книга читается целиком, поэтому предел - это память, которую браузер выделяет этой странице. Приложение для компьютера и командная строка принимают книги любого размера; на ноутбуке с Apple M4 командная строка конвертирует книгу 117 МБ с миллионом строк примерно за секунду.