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 de caractère incluent CHAR (caractère) et VARCHAR (caractère variable).

Stockage et plages

CHARet VARCHAR les types de données sont définis en termes d'octets et non de caractères. Une CHAR colonne ne peut contenir que des caractères à un octet. Une colonne CHAR (10) peut donc contenir une chaîne d'une longueur maximale de 10 octets. A 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 à un octet, 6 caractères à deux octets, 4 caractères à trois octets ou 3 caractères à 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
VARCHARCHARACTERVARYING, 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 CREATE TABLE syntaxe prend en charge le MAX mot-clé pour les types de données de type caractère. Par exemple :

create table test(col1 varchar(max));

Le MAX paramètre définit la largeur de la colonne comme 4 096 octets pour CHAR ou 65 535 octets pour. VARCHAR

CHARou CHARACTER

Utilisez une CHARACTER colonne CHAR ou pour stocker des chaînes de longueur fixe. Ces chaînes sont remplies de blancs, de sorte qu'une colonne CHAR (10) occupe toujours 10 octets de stockage.

char(10)

Une CHAR colonne sans spécification de longueur donne lieu à une CHAR (1) colonne.

VARCHARou CHARACTER VARYING

Utilisez une CHARACTER VARYING colonne VARCHAR ou pour stocker des chaînes de longueur variable avec une limite fixe. Ces chaînes ne sont pas remplies de blancs. Une colonne VARCHAR (120) comprend donc un maximum de 120 caractères à un octet, 60 caractères à deux octets, 40 caractères à trois octets ou 30 caractères à quatre octets.

varchar(120)

Si vous utilisez le type de VARCHAR données sans spécificateur de longueur dans une CREATE TABLE instruction, 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).

NCHARet NVARCHAR types

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

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

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

TEXTet BPCHAR types

Vous pouvez créer une table Amazon Redshift avec une TEXT colonne, mais elle 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 (caractère rempli en blanc), qu'Amazon Redshift convertit en colonne de longueur fixe (256). CHAR

Signification des blancs de fin

Les deux types CHAR de VARCHAR données stockent des chaînes d'une 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, CHAR les valeurs sont complétées par des espaces, mais VARCHAR les valeurs stockent la chaîne sans espaces.

Les espaces vides situés à la fin des CHAR valeurs sont toujours sémantiquement insignifiants. Ils ne sont pas pris en compte lorsque vous comparez deux CHAR valeurs, ne sont pas inclus dans LENGTH les calculs et sont supprimés lorsque vous convertissez une CHAR valeur en un autre type de chaîne.

Les espaces de fin VARCHAR et les CHAR valeurs sont considérés comme sémantiquement non significatifs lorsque les valeurs sont comparées.

Les calculs de longueur renvoient la longueur des chaînes de VARCHAR caractères avec des 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.