Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemples avec les types caractères
CREATETABLEdéclaration
L'CREATETABLEinstruction suivante illustre l'utilisation de VARCHAR et les types de CHAR données :
create table address( address_id integer, address1 varchar(100), address2 varchar(50), district varchar(20), city_name char(20), state char(2), postal_code char(5) );
Les exemples suivants s’appuient sur cette table.
Blancs de fin dans les chaînes de caractères de longueur variable
Comme il ADDRESS1 s'agit d'une VARCHAR colonne, les blancs situés à la fin de la deuxième adresse insérée sont sémantiquement insignifiants. En d’autres termes, les deux adresses insérées correspondent.
insert into address(address1) values('9516 Magnolia Boulevard'); insert into address(address1) values('9516 Magnolia Boulevard ');
select count(*) from address where address1='9516 Magnolia Boulevard'; count ------- 2 (1 row)
Si la ADDRESS1 colonne était une CHAR colonne et que les mêmes valeurs étaient insérées, la requête COUNT (*) reconnaîtrait les chaînes de caractères comme étant identiques et retournerait2
.
Résultats de la LENGTH fonction
La LENGTH fonction reconnaît les espaces vides situés à la fin des colonnes : VARCHAR
select length(address1) from address; length -------- 23 25 (2 rows)
Une valeur de Augusta
dans la NAME colonne CITY _, qui est une CHAR colonne, renvoie toujours une longueur de 7 caractères, quels que soient les blancs de fin de la chaîne d'entrée.
Valeurs qui dépassent la longueur de la colonne
Les chaînes de caractères ne sont pas tronquées pour s’adapter à la largeur déclarée de la colonne :
insert into address(city_name) values('City of South San Francisco'); ERROR: value too long for type character(20)
Une solution pour contourner ce problème consiste à convertir la valeur en la taille de la colonne :
insert into address(city_name) values('City of South San Francisco'::char(20));
Dans ce cas, les 20 premiers caractères de la chaîne (City of South
San Fr
) sont chargés dans la colonne.