Diferença entre Char e Varchar

Ambos são tipos de dados em muitas linguagens de programação e sistemas de banco de dados em que 'char' se refere ao caractere e 'varchar' se refere ao caractere variável. Char em C representa o tipo de caractere usado para armazenar valores de sequência, principalmente caracteres e números codificados em UTF-8. Varchar, por outro lado, é um tipo de dados que pode conter dados de qualquer tipo de comprimento indeterminado. Varchar refere-se a um tipo de dados de um campo em um sistema de gerenciamento de banco de dados. Enquanto os dois podem armazenar valores de cadeia com um comprimento máximo de 8.000 caracteres, char exige mais armazenamento que varchar. Tecnicamente, ambos 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 tamanho fixo usado para armazenar caracteres não-Unicode, daí o nome (abreviação de caractere). Ocupa um byte de espaço para cada caractere codificado como números - os da codificação ASCII. O tipo de caractere também pode ser usado para declarar números inteiros pequenos. 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 que variam de -128 a 127 e, dependendo do tamanho da arquitetura, também pode ser sem sinal, mantendo valores que variam de 0 a 255. Quando os valores de caracteres são armazenados, eles são preenchidos com o espaço à direita especificado. . Os espaços à direita são removidos quando são recuperados.

Por exemplo - se você declarar uma variável do tipo de dados char (7), sempre serão necessários 7 bytes de dados, independentemente de você estar armazenando 1 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 dado com comprimento variando de 0 a 65.535. O campo Varchar pode armazenar valores de qualquer tamanho até um determinado limite, dependendo do banco de dados. Pode ser definido nas linguagens de programação ou no nível do banco de dados. O tamanho do campo varchar pode variar de zero ao comprimento máximo declarado do campo.

Para declarar um caractere variável, a palavra-chave 'varchar' é usada. Varchar ocupa um espaço variável, o que significa que ele usará apenas o número de bytes igual ao número de caracteres. Ajuda a evitar o desperdício de espaço, pois 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 varchar (10), ela usará o número de bytes igual ao número de caracteres. Portanto, se você estiver armazenando apenas um caractere, será necessário apenas um byte e se estiver armazenando 10 caracteres, serão necessários 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 usado para armazenar um valor de cadeia de caracteres de comprimento fixo, enquanto 'Varchar' é um tipo de dados de comprimento variável usado para armazenar dados alfanuméricos de comprimento variável.

  1. Tamanho de armazenamento

O tamanho do 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 desta 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, pelo 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 o varchar é usado para armazenar dados variáveis, 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 caractere para armazenamento. Leva 1 byte por caractere mais 1 ou 2 bytes extras para armazenar informações de tamanho.
O tamanho do armazenamento de char é o mesmo que o declarado. O tamanho de armazenamento do varchar depende da sequência específica armazenada.
Usa alocação de memória estática. Usa alocação dinâmica de memória.
Char deve ser usado quando o comprimento da variável for conhecido. Varchar deve ser usado apenas quando o comprimento da variável não for conhecido.
Aceita apenas caracteres. Aceita caracteres e números.
É 50% mais rápido que o Varchar. É mais lento que Char.
O tamanho do armazenamento do valor do caractere é igual ao tamanho máximo da coluna. O tamanho do armazenamento do valor varchar é igual ao comprimento real dos dados inseridos, não ao tamanho máximo da coluna.

Sumário

  • 'Char' e 'Varchar' são tipos de dados em linguagens de programação e sistemas de banco de dados que compartilham algumas características comuns em termos de funcionalidade e tecnicidade. No entanto, eles diferem consideravelmente da maneira como são armazenados e recuperados.
  • Enquanto char realmente se refere ao caractere, varchar se refere ao 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 ocupa até 1 byte por caractere, enquanto varchar também ocupa 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 estar entre 0 e 65.535.
  • Como char é de comprimento fixo, qualquer espaço restante no campo é preenchido com espaços em branco. Por outro lado, o Varchar é de tamanho 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 nos campos 'char', enquanto 'varchar' não adiciona espaços extras quando você fornece menos dados do que o comprimento especificado.