Diferença chave: Em sistemas de banco de dados como o SQL Server, Char e Varchar são ambos tipos de dados, onde char realmente se refere ao caractere e Varchar se refere ao caractere variável. Ambos são usados para armazenar o tipo de cadeia de valores com um comprimento máximo de 8.000 caracteres. O tamanho do armazenamento de char é o mesmo que o declarado, enquanto o tamanho do estágio de Varchar depende dos bytes dos dados reais inseridos.
Vamos dar um exemplo - se um dado Char é declarado de certa forma: declare o teste Char (20), e test = "testing", então o teste ocupará os primeiros 7 bytes e o restante será preenchido com dados em branco. Por outro lado, se um dado Varchar for declarado de uma maneira: declare o teste Varchar (20), e test = “testing”, então ele ocupará apenas 7 + 2 bytes.
Char deve ser usado quando o comprimento da variável é conhecido, enquanto Varchar deve ser usado somente quando o comprimento é desconhecido. Char é mais rápido que Varchar, já que o sistema Varchar gasta algum tempo para detectar o tempo para descobrir o final da string. Por outro lado, esse tempo não é desperdiçado em Char.
Comparação entre Char e Varchar:
Caracteres | Varchar | |
Formulário completo | Personagem | Caractere variável (no contexto do caractere de comprimento variável) |
Significado | Usado para armazenar dados de cadeia não-Unicode de comprimento fixo | Usado para armazenar dados de cadeia não-Unicode de comprimento variável |
Bytes usados para armazenamento | 1 byte por caractere | 1 byte por caractere e 1 ou 2 bytes adicionais para manter as informações de comprimento |
Aplicação | Usado para armazenar dados como número de telefone, etc. (entradas de dados são consistentes). | Usado para armazenar dados como Endereço (entradas de dados variam muito) |
Condição: string de entrada menor que os bytes declarados | O espaço sem qualquer caractere será preenchido com caracteres de espaço | O espaço sem qualquer caractere não será preenchido com nenhum dos caracteres |
Condição: string de entrada mais que bytes declarados | A cadeia será truncada para bytes declarados | A cadeia será truncada para bytes declarados. |