Boa tarde, gostaria de tirar uma dúvida rápida.. em quais situações o professor indicaria o uso do tipo nvarchar(200) ou do tipo char(200) ? Desde já agradeço.
Boa tarde, gostaria de tirar uma dúvida rápida.. em quais situações o professor indicaria o uso do tipo nvarchar(200) ou do tipo char(200) ? Desde já agradeço.
Olá Aparecida, tudo bem?
Não sou o professor mas creio que eu possa te ajudar.
char(200)
irá criar um campo de texto com 200 caracteres, caso seja inserido um texto com um numero menor que 200 caracteres (exemplo "TEXTO") será preenchido com espaços a direita até completar 200 caracteres (no nosso exemplo 195 espaços em branco).
O mesmo se aplica para o nchar
.
varchar(200)
irá criar um campo de texto com no máximo 200 caracteres, mas caso seja inserido um texto com um numero menor que 200 caracteres só será usado a quantidade de caracteres que foi inserido (por exemplo "TEXTO" só irá ocupar 5 caracteres).
O mesmo se aplica ao nvarchar
.
a diferença entre os tipos char
, varchar
e nchar
e nvarchar
é que os tipos prefixados com n
segue o encode UTF-8.
Contudo, o uso de campos com tamanho fixo ou variáveis está relacionado ao provisionamento, por exemplo:
Com o tamanho fixo conseguimos dimensionar exatamente o tamanho em Bytes, KBytes ou MBytes de uma linha. Com isso é fácil provisionar/dimensionar quanto de espaço será necessário para armazenar os dados em uma determinada tabela.
Quando usamos campos de texto variáveis temos uma estimativa do tamanho.
Espero ter ajudado e bons estudos.
A diferença ficou bem clara, mas o uso no mundo corporativo me deixa com essa dúvida. Gostaria de saber o que é mais comum nas empresas(até mesmo no caso do BD da Alura), por exemplo, um campo nome(50) declarado como char ocupando todos os espaços e sendo mais eficientes nas consultas na hora de percorrer pelos ponteiros, ou as empresas utilizariam nesse caso o varchar nome(50) deixando os campos com diferentes tamanhos e talvez perdendo na hora de percorrer e retornar os dados ?
Posso estar enganado mas creio que o uso do char
ou varchar
não tenha muito a ver com performance com relação aos ponteiros na hora de percorrer. Na hora de pesquisar dificilmente pesquisamos textos exatamente iguais (ex: na coluna temos a seguinte string 'TEXTO ' e quando vamos pesquisar usamos um where 'TEXTO').
O campo char é geralmente utilizados quando realmente temos um texto com tamanhos fixos, como: Siglas, Estado, CEP e etc.. (O que pode ser facilmente substituído por algum tipo de flag)
Já o varchar é largamente utilizado para qualquer informação de texto como: Nome, Email, Endereço e etc.