Tipi di carattere - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tipi di carattere

I tipi di dati carattere comprendono CHAR (carattere) e VARCHAR (carattere variabile).

Storage e intervalli

I tipi di dati CHAR e VARCHAR sono definiti in termini di byte, non caratteri. Una colonna CHAR può contenere solo caratteri a byte singolo, quindi una colonna CHAR(10) può contenere una stringa con una lunghezza massima di 10 byte. Una VARCHAR può contenere caratteri multibyte fino a un massimo di quattro byte per carattere. Ad esempio, una colonna VARCHAR(12) può contenere 12 caratteri a byte singolo, 6 caratteri a due byte, 4 caratteri a tre byte o 3 caratteri a quattro byte.

Nome Storage Intervallo (larghezza della colonna)
CHAR, CHARACTER o NCHAR Lunghezza della stringa, compresi spazi finali (se presenti) 4096 byte
VARCHAR, CHARACTER VARYING o NVARCHAR 4 byte + byte totali per carattere, dove ogni carattere può essere da 1 a 4 byte. 65.535 bytes (64K -1)
BPCHAR Conversione in CHAR(256) a lunghezza fissa. 256 byte
TEXT Conversione in VARCHAR(256). 260 byte
Nota

La sintassi CREATE TABLE supporta la parola chiave MAX per i tipi di dati carattere. Ad esempio:

create table test(col1 varchar(max));

L'impostazione MAX definisce la larghezza della colonna come 4.096 byte per CHAR o 65.535 byte per VARCHAR.

CHAR o CHARACTER

Usa una colonna CHAR o CHARACTER per memorizzare stringhe di lunghezza fissa. A queste stringhe vengono aggiunti spazi, quindi una colonna CHAR(10) occupa 10 byte di storage.

char(10)

Una colonna CHAR senza una specificazione di lunghezza risulta in una colonna CHAR(1).

VARCHAR o CHARACTER VARYING

Usa una colonna VARCHAR o CHARACTER VARYING per memorizzare stringhe di lunghezza variabile con un limite fisso. A queste stringhe non vengono aggiunti spazi vuoti, quindi una colonna VARCHAR(120) consiste di un massimo di 120 caratteri a byte singolo, 60 caratteri a due byte, 40 caratteri a tre byte o 30 caratteri a quattro byte.

varchar(120)

Se si utilizza il tipo di dati VARCHAR senza specificare la lunghezza in un'istruzione CREATE TABLE, la lunghezza predefinita è 256. Se utilizzata in un'espressione, la dimensione dell'output viene determinata utilizzando l'espressione di input (fino a 65535).

Tipi NCHAR e NVARCHAR

È possibile creare colonne con i tipi NCHAR e NVARCHAR (noti anche come tipi NATIONAL CHARACTER e NATIONAL CHARACTER VARYING). Questi tipi vengono convertiti in tipi CHAR e VARCHAR e vengono memorizzati nel numero di byte specificato.

Una colonna NCHAR senza una specificazione di lunghezza viene convertita in una colonna CHAR(1).

Una colonna NVARCHAR senza una specificazione di lunghezza viene convertita in una colonna VARCHAR(256).

Tipi TEXT e BPCHAR

È possibile creare una tabella Amazon Redshift con una colonna TEXT ma viene convertita in una colonna VARCHAR(256) che accetta valori di lunghezza variabile con un massimo di 256 caratteri.

È possibile creare una colonna Amazon Redshift con un tipo BPCHAR (caratteri con spazi aggiunti), che Amazon Redshift converte in una colonna CHAR(256) di lunghezza fissa.

Significato degli spazi finali

Entrambi i tipi di dati CHAR e VARCHAR memorizzano stringhe fino a n byte di lunghezza. Un tentativo di memorizzare una stringa più lunga in una colonna di questi tipi risulta in un errore, a meno che i caratteri extra non siano tutti spazi (vuoti); in questo caso la stringa viene troncata alla lunghezza massima. Se la stringa è più corta della lunghezza massima, ai valori CHAR vengono aggiunti spazi, ma i valori VARCHAR memorizzano la stringa senza spazi.

Gli spazi inziali nei valori CHAR sono sempre privi di significato dal punto di vista semantico. Vengono ignorati quando confronti due valori CHAR, non compresi nei calcoli LENGTH, e rimossi quando converti un valore CHAR in un altro tipo di stringa.

Gli spazi finali nei valori VARCHAR e CHAR vengono trattati come insignificanti dal punto di vista semantico quando i valori vengono confrontati.

I calcoli della lunghezza restituiscono la lunghezza delle stringhe di caratteri VARCHAR con spazi finali compresi nella lunghezza. Gli spazi finali non vengono contati nella lunghezza per le stringhe di caratteri a lunghezza fissa.