İçeriğe geç

Excel dosyalarını SQL'e dönüştürün

Excel dosyanızı bırakın ve veritabanınızı seçin; CREATE TABLE ve INSERT ifadeleri içeren bir SQL 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 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;

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 PostgreSQL onu tırnaksız okur.
  4. "C.P." sütununun adı artık c_p; böylece PostgreSQL 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:

Tek Excel dosyası, altı veritabanı

Yukarıdaki örnek clientes_2024.xlsx ve sütunlarının her veritabanında aldığı tür.

Dosyadaİlk değerPostgreSQLMySQLMariaDBSQLiteSQL 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)

Betiği veritabanınıza yükleyin

İndirilen dosya düz bir .sql dosyasıdır. Her veritabanı onu kendi araçlarıyla çalıştırır.

  • PostgreSQL

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

    ON_ERROR_STOP, psql'in ilk hatada durmasını sağlar. Betik tek bir işlemde çalışır, bu yüzden başarısız bir yükleme veritabanını olduğu gibi bırakır.

  • MySQL

    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.

  • MariaDB

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

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

  • SQLite

    sqlite3 clientes_2024.db < clientes_2024.sqlite.sql

    Veritabanı dosyası yoksa oluşturulur. Dönüştürücü, hiç komut gerektirmeyen hazır bir .sqlite veritabanı da indirir.

  • SQL Server

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

    -f 65001 dosyayı UTF-8 olarak okur, böylece aksanlı harfler ve ñ yazıldığı gibi ulaşır.

  • Oracle

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

    Betik yerine koyma değişkenlerini kapatır (SET DEFINE OFF), böylece verinizdeki & işareti olduğu gibi kalır.

Komut satırı dosyaları ücretsiz olarak doğrudan bir SQLite veritabanına yükler. IntoSQL Pro ile komut satırı ve masaüstü uygulaması PostgreSQL, MySQL ve MariaDB'ye de yükler. SQL Server ve Oracle için betiği çalıştırın.

Excel dosyaları ve her veritabanı 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.

Her veritabanı hakkında bilmeniz gerekenler

  • Dosya açıldıktan sonra veritabanını seçin: her biri desteklediği türleri alır.

Her değer türü her veritabanında nasıl saklanır

DeğerPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Evet ve hayırbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Tam sayılarintegerintintINTEGERintNUMBER(10)
Büyük tam sayılarbigintbigintbigintINTEGERbigintNUMBER(19)
Ondalık sayılarnumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Kayan noktalı sayılardouble precisiondoubledoubleREALfloatBINARY_DOUBLE
TarihlerdatedatedateDATEdateDATE
Günün saatleritimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Saatli tarihlertimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Saatli ve saat farkı olan tarihlertimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Metintextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Excel dosyasından SQL'e 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ı SQL'e nasıl dönüştürürüm?

Dosyanızı bu sayfanın üstündeki dönüştürücüye bırakın ve veritabanınızı seçin: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server veya Oracle. Her biri desteklediği türleri alır. Betiği indirip veritabanınızda ç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.

Her veritabanında hangi türleri kullanır?

Her veritabanı kendi türlerini alır: evet/hayır değerleri PostgreSQL'de boolean, MySQL ve MariaDB'de tinyint(1), SQL Server'da bit ve Oracle'da NUMBER(1) olur. Bu sayfadaki tablo her değer türünü listeler.

Baştaki sıfırları korur mu?

Evet. 00127 gibi bir kod her veritabanında metin olarak kalır ve '00127' olarak yazılır, böylece hiçbir sıfır kaybolmaz.

Verileri betik olmadan yükleyebilir mi?

Evet. Komut satırı SQLite'a ücretsiz yükler; IntoSQL Pro ile masaüstü uygulaması ve komut satırı PostgreSQL, MySQL ve MariaDB'ye de yükler. SQL Server ve Oracle için betiği çalıştırın.

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.