SóProvas


ID
230056
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Sejam as seguintes assertivas sobre os tipos de dados de cadeias de caracteres noSGBDMySQL:

I. A quantidade máxima de caracteres que pode ser armazenadaemuma coluna do tipo VARCHAR é 65.532.
II. A quantidade máxima de caracteres que pode ser armazenadaemuma coluna do tipo CHAR é 256.
III. O tipo de dados CHAR não aceita o conjunto de caracteres UNICODE.

Marque a alternativa correta em relação às assertivas acima.

Alternativas
Comentários
  • CORRETA LETRA A.
    Na opção VARCHAR, do tipo texto, o máximo que pode ser armazenado de caracteres são: 65.532 bytes (MySQL).
    A opção CHAR é do tipo texto, mas de tamanho definido e limitado de caracteres. O tipo de dados CHAR utiliza o conjunto de caracteres UNICODE, pois associa um número único para cada caractere usado nas línguas escritas de todo o mundo. Ex. Sexo char(1)  que vai definir o sexo de uma determinada entidade M (masculino) ou F (feminino).
  • Na verdade a assetiva I e II estão corretas:

    The length of a CHAR column is fixed to the length that you declare when you create the table. The length can be any value from 0 to 255.

    Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 65,535.

    http://dev.mysql.com/doc/refman/5.6/en/char.html

  • Gabarito: Alternativa A. 
    Comentário: Esta questão se concentra no conhecimento dos tipos de dados para armazenamento no MySQL. A principal diferença entre o tipo de dados VARCHAR e CHAR é a quantidade de espaços em branco que este último insere nos caracteres para que o preenchimento da coluna seja completo. Por exemplo: uma coluna do tipo VARCHAR(10) armazenará apenas um caractere caso uma instrução similar a INSERT... VALUES(‘A’) seja enviada para o MySQL. Já o tipo CHAR(10) armazenará 10 caracteres para a mesma instrução, pois o caractere ‘A’ será seguido de nove caracteres que representam o espaço em branco. 
    A primeira assertiva da questão é verdadeira, pois de acordo com a documentação do MySQL, o limite máximo para o tipo de dados VARCHAR é 65.532 caracteres ou 64K. Já a segunda assertiva é inválida, pois o tipo de dados CHAR pode armazenar no máximo 255 caracteres e não 256, como a assertiva II indica. Os tipos de dados CHAR e VARCHAR não funcionam da mesma maneira que um array em uma linguagem de programação, onde é possível utilizar o valor 0 como índice para acessar a primeira posição do array. 
    A terceira assertiva também é incorreta, pois o tipo de dados CHAR aceita caracteres UNICODE sem problemas. A propósito, a partir do MySQL 5.0 é possível trabalhar com o conjunto de caracteres Unicode identificados por ucs2 ou utf8, sendo que a diferença entre eles é que o primeiro gasta dois bytes por caractere e o segundo (mais popular) gasta de um a três bytes por caractere. 
    Como apenas a primeira assertiva é verdadeira, o candidato deve marcar a alternativa A para responder corretamente esta questão. 

    Leia mais em: Questões resolvidas do concurso da PRODAM - Revista SQL Magazine 103 http://www.devmedia.com.br/questoes-resolvidas-do-concurso-da-prodam-revista-sql-magazine-103/25668#ixzz33MyYKUEF

  • Deivid, com todo respeito, eu vi dois problemas na sua resposta. O primeiro foi afirmar que a alternativa I está certa quando ela cita o número 65.532, sendo que vc citou 65.535. O segundo: se vc afirma que o CHAR pode ir de 0 até 255, logo a quantidade máxima é 255. A afirmativa II fala em 256.

    Pra mim, a resposta era pra ser E.