Types caractères - Amazon Redshift

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.

Types caractères

Les types de données caractères incluent CHAR (caractère) et VARCHAR (caractère variable).

Stockage et plages

Les types de données CHAR et VARCHAR sont définis en termes d’octets, pas de caractères. Comme une colonne CHAR ne peut contenir que des caractères d’un octet, une colonne CHAR(10) peut contenir une chaîne d’une longueur maximale de 10 octets. Une donnée VARCHAR peut contenir des caractères multioctets, jusqu’à un maximum de quatre octets par caractère. Par exemple, une colonne VARCHAR(12) peut contenir 12 caractères codés sur un octet, 6 caractères codés sur deux octets, 4 caractères codés sur trois octets ou 3 caractères codés sur quatre octets.

Nom Stockage Plage (largeur de colonne)
CHAR, CHARACTER ou NCHAR Longueur de la chaîne, blancs de fin inclus (le cas échéant) 4096 bytes
VARCHAR, CHARACTER VARYING ou NVARCHAR 4 octets + le nombre total d’octets des caractères, où chaque caractère peut être codé sur 1 à 4 octets. 65535 octets (64 K -1)
BPCHAR Converti en longueur fixe CHAR(256). 256 bytes
TEXT Converti en VARCHAR(256). 260 bytes
Note

La syntaxe CREATE TABLE prend en charge le mot clé MAX pour les types de données character. Par exemple :

create table test(col1 varchar(max));

Le paramètre MAX définit la largeur de la colonne en tant que 4096 octets pour CHAR ou 65535 octets pour VARCHAR.

CHAR ou CHARACTER

Utilisez une colonne CHAR ou CHARACTER pour stocker les chaînes de longueur fixe. Ces chaînes étant remplies de blancs, une colonne CHAR(10) occupe toujours 10 octets de stockage.

char(10)

Une colonne CHAR sans spécification de longueur se traduit par une colonne CHAR(1).

VARCHAR ou CHARACTER VARYING

Utilisez une colonne VARCHAR ou CHARACTER VARYING pour stocker des chaînes de longueur variable avec une limite fixe. Comme ces chaînes ne sont pas remplies avec des blancs, une colonne VARCHAR(120) se compose d’un maximum de 120 caractères codés sur un octet, de 60 caractères codés sur deux octets, de 40 caractères codés sur trois octets ou de 30 caractères codés sur quatre octets.

varchar(120)

Si vous utilisez le type de données VARCHAR sans spécification de la longueur dans une instruction CREATE TABLE, la longueur par défaut est 256. Utilisée dans une expression, la taille de la sortie est déterminée à l’aide de l’expression d’entrée (jusqu’à 65535).

Types NCHAR et NVARCHAR

Vous pouvez créer des colonnes avec les types NCHAR et NVARCHAR (aussi appelés types NATIONAL CHARACTER et NATIONAL CHARACTER VARYING). Ces types sont convertis en types CHAR et VARCHAR, respectivement, et sont stockés dans le nombre d’octets spécifié.

Une colonne NCHAR sans spécification de longueur est convertie en colonne CHAR(1).

Une colonne NVARCHAR sans spécification de longueur est convertie en colonne VARCHAR(256).

Types TEXT et BPCHAR

Vous pouvez créer une table Amazon Redshift avec une colonne TEXT, mais celle-ci est convertie en une colonne VARCHAR(256) qui accepte des valeurs de longueur variable avec un maximum de 256 caractères.

Vous pouvez créer une colonne Amazon Redshift avec un type BPCHAR (blank-padded character), qu’Amazon Redshift convertit en une colonne CHAR(256) de longueur fixe.

Signification des blancs de fin

Les types de données CHAR et VARCHAR stockent les chaînes de longueur maximale de n octets. Une tentative de stocker une chaîne plus longue en une colonne de l’un de ces types entraîne une erreur, sauf si les caractères supplémentaires sont tous des espaces (des blancs), auquel cas la chaîne est tronquée à la longueur maximale. Si la chaîne est plus courte que la longueur maximale, les valeurs CHAR sont remplies de blancs, mais les valeurs VARCHAR stockent la chaîne sans blancs.

Les blancs de fin des valeurs CHAR sont toujours insignifiants sur le plan sémantique. Ils sont ignorés lorsque vous comparez deux valeurs CHAR, ne sont pas inclus dans les calculs LENGTH et sont supprimés lorsque vous convertissez une valeur CHAR en un autre type de chaîne.

Les espaces de fin des valeurs VARCHAR et CHAR sont traités comme sans importance du point de vue sémantique lorsque les valeurs sont comparées.

Les longueurs de calcul retournent la longueur des chaînes de caractères VARCHAR avec les espaces de fin inclus dans la longueur. Les blancs de fin ne comptent pas dans la longueur des chaînes de caractères de longueur fixe.