PostgreSQL suporta um tipo de dados de caracteres chamado VARCHAR. Este tipo de dado é usado para armazenar caracteres de comprimento limitado. Ele é representado como varchar(n)
no PostgreSQL, onde n representa o limite do comprimento dos caracteres. Se n não é especificado, o padrão é varchar
que tem comprimento ilimitado. Qualquer tentativa de armazenar uma string mais longa na coluna que definiu com varchar(n)
resulta em PostgreSQL emitindo um erro. Entretanto, uma exceção é que se os caracteres em excesso são todos os espaços, o PostgreSQL truncará os espaços para o comprimento máximo e armazenará a string. A única vantagem de especificar o especificador de comprimento para o tipo de dados varchar é que o PostgreSQL irá verificar e emitir um erro se você tentar inserir uma string mais longa na coluna varchar(n).
Syntax: variable_name VARCHAR(n)
Exemplo :
Vamos criar uma nova tabela(digamos, char_test) para a demonstração usando os comandos abaixo:
CREATE TABLE varchar_test ( id serial PRIMARY KEY, x VARCHAR (1), y VARCHAR(10));
Agora vamos inserir uma nova linha na tabela char_test usando o comando abaixo:
INSERT INTO varchar_test (x, y)VALUES ( 'Geeks', 'This is a test for char' );
Neste estágio o PostgreSQL irá levantar um erro pois o tipo de dados da coluna x é char(1) e nós tentamos inserir uma string com três caracteres nesta coluna como mostrado abaixo:
ERROR: value too long for type character varying(1)
Então, agora vamos corrigi-la.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'This is a test for char' );
Agora, vamos obter o mesmo erro para a coluna y, pois o número de caracteres inseridos é maior que 10 como mostrado abaixo:
ERROR: value too long for type character varying(10)
Vamos corrigi-lo também.
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'hello Geek' );
Agora que conseguimos atribuir com sucesso os valores ao tipo de dados dos caracteres, verifique executando o comando abaixo:
SELECT * FROM varchar_test;
Output: