O banco de dados MySQL é gratuito e muito popular ao redor d...
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
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