Diferença entre Char e Varchar

Diferença entre Char e Varchar

Ambos são tipos de dados em muitas linguagens de programação e sistemas de banco de dados onde 'char' se refere a caractere e 'varchar' se refere a caractere variável. Char em C representa o tipo de caractere que é usado para armazenar valores de string, principalmente caracteres codificados em UTF-8 e inteiros. Varchar, por outro lado, é um tipo de dados que pode conter dados de qualquer tipo de comprimento indeterminado. Varchar se refere a um tipo de dados de um campo em um sistema de gerenciamento de banco de dados. Embora ambos possam armazenar valores de string com um comprimento máximo de 8.000 caracteres, char requer mais armazenamento do que varchar. Tecnicamente, eles são usados ​​para armazenar os mesmos tipos de dados, mas diferem na maneira como são armazenados e recuperados. Vamos dar uma olhada em suas diferenças em detalhes.

O que é Char?

Char é um tipo de dados de comprimento fixo usado para armazenar caracteres não Unicode, daí o nome (abreviação de caractere). Ele ocupa um byte de espaço para cada caractere codificado como números - os da codificação ASCII. O tipo char também pode ser usado para declarar pequenos inteiros. Para declarar uma variável de caractere, a palavra-chave ‘char’ é usada, o que significa que um único caractere é armazenado em um byte.



Como os tipos inteiros, char pode ser assinado ou não assinado. Ele pode conter valores de caracteres assinados variando de -128 a 127 e, dependendo do tamanho da arquitetura, também pode ser não assinado, mantendo valores de 0 a 255. Quando os valores de char são armazenados, eles são preenchidos à direita com espaços para o comprimento especificado . Os espaços finais são removidos quando eles são recuperados.

Por exemplo - se você declarar uma variável do tipo de dados char (7), ela sempre terá 7 bytes de dados, independentemente de você estar armazenando 1 caractere ou 7 caracteres, o que significa que você pode armazenar no máximo 7 caracteres na coluna.

O que é Varchar?

Varchar, como o nome sugere, é um tipo de dados de comprimento variável que pode conter qualquer tipo de dados com comprimento variando de 0 a 65.535. O campo Varchar pode armazenar valores de qualquer tamanho até um certo limite, dependendo do banco de dados. Ele pode ser definido em linguagens de programação ou no nível do banco de dados. O tamanho do campo varchar pode ser qualquer coisa de zero ao comprimento máximo declarado do campo.

Para declarar um caractere variável, a palavra-chave ‘varchar’ é usada. Varchar usa um espaço variável, o que significa que usará apenas o número de bytes igual ao número de caracteres. Ajuda a evitar o desperdício de espaço, uma vez que utiliza apenas o espaço necessário para o tamanho da corda. Em algumas linguagens de programação e sistemas de banco de dados, qualquer espaço extra é removido automaticamente do banco de dados.

Por exemplo - se você declarar uma variável de varchar (10), ela usará o número de bytes igual ao número de caracteres. Então, se você estiver armazenando apenas um caractere, levará apenas um byte e se você estiver armazenando 10 caracteres, levará 10 bytes, evitando assim o desperdício de espaço no banco de dados.

Diferença entre Char e Varchar

  1. Tipo de dados

'Char' é um tipo de dados de comprimento fixo que é usado para armazenar o valor da sequência de caracteres de comprimento fixo, enquanto 'Varchar' é um tipo de dados de comprimento variável que é usado para armazenar dados alfanuméricos de comprimento variável.

  1. Tamanho de Armazenamento

O tamanho de armazenamento do valor do caractere é igual ao tamanho máximo desta coluna que você declara ao criar a tabela. Por outro lado, o tamanho de armazenamento do valor varchar é o comprimento real dos dados inseridos, não o tamanho máximo para esta coluna.

  1. Entradas de dados

Você pode usar char quando se espera que as entradas de dados em uma coluna tenham o mesmo tamanho, enquanto, ao contrário, varchar pode ser usado quando se espera que as entradas de dados em uma coluna variem em tamanho.

  1. Alocação de memória

Char usa alocação de memória estática enquanto varchar usa alocação de memória dinâmica

  1. comprimento

O comprimento de uma variável char pode ter qualquer valor de 0 a 255, enquanto o comprimento da variável varchar varia de 0 a 65.535.

  1. Inscrição

As entradas de dados são consistentes em char, que é usado para armazenar dados como números de telefone, enquanto varchar é usado para armazenar dados variados, como endereços.

Char vs. Varchar

Caracteres Varchar
Usado para armazenar o valor da cadeia de caracteres de comprimento fixo. Usado para armazenar dados alfanuméricos de comprimento variável.
O comprimento varia de 0 a 255. O comprimento varia de 0 a 65.535.
Leva 1 byte por personagem para armazenamento. Leva 1 byte por caractere mais 1 ou 2 bytes extras para armazenar informações de comprimento.
O tamanho de armazenamento de char é o mesmo declarado. O tamanho do armazenamento de varchar depende da string específica armazenada.
Usa alocação de memória estática. Usa alocação de memória dinâmica.
Char deve ser usado quando o comprimento da variável é conhecido. Varchar deve ser usado apenas quando o comprimento da variável não é conhecido.
Ele só aceita personagens. Ele aceita caracteres e números.
É 50 por cento mais rápido do que Varchar. É mais lento que Char.
O tamanho de armazenamento do valor char é igual ao tamanho máximo da coluna. O tamanho de armazenamento do valor varchar é igual ao comprimento real dos dados inseridos, não o tamanho máximo da coluna.

Resumo

  • Ambos 'Char' e 'Varchar' são tipos de dados em linguagens de programação e sistemas de banco de dados que compartilham alguns traços comuns em termos de funcionalidade e tecnicidade. No entanto, eles diferem consideravelmente quanto à maneira como são armazenados e recuperados.
  • Enquanto char realmente se refere a caractere, varchar se refere a caractere variável. Como o nome sugere, char é um tipo de dados de comprimento fixo, enquanto varchar é um tipo de dados de comprimento variável.
  • Char leva até 1 byte por caractere, enquanto varchar também leva até 1 byte por caractere mais 1 ou 2 bytes extras para armazenar informações de comprimento. Para char, o comprimento varia de 0 a 255 e para varchar, pode ser qualquer coisa entre 0 e 65.535.
  • Como char tem comprimento fixo, qualquer espaço restante no campo é preenchido com espaços em branco. Varchar, por outro lado, tem comprimento variável, portanto, contém apenas os caracteres que você atribui a ele.
  • Os caracteres restantes são preenchidos com espaços em branco quando os valores são armazenados em campos ‘char’, enquanto ‘varchar’ não adiciona espaços extras quando você fornece menos dados do que o comprimento especificado.