Langsung ke konten

Konversi JSON ke SQL

Letakkan file JSON Anda dan pilih database untuk mendapatkan skrip SQL dengan pernyataan CREATE TABLE dan INSERT. Setiap kolom diberi tipe, dan setiap perbaikan dicantumkan beserta baris dan kolomnya.

File Anda
jsonpedidos_2024.jsonFile contoh, 771 B
Database Anda

4 baris dikonversi, 2 perbaikan, tidak ada yang ditolak

Tampilkan
Baris pertama pedidos_2024.json, dengan setiap perbaikan ditandai
Baris
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;

Perbaikan

  1. Nol di depan dipertahankan di "pedido": 000481 tetap 000481, disimpan sebagai teks.
  2. "pagado" berisi kata ya dan tidak (sí), disimpan sebagai boolean.

File Anda dikonversi di komputer ini dan tidak pernah diunggah.

Contoh lain:

Satu file JSON, enam database

Contoh di atas, pedidos_2024.json, dan tipe yang didapat setiap kolomnya di setiap database.

Di fileNilai pertamaPostgreSQLMySQLMariaDBSQLiteSQL 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)

Muat skrip ke database Anda

Hasil unduhan adalah file .sql biasa. Setiap database menjalankannya dengan alatnya sendiri.

  • PostgreSQL

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

    ON_ERROR_STOP membuat psql berhenti pada error pertama. Skrip berjalan dalam satu transaksi, jadi pemuatan yang gagal membiarkan database seperti semula.

  • MySQL

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

    Skrip mengatur utf8mb4 sendiri; flag ini membuat klien mengirimnya dengan cara yang sama, jadi aksen tiba utuh.

  • MariaDB

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

    Skrip mengatur utf8mb4 sendiri; flag ini membuat klien mengirimnya dengan cara yang sama, jadi aksen tiba utuh.

  • SQLite

    sqlite3 pedidos_2024.db < pedidos_2024.sqlite.sql

    File database dibuat jika belum ada. Konverter juga mengunduh database .sqlite yang siap pakai, tanpa perintah apa pun.

  • SQL Server

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

    -f 65001 membaca file sebagai UTF-8, jadi aksen dan ñ tiba seperti tertulis.

  • Oracle

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

    Skrip mematikan variabel substitusi (SET DEFINE OFF), jadi tanda & di data Anda tetap menjadi &.

Command line memuat file langsung ke database SQLite secara gratis. Dengan IntoSQL Pro, command line dan aplikasi desktop juga memuat ke PostgreSQL, MySQL, dan MariaDB. Untuk SQL Server dan Oracle, jalankan skripnya.

Yang perlu diketahui tentang file JSON dan setiap database

Yang dibaca IntoSQL di file JSON

  • File dapat berupa array objek, objek yang menyimpan array tersebut di bawah kunci seperti data, atau satu objek per baris (NDJSON).
  • Setiap kunci menjadi kolom. Objek dan array di dalam nilai disimpan sebagai teks JSON.
  • Angka mempertahankan digit persisnya, dan tanggal ISO 8601 menjadi tanggal atau timestamp.

Yang perlu diketahui tentang setiap database

  • Pilih database setelah file terbuka: masing-masing mendapat tipe yang didukungnya.

Cara setiap jenis nilai disimpan di setiap database

NilaiPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Ya dan tidakbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Bilangan bulatintegerintintINTEGERintNUMBER(10)
Bilangan bulat besarbigintbigintbigintINTEGERbigintNUMBER(19)
Desimalnumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Bilangan floating-pointdouble precisiondoubledoubleREALfloatBINARY_DOUBLE
TanggaldatedatedateDATEdateDATE
Jamtimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Tanggal dengan jamtimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Tanggal dengan jam dan selisih waktutimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Tekstextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Pertanyaan tentang JSON ke SQL

Tidak terjawab di sini? Tulis ke kami dari halaman kontak, dan seseorang akan membalas. Halaman kontak

Bagaimana cara mengonversi JSON ke SQL?

Letakkan file Anda di konverter di bagian atas halaman ini dan pilih database Anda: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, atau Oracle. Masing-masing mendapat tipe yang didukungnya. Unduh skripnya dan jalankan di database Anda.

Seperti apa bentuk file JSON yang dibutuhkan?

Array objek, objek yang menyimpan array tersebut di bawah kunci seperti data, atau satu objek per baris (NDJSON). Setiap kunci menjadi kolom.

Tipe apa yang digunakan di setiap database?

Setiap database mendapat tipenya sendiri: nilai ya dan tidak menjadi boolean di PostgreSQL, tinyint(1) di MySQL dan MariaDB, bit di SQL Server, dan NUMBER(1) di Oracle. Tabel di halaman ini mencantumkan setiap jenis nilai.

Apakah nol di depan tetap ada?

Ya. Kode seperti 000481 tetap berupa teks di setiap database, ditulis sebagai '000481', jadi tidak ada nol yang hilang.

Bisakah data dimuat tanpa skrip?

Bisa. Command line memuat ke SQLite secara gratis, dan dengan IntoSQL Pro, aplikasi desktop dan command line memuat ke PostgreSQL, MySQL, dan MariaDB. Untuk SQL Server dan Oracle, jalankan skripnya.

Seberapa besar file JSON yang bisa dipakai?

NDJSON, satu objek per baris, dibaca sambil dialirkan, jadi file berukuran beberapa gigabyte bisa diproses di browser. Dokumen JSON dibaca utuh, jadi batasnya adalah memori yang diberikan browser untuk halaman ini. Aplikasi desktop dan command line menerima file dengan ukuran berapa pun.