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.
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.
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.
'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.
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.
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.
Char usa alocação de memória estática enquanto varchar usa alocação de memória dinâmica
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.
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.
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. |