Résumé : dans ce tutoriel, vous découvrirez les types de données de caractères PostgreSQL, notamment CHAR, VARCHAR, et TEXT, et apprendrez à sélectionner les bons types de caractères pour vos tables.

Introduction aux types de caractères PostgreSQL

PostgreSQL fournit trois types de caractères primaires : CHARACTER(n) ou CHAR(n), CHARACTER VARYINGING(n) ou VARCHAR(n), et TEXT, où n est un nombre entier positif.

Le tableau suivant illstrate les types de caractères dans PostgreSQL :

Types de caractères Description
CHARACTER VARYING(n), VARCHAR(n) longueur variable avec limite de longueur
CHARACTER(n), CHAR(n) longueur fixe, remplissage de blancs
TEXT, VARCHAR variable longueur illimitée

Les deux CHAR(n) et VARCHAR(n) peuvent stocker jusqu’à n caractères. Si vous essayez de stocker une chaîne de caractères qui a plus de n caractères, PostgreSQL émettra une erreur.

Cependant, une exception est que si les caractères excessifs sont tous des espaces, PostgreSQL tronque les espaces à la longueur maximale (n) et stocke les caractères.

Si une chaîne de caractères est explicitement castée vers un CHAR(n) ou VARCHAR(n), PostgreSQL tronquera la chaîne de caractères à n avant de l’insérer dans la table.

Le type de données TEXT peut stocker une chaîne de caractères de longueur illimitée.

Si vous ne spécifiez pas l’entier n pour le type de données VARCHAR, il se comporte comme le type de données TEXT. Les performances du VARCHAR (sans la taille n) et du TEXT sont les mêmes.

Le seul avantage de spécifier le spécificateur de longueur pour le type de données VARCHAR est que PostgreSQL émettra une erreur si vous tentez d’insérer une chaîne qui a plus de n caractères dans la colonne VARCHAR(n).

À la différence de VARCHAR, le CHARACTER ou le CHAR sans le spécificateur de longueur (n) est le même que le CHARACTER(1) ou le CHAR(1).

Différent des autres systèmes de base de données, dans PostgreSQL, il n’y a pas de différence de performance entre les trois types de caractères.

Dans la plupart des cas, vous devriez utiliser TEXTou VARCHAR. Et vous utilisez le VARCHAR(n) lorsque vous voulez que PostgreSQL vérifie la longueur.

Exemples de types de caractères PostgreSQL

Regardons un exemple pour voir comment les types de données CHAR , VARCHAR , et TEXT fonctionnent.

D’abord, créez une nouvelle table appelée character_tests:

Code language: SQL (Structured Query Language) (sql)

Puis, insérez une nouvelle ligne dans la table character_tests.

Code language: SQL (Structured Query Language) (sql)

PostgreSQL a émis une erreur:

Code language: SQL (Structured Query Language) (sql)

C’est parce que le type de données de la colonne x est char(1) et que nous avons essayé d’insérer une chaîne de trois caractères dans cette colonne. Corrigeons cela :

Code language: SQL (Structured Query Language) (sql)

PostgreSQL émet une erreur différente :

Code language: Shell Session (shell)

C’est parce que nous avons essayé d’insérer une chaîne de plus de 10 caractères dans la colonne y qui a le type de données varchar(10).

L’instruction suivante insère avec succès une nouvelle ligne dans la table character_tests.

Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)

Résumé

  • PostgreSQL supporte les types de données CHAR, VARCHAR et TEXT. Le CHAR est un type de caractère de longueur fixe tandis que le VARCHAR et le TEXT sont des types de caractères de longueur variable.
  • Utilisez VARCHAR(n) si vous voulez valider la longueur de la chaîne (n) avant d’insérer dans ou de mettre à jour une colonne.
  • VARCHAR (sans le spécificateur de longueur) et TEXT sont équivalents.
  • Ce tutoriel a-t-il été utile ?
  • OuiNon

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.