Este tutorial analisará cada tipo de dados e descreve a diferença.
O tipo de char SQL
O tipo de char refere -se a um tipo de dados usado para armazenar seqüências de caracteres de um comprimento fixo.
O tipo de char permite especificar um tamanho específico para os dados que você inserir nessa linha.
Embora a implementação do tipo de char possa variar um pouco de acordo com o mecanismo de banco de dados, no SQL padrão, o tipo de char pode manter até um máximo de 8000 caracteres não unicode.
Para definir um comprimento de um tipo de char, você pode usar a sintaxe:
char (n)Onde n se refere ao número (comprimento) dos caracteres que você pode armazenar.
Como o tipo de char é de comprimento fixo, se você inserir uma string com menos caracteres do que o tamanho especificado, a string será acolchoada com espaços extras para corresponder à string definida.
Da mesma forma, se você inserir uma sequência de maior comprimento que o tamanho do conjunto, a string será truncada no tamanho do conjunto.
Para ilustrar, comece criando um banco de dados de amostra:
Observe que, neste exemplo, usamos o PostgreSQL, mas você pode escolher qualquer sabor SQL.
$ psql -u postgresCrie um banco de dados de amostra:
PostGres =# Criar banco de dados Sample_db;Conecte -se ao banco de dados.
PostGres =# \ c sample_dbCrie uma tabela com duas linhas. O primeiro deve ser um ID com incremento automático (serial) e o outro do tipo de char.
Crie a tabela char_v_varchar (serial de id, full_name char (15))Observe que o comprimento máximo da coluna Full_Name é 15.
Vamos agora adicionar alguns dados de amostra.
inserir em char_v_varchar (full_name) valores ('aaron wise'); - 10 caracteresPreste atenção às três declarações de inserção. O primeiro insere um valor de 10 caracteres, o segundo agrega um valor de exatamente 15 caracteres, e o outro agrega um valor de caracteres maiores que 15.
O primeiro valor será preenchido com mais 5 caracteres espaciais para maximizar o comprimento definido se executarmos o código acima.
O segundo se encaixará perfeitamente, e o terceiro será truncado.
Adicionar um valor maior que o comprimento do conjunto é proibido em alguns mecanismos de banco de dados. Por exemplo, no PostgreSQL, a segunda instrução inserir falhará com um erro:
Erro: Valor muito longo para o tipo de caractere (15)Para verificar a duração dos registros, podemos executar a consulta:
Selecione Comprimento (Full_Name) de char_v_varchar;O código acima deve retornar o comprimento de cada linha na tabela:
comprimentoObserve que em alguns mecanismos de banco de dados pode permitir que você adicione um valor de comprimento menor sem preenchimento com espaços extras.
É bom lembrar que o tipo de char usa 1 byte para um caractere inserido.
O tipo SQL Varchar
Diferentemente do tipo de caractere de char, varchar ou variável, armazena seqüências de caracteres de comprimentos variados.
Isso significa que você pode definir o tamanho da coluna Varchar. No entanto, você pode adicionar valores de tamanho maior que ou menor que o comprimento definido.
Vamos dar um exemplo abaixo:
Criar tabela char_v_varchar (serial de id, full_name varchar);Nesse caso, definimos uma tabela com a coluna de Varchar. Como o tamanho de Varchar pode variar, não precisamos definir um comprimento.
Podemos então inserir três valores de tamanho variável como:
inserir em char_v_varchar (full_name) valores ('aaron wise'); - 10 caracteresO código acima deve inserir três registros e retornar o tamanho de cada.
Pensamentos finais
Isso então está na diferença entre um char e o tipo Varchar. Um char mantém seqüências de caracteres de tamanho fixo, enquanto um varchar mantém uma sequência de caracteres de comprimentos variados.
Embora o Varchar possa parecer aplicável para a maioria das situações, ele pode incorrer em acertos significativos se usados de forma irracional. Portanto, se o desempenho for um fator crítico para o seu banco de dados, considere usar um char, a menos que seja necessário.