Trabalhando com JSON no MySQL

Categories: Uncategorized

Neste post vamos entender como usar objetos JSON dentro do banco de dados MySQL. Mas antes de chegarmos lá, acho útil passarmos por alguns outros pontos para ter o entendimento completo e contextualizado de como usar essa solução.

Tópicos cobertos neste post (como sempre recomendo pelo menos passar o olho, pelos tópicos que você julga já conhecer):

  • O que é JSON e qual a sua estrutura?
  • Falado um pouco de serialização de dados
  • NoSQL é “Não SQL”?

O que é JSON e qual a sua estrutura?

JSON um acrônimo para JavaScript Object Notation, é um formato de intercâmbio de dados que independe da linguagem de programação, é baseado em uma notação texto e é muito usado para serialização de dados.

Exemplo de JSON:

{"alunos":[
{ "primeiro_nome": ": "Thiago", "notas": [ 8, 10, 7 ] },
{ "primeiro_nome": "Fellipe", "notas": [ 8, 9, 6 ] },
{ "primeiro_nome": ": "Josué", "notas": [ 10, 7, 8 ] }
]}

A sintaxe do JSON é composta pela seguinte estrutura:

  • { } Abre e fecha chaves – limita o início e o fim de um objeto JSON.
  • [ ] Abre e fecha colchetes – uma representação de valores no formato de array.
  • : Dois pontos – separa nomes de propriedades de seus respectivos valores.
  • , Vírgula – usadas para separar as propriedades de um array, uma da outra bem como, separar os valores dentro de um array.

Observações importantes sobre um JSON:

  • O JSON é puramente um formato de dados — contém apenas propriedades, sem métodos.
  • JSON requer aspas duplas para serem usadas em torno de strings e nomes de propriedades. Aspas simples não são válidas.
  • Mesmo uma única vírgula ou dois pontos perdidos podem fazer com que um arquivo JSON dê errado e não funcione. Você usar esse site para validar se um JSON é válido: https://jsonlint.com/

Falando um pouco de serialização de dados

A definição abaixo é da documentação da Microsoft para C#, mas se enquadra muito bem para o mesmo processo sendo feito por outras linguagens de programação, tais como Python, JavaScript e outras:

“A serialização é o processo de converter um objeto em um fluxo de bytes para armazenar o objeto ou transmiti-lo para a memória, um banco de dados ou um arquivo. Sua finalidade principal é salvar o estado de um objeto para recriá-lo quando necessário. O processo inverso é chamado desserialização.”

Além da serialização vista na imagem acima, para um fluxo de bytes que é algo como uma tripa de “zeros” e “uns” (01000110101011010), também temos a opção de usar XML como formato de serialização, CSV, YAML, além de é claro o JSON, que é o mais utilizado atualmente por ter um formato leve e fácil entendimento para humanos.

De qualquer forma o conceito é sempre o mesmo, serializar em uma ponta e desserializar na outra.

Entendido isso, vamos avançar.

NoSQL é “Não SQL”?

Quando começamos a trabalhar com JSON dentro de um banco de dados relacional como o MySQL, estamos utilizando uma abordagem NoSQL, veja bem, o banco é relacional e não NoSQL, mas a abordagem de como armasenamos os dados sim, e não há problema algum em fazer isso! Até porque NoSQL não sigfica “No SQL” mas “Not Only SQL”.

Como inserir JSON no MySQL

Agora que já temos algumas informações do que gira ao redor de trabalhar com JSON, vamos direto ao ponto central desse post, trabalhar com JSON em banco de dados relacional MySQL!

Atenção: você precisa do MySQL versão >= 5.7.8 para obter o tipo de dados JSON.

Para começar vamos criar uma tabela:

CREATE TABLE `guitar_players` ( `pid` INT NOT NULL , `name` JSON NOT NULL );

Perceba que o campo


    Leave a Reply

    Your email address will not be published.