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 TEXT
ou 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
etTEXT
. LeCHAR
est un type de caractère de longueur fixe tandis que leVARCHAR
et leTEXT
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) etTEXT
sont équivalents.
- Ce tutoriel a-t-il été utile ?
- OuiNon
.