Конвертация CSV в MariaDB
Перетащите файл CSV, чтобы получить скрипт для MariaDB с командами CREATE TABLE и INSERT. Каждый столбец получает тип, а каждое исправление указано со строкой и столбцом.
5 строк конвертировано, 8 исправлений, ни одна не отклонена
| Строка | ||||||
|---|---|---|---|---|---|---|
| 5 | 00412 | Peña Muñoz | Mérida | 15/02/2024 | 1.234,50 | sí |
| 6 | 00413 | José Ángel Ruiz | León | 03/02/2024 | 99,90 | no |
| 7 | 00414 | Zoë Ortíz | Querétaro | 29/02/2024 | N/A | sí |
| 8 | 00415 | Ñuño Castañeda | Oaxaca | 28/02/2024 | 7,25 | no |
| 9 | 00416 | Iñaki Olaizola | Mazatlán | 11/03/2024 | 980,75 | sí |
-- Written by IntoSQL for MariaDB.
SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;
CREATE TABLE ventas_2024 (
folio varchar(8) NOT NULL,
cliente varchar(16) NOT NULL,
ciudad varchar(16) NOT NULL,
fecha date NOT NULL,
importe decimal(6,2),
pagado tinyint(1) NOT NULL
) DEFAULT CHARSET=utf8mb4;
INSERT INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES
('00412', 'Peña Muñoz', 'Mérida', '2024-02-15', 1234.50, TRUE),
('00413', 'José Ángel Ruiz', 'León', '2024-02-03', 99.90, FALSE),
('00414', 'Zoë Ortíz', 'Querétaro', '2024-02-29', NULL, TRUE),
('00415', 'Ñuño Castañeda', 'Oaxaca', '2024-02-28', 7.25, FALSE),
('00416', 'Iñaki Olaizola', 'Mazatlán', '2024-03-11', 980.75, TRUE);
COMMIT;
Исправления
- Файл был в кодировке windows‑1252; он преобразован в UTF-8.
- Заголовок находится в строке 4; строки над ним не включены.
- Строка 10 ("TOTAL") содержит итог, поэтому она не включена.
- В "Folio" сохранены ведущие нули: 00412 остается 00412 и хранится как текст.
- 15/02/2024 доказывает, что даты в "Fecha" начинаются с дня, поэтому 03/02/2024 читается как 2024‑02‑03.
- Числа в "Importe" записаны с десятичной запятой: 1.234,50 читается как 1234.50.
- N/A в "Importe" прочитаны как пустые (значений: 1 из 5).
- "Pagado" содержит слова да и нет (sí, no), они сохранены как логические значения.
Файл конвертируется на этом компьютере и никуда не загружается.
Другие примеры:
Из CSV в MariaDB, столбец за столбцом
Пример выше, ventas_2024.csv, в том виде, в котором IntoSQL записывает его для MariaDB: что хранит каждый столбец в файле, какой тип он получает и как его первое значение попадает в скрипт.
| В файле | Первое значение | Столбец | Тип в MariaDB | В скрипте |
|---|---|---|---|---|
| Folio | 00412 | folio | varchar(8) | '00412' |
| Cliente | Peña Muñoz | cliente | varchar(16) | 'Peña Muñoz' |
| Ciudad | Mérida | ciudad | varchar(16) | 'Mérida' |
| Fecha | 15/02/2024 | fecha | date | '2024-02-15' |
| Importe | 1.234,50 | importe | decimal(6,2) | 1234.50 |
| Pagado | sí | pagado | tinyint(1) | TRUE |
Загрузите скрипт в MariaDB
Вы скачиваете обычный файл .sql. Запустите его штатными средствами MariaDB.
Из терминала
mariadb --default-character-set=utf8mb4 mydb < ventas_2024.mariadb.sqlСкрипт сам задает utf8mb4; флаг заставляет клиент передавать данные так же, поэтому кириллица и другие символы доходят без искажений.
Из клиента базы данных
В HeidiSQL или DBeaver откройте скрипт и выполните его.
Без скриптаPro
IntoSQL Pro загружает файл прямо в MariaDB из приложения для компьютера или командной строки, без написания скрипта.
intosql load ventas_2024.csv --into mariadb://user@localhost/mydbЧто нужно знать о файлах CSV и MariaDB
Что IntoSQL читает в файлах CSV
- Кодировка определяется автоматически, включая Windows-1252 и UTF-16, поэтому буквы с диакритикой и ñ приходят без искажений.
- Разделитель определяется автоматически: запятая, точка с запятой, табуляция или вертикальная черта. При точке с запятой десятичные запятые, как в 1.234,50, читаются как числа.
- Значения в кавычках могут содержать разделители и переносы строк.
Что нужно знать о MariaDB
- Значения да и нет становятся tinyint(1). Текст до 255 символов хранится как varchar; более длинный текст как text, mediumtext или longtext в зависимости от размера.
- Скрипт использует utf8mb4 и задает режим SQL, поэтому диакритика, эмодзи, обратные слеши и переносы строк загружаются так, как написаны.
- Тип datetime в MariaDB не хранит часовой пояс.
Как каждый вид значений хранится в MariaDB
| Значение | MariaDB |
|---|---|
| Да и нет | tinyint(1) |
| Целые числа | int |
| Большие целые числа | bigint |
| Десятичные числа | decimal(p,s)double |
| Числа с плавающей точкой | double |
| Даты | date |
| Время суток | time(6)time |
| Даты со временем | datetime(6)datetime |
| Даты со временем и смещением | datetime(6)datetime |
| Текст | varchar(n)textmediumtextlongtext |
Вопросы о CSV в MariaDB
Нет ответа на ваш вопрос? Напишите нам через страницу контактов, и вам ответит человек. Страница контактов
Как конвертировать CSV в MariaDB?
Перетащите файл в конвертер в верхней части этой страницы. Он находит заголовок, читает каждое значение и записывает скрипт для MariaDB, перечисляя каждое исправление. Скачайте скрипт и запустите его через the mariadb client.
Что, если в моем CSV точки с запятой или табуляции?
Разделитель определяется автоматически: запятая, точка с запятой, табуляция или вертикальная черта. Его также можно задать в разделе Другие параметры. При точке с запятой десятичные запятые вроде 1.234,50 читаются как числа.
Какие типы MariaDB используются?
Значения да и нет становятся tinyint(1), целые числа int, дробные decimal(p,s), даты date, даты со временем datetime(6), а текст varchar(n). Размеры берутся по самому длинному значению в каждом столбце.
Сохраняются ли ведущие нули в MariaDB?
Да. Код вроде 00412 остается текстом, поэтому MariaDB хранит его как varchar(8), а скрипт записывает как '00412'.
Можно ли загрузить данные в MariaDB без скрипта?
Да, с IntoSQL Pro. Приложение для компьютера и командная строка подключаются к MariaDB и загружают строки напрямую, сначала создав таблицу.
Насколько большим может быть файл CSV?
Браузер читает CSV потоково, по мере загрузки, поэтому работают файлы в несколько гигабайт. На ноутбуке с Apple M4 командная строка конвертирует CSV 174 МБ с миллионом строк меньше чем за секунду.