Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Tipos dados Sql Server

Se o char é recomendado para campos de tamanho fixo e o varchar para campos de tamanho variáveis, os campos UF, CPF, CEP não deveriam ser char? Pois sempre ocuparão o mesmo tamanho. O char teria alguma vantagem em relação ao varchar? O campo Sexo poderia ser do tipo char(1) ou varchar(1), qual seria a diferença? A diferença apresentada no curso entre o varchar e o nvarchar é que o nvarchar suporta Unicode, mas existe alguma desvantagem em usá-lo? Se não, não seria recomendável usar sempre o nchar e o nvarchar, por suportar mais tipos de caracteres?

3 respostas

Oi Robson, a diferença básica que existe entre o char e o varchar é que o char vai ocupar os bytes definidos independente de você inserir totalmente o valor ou não. Enquanto o varchar vai ocupar apenas os bits necessários para o o dado. O que isso quer dizer afinal?

Um char de tamanho 10, vai ocupar os 10 espaços mesmo que você insira 5. O varchar de 10, vai ocupar 5 se você inserir 5, entende?

Entenda "ocupar" como "usar espaço em disco".

Então, se no seu sistema, você tem bem definido que o campo sexo será F ou M, então sim, faz sentido usar char. CPF, UF, etc, podem entrar na mesma regra.

O varchar é mais vantajoso quando você não tem certeza do tamanho do dado. Ex: Email, você não pode definir um tamanho certo, mas sabe que cabe em um varchar por que os serviços de email limitam o tamanho do seu endereço.

Faz sentido?

Eu não sei o que dizer sobre o nchar ou nvarchar. Me parecer ser vantajosos mesmo, mas é preciso avaliar a real necessidade. Sem um cenário, fica difícil definir.

solução!

Boa tarde!

Também tem a questão da performance do SGDB, que no caso do VARCHAR, por ser variável, o processamento de leitura em disco é maior, pois é necessário que se saiba onde é o início da informação e onde está o fim da informação.

Boa observação Thiago. Então campos como UF, CPF são melhores com CHAR do que com VARCHAR.