Questão de Banco de Dados — MySQL — Avança SP 2023
- Código
- qa541043
- Banca
- Avança SP
- Órgão
- Pref Americana
- Ano
- 2023
- Cargo
- Ana ( )
- AVARBINARY.
- BVARCHAR.
- CDECIMAL.
- DFLOAT.
- EDOUBLE.
GabaritoB — VARCHAR.
Gabarito: letra B. O tipo de dado descrito no enunciado é o VARCHAR, pois é um campo alfanumérico (aceita letras, números e símbolos) com limite máximo de 255 caracteres — exatamente o que o texto menciona. As demais alternativas (VARBINARY, DECIMAL, FLOAT, DOUBLE) não se encaixam na descrição, como veremos a seguir.
O MySQL oferece diversos tipos de dados para armazenar informações em colunas. Eles se dividem em categorias principais: numéricos (INT, DECIMAL, FLOAT, DOUBLE), data/hora (DATE, TIME, DATETIME), string (CHAR, VARCHAR, TEXT, BLOB, ENUM, SET) e espaciais (GEOMETRY, POINT, etc.). O tipo VARCHAR pertence à categoria de strings e é um dos mais utilizados em aplicações práticas, justamente por sua flexibilidade: ele armazena cadeias de caracteres de comprimento variável, ou seja, ocupa apenas o espaço necessário para os dados efetivamente gravados (mais um ou dois bytes para registrar o tamanho).
A principal característica do VARCHAR é o limite máximo de 255 caracteres quando declarado sem especificação de tamanho (na verdade, o padrão é VARCHAR(255)). Esse limite é uma herança histórica do MySQL e é frequentemente usado como valor padrão em colunas de texto curto, como nomes, endereços e observações. O texto do enunciado critica justamente quem tenta usar VARCHAR com tamanhos maiores (500, 600), o que é desnecessário e pode causar problemas de desempenho e armazenamento — para textos longos, o MySQL oferece os tipos TEXT (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT), que suportam até 4 GB.
É importante distinguir o VARCHAR de outros tipos de string:
Tipo | Característica | Limite |
|---|---|---|
CHAR | Comprimento fixo, preenche com espaços | 255 caracteres |
VARCHAR | Comprimento variável, ocupa só o necessário | 255 caracteres (padrão) |
TINYTEXT | Texto curto | 255 bytes |
TEXT | Texto médio | 65.535 bytes |
MEDIUMTEXT | Texto longo | 16.777.215 bytes |
LONGTEXT | Texto muito longo | 4.294.967.295 bytes |
A pegadinha da banca está em confundir VARCHAR com VARBINARY: ambos têm a palavra "VAR" e aceitam dados de comprimento variável, mas enquanto VARCHAR armazena caracteres (texto), VARBINARY armazena bytes binários (dados não textuais, como imagens ou arquivos). O enunciado fala claramente em "campo alfanumérico que pode receber letras, números, símbolos", o que aponta para VARCHAR.
A banca troca VARCHAR por VARBINARY, aproveitando a semelhança dos nomes. Lembre-se: VARCHAR = texto (caracteres), VARBINARY = dados binários (bytes). Se o campo guarda letras e símbolos, é VARCHAR.
VARBINARY é um tipo de dado binário, usado para armazenar bytes (dados não textuais). Ele não é alfanumérico no sentido de aceitar letras e símbolos como texto — aceita qualquer byte, mas não é a escolha para campos de observação. O limite de 255 também não é característica específica dele (pode ser definido até 65.535 bytes).
VARCHAR é exatamente o tipo descrito: campo alfanumérico de comprimento variável, que aceita letras, números e símbolos, com limite padrão de 255 caracteres. É amplamente usado para armazenar textos curtos, como observações, nomes e endereços.
DECIMAL é um tipo numérico de ponto fixo, usado para armazenar números decimais exatos (ex.: valores monetários). Não aceita letras ou símbolos, portanto não se encaixa na descrição.
FLOAT é um tipo numérico de ponto flutuante, usado para armazenar números aproximados (ex.: 3.14). Não aceita caracteres alfanuméricos.
DOUBLE é um tipo numérico de ponto flutuante de dupla precisão, semelhante ao FLOAT, mas com maior faixa de valores. Também não aceita letras ou símbolos.
Gabarito: letra B — o tipo de dado descrito é o VARCHAR.
Link permanente: /questoes/qa541043