Pular para o conteúdo

Converter JSON para SQL

Solte seu arquivo JSON e escolha seu banco de dados para receber um script SQL com comandos CREATE TABLE e INSERT. Cada coluna recebe um tipo, e cada correção é listada com sua linha e coluna.

Seu arquivo
jsonpedidos_2024.jsonArquivo de exemplo, 771 B
Seu banco de dados

4 linhas convertidas, 2 correções, nenhuma rejeitada

Mostrar
As primeiras linhas de pedidos_2024.json, com cada correção marcada
Linha
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;

Correções

  1. Zeros à esquerda mantidos em "pedido": 000481 continua 000481, salvo como texto.
  2. "pagado" contém palavras de sim e não (sí), salvas como booleano.

Seu arquivo é convertido neste computador e nunca é enviado.

Outros exemplos:

Um arquivo JSON, seis bancos de dados

O exemplo acima, pedidos_2024.json, e o tipo que cada uma das colunas recebe em cada banco de dados.

No arquivoPrimeiro valorPostgreSQLMySQLMariaDBSQLiteSQL 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)

Carregue o script no seu banco de dados

O download é um arquivo .sql simples. Cada banco de dados o executa com suas próprias ferramentas.

  • PostgreSQL

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

    ON_ERROR_STOP faz o psql parar no primeiro erro. O script roda em uma única transação, então uma carga que falha deixa o banco de dados como estava.

  • MySQL

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

    O próprio script define utf8mb4; a flag faz o cliente enviá-lo do mesmo jeito, então os acentos chegam intactos.

  • MariaDB

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

    O próprio script define utf8mb4; a flag faz o cliente enviá-lo do mesmo jeito, então os acentos chegam intactos.

  • SQLite

    sqlite3 pedidos_2024.db < pedidos_2024.sqlite.sql

    O arquivo do banco de dados é criado se não existir. O conversor também baixa um banco .sqlite pronto, sem nenhum comando.

  • SQL Server

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

    -f 65001 lê o arquivo como UTF-8, então os acentos e o ñ chegam como foram escritos.

  • Oracle

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

    O script desativa as variáveis de substituição (SET DEFINE OFF), então um e comercial nos seus dados continua sendo um e comercial.

A linha de comando carrega arquivos direto em um banco SQLite de graça. Com o IntoSQL Pro, ela e o app para desktop também carregam no PostgreSQL, MySQL e MariaDB. Para SQL Server e Oracle, execute o script.

O que saber sobre arquivos JSON e cada banco de dados

O que o IntoSQL lê em arquivos JSON

  • O arquivo pode ser um array de objetos, um objeto que guarda esse array sob uma chave como data, ou um objeto por linha (NDJSON).
  • Cada chave vira uma coluna. Objetos e arrays dentro de um valor são mantidos como texto JSON.
  • Os números mantêm os dígitos exatos, e datas ISO 8601 viram datas ou timestamps.

O que saber sobre cada banco de dados

  • Escolha o banco de dados depois de abrir o arquivo: cada um recebe os tipos que suporta.

Como cada tipo de valor é armazenado em cada banco de dados

ValorPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Sim e nãobooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Números inteirosintegerintintINTEGERintNUMBER(10)
Números inteiros grandesbigintbigintbigintINTEGERbigintNUMBER(19)
Decimaisnumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Números de ponto flutuantedouble precisiondoubledoubleREALfloatBINARY_DOUBLE
DatasdatedatedateDATEdateDATE
Horáriostimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Datas com horatimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Datas com hora e fusotimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Textotextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Perguntas sobre JSON para SQL

Não encontrou a resposta? Escreva para nós pela página de contato e uma pessoa responde. Página de contato

Como converto JSON para SQL?

Solte seu arquivo no conversor no topo desta página e escolha seu banco de dados: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server ou Oracle. Cada um recebe os tipos que suporta. Baixe o script e execute-o no seu banco de dados.

Qual formato o arquivo JSON precisa ter?

Um array de objetos, um objeto que guarda esse array em uma chave como data, ou um objeto por linha (NDJSON). Cada chave vira uma coluna.

Quais tipos ele usa em cada banco de dados?

Cada banco recebe os seus: valores sim e não são boolean no PostgreSQL, tinyint(1) no MySQL e no MariaDB, bit no SQL Server e NUMBER(1) no Oracle. A tabela desta página lista cada tipo de valor.

Ele mantém os zeros à esquerda?

Sim. Um código como 000481 continua como texto em todos os bancos, escrito como '000481', então nenhum zero se perde.

Ele carrega os dados sem um script?

Sim. A linha de comando carrega no SQLite de graça, e com o IntoSQL Pro o app para desktop e a linha de comando carregam no PostgreSQL, MySQL e MariaDB. Para SQL Server e Oracle, execute o script.

Qual o tamanho máximo do arquivo JSON?

NDJSON, um objeto por linha, é lido à medida que chega, então arquivos de vários gigabytes funcionam no navegador. Um documento JSON é lido inteiro, então o limite é a memória que o navegador dá a esta página. O app para desktop e a linha de comando aceitam arquivos de qualquer tamanho.