İçeriğe geç

Excel dosyalarını MySQL için dönüştürün

Excel dosyanızı bırakın, CREATE TABLE ve INSERT ifadeleri içeren bir MySQL betiği alın. Her sütuna bir tür verilir ve her düzeltme satırı ve sütunuyla listelenir.

Dosyanız
xlsxclientes_2024.xlsxÖrnek dosya, 7 kB
Veritabanınız

4 satır dönüştürüldü, 10 düzeltme, reddedilen yok

Göster
clientes_2024.xlsx dosyasının ilk satırları, her düzeltme işaretli
Satır
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 MySQL.

SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;

CREATE TABLE clientes_2024 (
    no_cliente varchar(8) NOT NULL COMMENT 'Nº Cliente',
    nombre varchar(16) NOT NULL,
    c_p varchar(8) NOT NULL COMMENT 'C.P.',
    alta date NOT NULL,
    activo tinyint(1) NOT NULL,
    saldo decimal(6,2)
) DEFAULT CHARSET=utf8mb4;

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;

Düzeltmeler

  1. Başlık 4. satırda; üstündeki satırlar dışarıda bırakıldı.
  2. 9. satır ("TOTAL") bir toplam; bu yüzden dışarıda bırakıldı.
  3. "Nº Cliente" sütununun adı artık no_cliente; böylece MySQL onu tırnaksız okur.
  4. "C.P." sütununun adı artık c_p; böylece MySQL onu tırnaksız okur.
  5. "Nº Cliente" içindeki baştaki sıfırlar korundu: 00127, 00127 olarak kalır ve metin olarak saklanır.
  6. "C.P." içindeki baştaki sıfırlar korundu: 01234, 01234 olarak kalır ve metin olarak saklanır.
  7. 15/02/2024 değeri, "Alta" içindeki tarihlerde günün önce geldiğini kanıtlıyor; bu yüzden 03/02/2024, 2024‑02‑03 olarak okunur.
  8. "Activo" evet ve hayır sözcükleri içeriyor (sí, no); boolean olarak saklandı.
  9. "Saldo" içindeki sayılar ondalık virgül kullanıyor: 1.234,50, 1234.50 olarak okunur.
  10. "Saldo" içindeki N/A boş olarak okundu (4 değerden 1).

Dosyan bu bilgisayarda dönüştürülür ve asla yüklenmez.

Diğer örnekler:

Excel dosyasından MySQL için, sütun sütun

Yukarıdaki örnek clientes_2024.xlsx, IntoSQL'in MySQL için yazdığı haliyle: her sütunun dosyada ne tuttuğu, aldığı tür ve ilk değerinin betiğe nasıl yazıldığı.

Dosyadaİlk değerSütunMySQL türüBetikte
Nº Cliente00127no_clientevarchar(8)'00127'
NombrePeña Muñoznombrevarchar(16)'Peña Muñoz'
C.P.01234c_pvarchar(8)'01234'
Alta03/02/2024altadate'2024-02-03'
Activosíactivotinyint(1)TRUE
Saldo1.234,50saldodecimal(6,2)1234.50

Betiği MySQL veritabanına yükleyin

İndirilen dosya düz bir .sql dosyasıdır. MySQL araçlarıyla çalıştırın.

Terminalden

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

Betik utf8mb4'ü kendisi ayarlar; bu bayrak istemcinin de aynı şekilde göndermesini sağlar, böylece aksanlı harfler bozulmadan ulaşır.

Bir veritabanı aracından

MySQL Workbench'te File, Run SQL Script'i seçip dosyayı belirleyin.

Betik olmadanPro

IntoSQL Pro, dosyayı masaüstü uygulamasından veya komut satırından doğrudan MySQL veritabanına yükler; betik yazmanız gerekmez.

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

Excel dosyaları ve MySQL hakkında bilmeniz gerekenler

IntoSQL'in Excel dosyalarında okudukları

  • Üstünde başlıklar veya notlar olsa bile başlık satırı bulunur ve sondaki toplam satırı dışarıda bırakılır.
  • Excel seri numarası olarak saklanan tarihler, hem 1900 hem 1904 tarih sisteminde gerçek tarihlere dönüşür.
  • 00127 gibi başında sıfır olan kodlar metin olarak kalır. Bir çalışma kitabında birden fazla sayfa varsa sayfayı siz seçersiniz.

MySQL hakkında bilmeniz gerekenler

  • Evet ve hayır değerleri tinyint(1) olur. 255 karaktere kadar metin varchar olur; daha uzun metin boyutuna göre text, mediumtext veya longtext olur.
  • Betik utf8mb4 kullanır ve SQL modunu ayarlar; böylece aksanlar, emoji, ters eğik çizgiler ve satır sonları yazıldığı gibi yüklenir.
  • MySQL'in datetime türü saat dilimi saklamaz.

Her değer türü MySQL içinde nasıl saklanır

DeğerMySQL
Evet ve hayırtinyint(1)
Tam sayılarint
Büyük tam sayılarbigint
Ondalık sayılardecimal(p,s)double
Kayan noktalı sayılardouble
Tarihlerdate
Günün saatleritime(6)time
Saatli tarihlerdatetime(6)datetime
Saatli ve saat farkı olan tarihlerdatetime(6)datetime
Metinvarchar(n)textmediumtextlongtext

Excel dosyasından MySQL için sorular

Yanıtınızı bulamadınız mı? İletişim sayfasından bize yazın, bir kişi yanıt verir. İletişim sayfası

Excel dosyasını MySQL için nasıl dönüştürürüm?

Dosyanızı bu sayfanın üstündeki dönüştürücüye bırakın. Başlığı bulur, her değeri okur ve yaptığı her düzeltmeyi listeleyerek MySQL betiğini yazar. Betiği indirip the mysql client ile çalıştırın.

Çalışma kitabının hangi sayfası dönüştürülür?

Görünür ilk sayfa. Çalışma kitabında birden fazla sayfa varsa bir Sayfa seçeneği çıkar ve başka birini seçebilirsiniz.

Hangi MySQL türlerini kullanır?

Evet/hayır değerleri tinyint(1), tam sayılar int, ondalıklar decimal(p,s), tarihler date, saatli tarihler datetime(6) ve metin varchar(n) olur. Boyutlar her sütundaki en uzun değere göre belirlenir.

MySQL için baştaki sıfırları korur mu?

Evet. 00127 gibi bir kod metin olarak kalır; MySQL onu varchar(8) olarak saklar ve betik onu '00127' olarak yazar.

Verileri betik olmadan MySQL veritabanına yükleyebilir mi?

Evet, IntoSQL Pro ile. Masaüstü uygulaması ve komut satırı MySQL veritabanına bağlanır, önce tabloyu oluşturur ve satırları doğrudan yükler.

Excel dosyası ne kadar büyük olabilir?

Tarayıcıda çalışma kitabı bütün olarak okunur, bu yüzden sınır tarayıcının bu sayfaya verdiği bellektir. Masaüstü uygulaması ve komut satırı her boyutta çalışma kitabını alır; Apple M4'lü bir dizüstü bilgisayarda komut satırı bir milyon satırlık 117 MB'lık bir çalışma kitabını yaklaşık bir saniyede dönüştürür.