İçeriğe geç

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

JSON 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
jsonpedidos_2024.jsonÖrnek dosya, 771 bayt
Veritabanınız

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

Göster
pedidos_2024.json dosyasının ilk satırları, her düzeltme işaretli
Satır
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75síFactura con "RFC"
-- Written by IntoSQL for PostgreSQL.

SET client_encoding = 'UTF8';
BEGIN;

CREATE TABLE pedidos_2024 (
    pedido text NOT NULL,
    cliente text NOT NULL,
    fecha timestamptz NOT NULL,
    total numeric(6,2) NOT NULL,
    pagado boolean NOT NULL,
    notas text
);

INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00+00:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00+00:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00+00:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00+00:00', 980.75, TRUE, 'Factura con "RFC"');

COMMIT;

Düzeltmeler

  1. "pedido" içindeki baştaki sıfırlar korundu: 000481, 000481 olarak kalır ve metin olarak saklanır.
  2. "pagado" evet ve hayır sözcükleri içeriyor (sí); boolean olarak saklandı.

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

Diğer örnekler:

Tek JSON dosyası, altı veritabanı

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

Dosyadaİlk değerPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
pedido000481textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
clientePeña Muñoztextvarchar(16)varchar(16)TEXTnvarchar(16)VARCHAR2(16 CHAR)
fecha2024-02-03T10:15:00ZtimestamptzdatetimedatetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
total1234.5numeric(6,2)decimal(6,2)decimal(6,2)NUMERIC(6,2)decimal(6,2)NUMBER(6,2)
pagadotruebooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
notas-textvarchar(32)varchar(32)TEXTnvarchar(32)VARCHAR2(32 CHAR)

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 pedidos_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 < pedidos_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 < pedidos_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 pedidos_2024.db < pedidos_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 pedidos_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 @pedidos_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.

JSON dosyaları ve her veritabanı hakkında bilmeniz gerekenler

IntoSQL'in JSON dosyalarında okudukları

  • Dosya bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON) olabilir.
  • Her anahtar bir sütun olur. Bir değerin içindeki nesneler ve diziler JSON metni olarak korunur.
  • Sayılar basamaklarını aynen korur, ISO 8601 tarihleri ise tarih veya zaman damgası olur.

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

JSON 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ı

JSON 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.

JSON dosyası hangi yapıda olmalı?

Bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON). Her anahtar bir sütun olur.

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. 000481 gibi bir kod her veritabanında metin olarak kalır ve '000481' 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.

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

Satır başına bir nesne içeren NDJSON akış halinde okunur, bu yüzden tarayıcıda birkaç gigabaytlık dosyalar çalışır. Bir JSON belgesi 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 dosyayı alır.