O banco de dados MySQL é gratuito e muito popular ao redor d...

Próximas questões
Com base no mesmo assunto
Q1307518 Banco de Dados

O banco de dados MySQL é gratuito e muito popular ao redor do mundo. Nesse contexto, analise o código a seguir:


CREATE TABLE tabelax (jdoc JSON);


Após a execução desse código, na versão 8 do MySQL, constata-se que

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - será criado um campo do tipo longtext na tabelax.

Para entender a questão, é importante ter conhecimento sobre os tipos de dados suportados pelo MySQL e as mudanças introduzidas em suas diferentes versões. No MySQL, o tipo de dado JSON foi introduzido na versão 5.7, e é uma forma de armazenar dados estruturados em formato JSON (JavaScript Object Notation) diretamente em uma coluna da tabela. No entanto, em versões anteriores a isso, uma prática comum era utilizar o tipo de dado longtext para armazenar strings de texto de comprimento potencialmente grande, que poderiam incluir dados no formato JSON, embora sem suporte nativo à manipulação desse formato.

Na versão 8 do MySQL, o suporte ao tipo de dado JSON é pleno, permitindo a utilização nativa de colunas JSON, com todos os benefícios de validação e funções específicas que isso implica. No entanto, a questão afirma que o gabarito correto é a opção D, sugerindo que um campo do tipo longtext seria criado. Isso não está correto para a versão 8 do MySQL, pois o comportamento esperado seria o da opção B, onde um campo do tipo JSON seria de fato criado.

Atenção: se o gabarito oficial da questão realmente indicou a opção D como correta, pode ter ocorrido um equívoco na formulação ou na correção da prova, já que, conforme a documentação oficial do MySQL e as práticas atuais na versão 8, a criação de uma tabela com um campo JSON é plenamente suportada e não resultaria na criação de um campo longtext. A alternativa correta, conforme o contexto atual e as condições estabelecidas pelo enunciado, deveria ser a alternativa B.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito D

MySQL - Tipos de colunas para armazenamento de texto:

CHAR(size):Tamanho máximo 255 caracteres.

VARCAR(size): Tamanho variável. Tamanho máximo 65.535 caracteres. TINYTEXT: Tamanho máximo 255 caracteres.

TEXT:Tamanho máximo 65.535 caracteres.

MEDIUMTEXT: Tamanho máximo 16.777.215 caracteres.

LONGTEXT:Tamanho máximo 4.294.967.295 caracteres.

BLOB: Binary Large OBject. Tamanho máximo 65.535 bytes.

MEDIUMBLOB: Binary Large OBject. Tamanho máximo 16.777.215 bytes. LONGBLOB: Binary Large OBject. Tamanho máximo 4.294.967.295 bytes.

 Ao utilizar o data type JSON se podemos utilizar o TEXT ou o BLOB?

A resposta é simples, utilizando o data type JSON você ganha algumas ferramentas valiosas, como uma validação dos documentos, ou seja, nada de gravar documentos incompletos ou com erro de sintaxe, ganha opção de realizar busca e manipulação dos documentos sem o uso de REGEXP, o que vai facilitar muito a sua vida, sem contar com os recursos de performance.

Fontes:

http://www.performancedb.com/blog/mysql-json-da-casamento-sim/

https://marcosmuniz.com.br/desenvolvimento-web/mysql/mysql-tipos-de-colunas-para-armazenamento-de-texto/

A fonte que encontrei diz o contrário:

"MariaDB and MySQL JSON formats are not the same. In MySQL, the JSON type is a native type, while in MariaDB JSON is just an alias for LONGTEXT"

.

https://mariadb.org/making-mariadb-understand-mysql-json/

Documentação oficial do Mysql: https://dev.mysql.com/doc/refman/8.0/en/json.html

MySQL supports a native  data type defined by  that enables efficient access to data in JSON (JavaScript Object Notation) documents. The  data type provides these advantages over storing JSON-format strings in a string column.

Questão incorreta.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo