🧚 Listen! Beekeeper Studio is a fast, modern, and open source database GUI Download
January 25, 2023 By Matthew Rathbone

JSON, ou JavaScript Object Notation, é um formato para armazenar e trocar dados. É um formato leve, baseado em texto e legível por humanos que é fácil para máquinas analisar e gerar. No SQLite, JSON pode ser armazenado e consultado de algumas maneiras diferentes.

Usando a Extensão JSON1

Uma maneira de armazenar JSON no SQLite é usar a extensão JSON1, que fornece funções para codificar e decodificar JSON. Para usar a extensão JSON1, você primeiro precisa habilitá-la executando o seguinte comando:

SELECT load_extension('/path/to/json1/extension');

Uma vez que a extensão está habilitada, você pode criar uma tabela que tenha uma coluna do tipo JSON usando a seguinte declaração SQL:

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  data JSON
);

Inserindo Dados JSON

Para inserir um valor JSON nesta tabela, você pode usar a função json_encode fornecida pela extensão JSON1, assim:

INSERT INTO users (id, data) VALUES (1, json_encode({
  "name": "Alice",
  "age": 25,
  "email": "alice@example.com"
}));

Consultando Dados JSON

Para consultar esta tabela, você pode usar a função json_extract, que permite extrair valores da coluna JSON especificando um caminho JSON. Por exemplo, para obter o endereço de email do usuário com id 1, você pode usar a seguinte consulta:

SELECT json_extract(data, '$.email') AS email
FROM users
WHERE id = 1;

Armazenar JSON em BLOB

Outra maneira de armazenar e consultar JSON no SQLite é usar o tipo BLOB. Neste caso, você pode criar uma tabela com uma coluna BLOB assim:

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  data BLOB
);

Inserindo JSON em uma Coluna BLOB

Para inserir um valor JSON nesta tabela, você pode usar a função json_encode para codificar o valor como uma string, e então usar a função hex para convertê-lo para um BLOB, assim:

INSERT INTO users (id, data) VALUES (1, hex(json_encode({
  "name": "Alice",
  "age": 25,
  "email": "alice@example.com"
})));

Consultando JSON em uma Coluna BLOB

Para consultar esta tabela, você pode usar a função JSON_EXTRACT fornecida pela extensão JSON1, mas você precisa converter o valor BLOB de volta para uma string usando a função unhex, assim:

SELECT json_extract(unhex(data), '$.email') AS email
FROM users
WHERE id = 1;

Resumo

Em conclusão, SQLite oferece duas maneiras de armazenar e consultar valores JSON: usando a extensão JSON1 e usando o tipo BLOB. Ambas as abordagens têm suas próprias vantagens e desvantagens, e qual você escolher dependerá de suas necessidades específicas.

Se você precisa converter dados JSON para declarações SQL INSERT, confira nossa ferramenta gratuita Conversor JSON para SQL.

Beekeeper Studio Is A Free & Open Source Database GUI

Best SQL query & editor tool I have ever used. It provides everything I need to manage my database. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio is fast, intuitive, and easy to use. Beekeeper supports loads of databases, and works great on Windows, Mac and Linux.

Beekeeper's Linux version is 100% full-featured, no cut corners, no feature compromises.

What Users Say About Beekeeper Studio

★★★★★
"Beekeeper Studio completely replaced my old SQL workflow. It's fast, intuitive, and makes database work enjoyable again."
— Alex K., Database Developer
★★★★★
"I've tried many database GUIs, but Beekeeper strikes the perfect balance between features and simplicity. It just works."
— Sarah M., Full Stack Engineer

Ready to Improve Your SQL Workflow?

download Download Free