Tipi di dati di stringhe di caratteri
Le stringhe di caratteri sono i tipi di dati più comunemente utilizzati. Possono contenere qualsiasi sequenza di lettere, cifre, punteggiatura e altri caratteri validi.
Le stringhe di caratteri tipiche sono nomi, descrizioni e indirizzi postali. Sebbene sia possibile memorizzare qualsiasi valore in una stringa di caratteri, utilizzare le stringhe di caratteri solo se altri tipi di dati non sono adatti. Altri tipi di dati offrono una migliore convalida dei dati e una memorizzazione più compatta.
Tipo | Valore | Utilizzo disco |
---|---|---|
Lunghezza fissa, carattere(n) (alias char(n)) | Lunghezza fissa, vuoto imbottito alla lunghezza n. Il valore predefinito di n è 1. La dimensione massima delle stringhe di caratteri è 64.000. | Se n è uguale o inferiore a 16 (n byte). Se n è maggiore di 16, l'utilizzo del disco è uguale a quello di varchar(n). |
Lunghezza variabile, carattere variabile(n) (alias varchar(n)) | Lunghezza della variabile fino a una lunghezza massima di n. Nessun riempimento vuoto, memorizzato come inserito. La dimensione massima delle stringhe di caratteri è 64.000. | N+2 o meno byte, a seconda dei dati effettivi. |
Lunghezza fissa, Unicode (alias nchar(n)) | Lunghezza fissa, vuoto imbottito alla lunghezza n. La lunghezza massima è di 16.000 caratteri. | Per ulteriori informazioni, vedere I tipi di dati. |
Lunghezza variabile, Unicode (alias nvarchar(n)) | Lunghezza della variabile fino a una lunghezza massima di n. La lunghezza massima è di 16.000 caratteri. | Per ulteriori informazioni, vedere I tipi di dati. |
system.admin(admin)=> SELECT
MAX(LENGTH(TRIM(column_name))),AVG(LENGTH(TRIM(column_name)))FROM
table_name;
- Se i dati sono esclusivamente numerici, utilizzare un tipo di dati intero invece di un tipo di dati carattere. Ad esempio, 11212345 può essere definito come VARCHAR o bigint. Selezionare un bigint, soprattutto se si utilizza la colonna per la distribuzione o le giunzioni.
- Se, durante la conversione della data di origine, la lunghezza MAX è inferiore alla dimensione CHAR, utilizzare un CHAR anziché un VARCHAR. Se la lunghezza AVG +2 è inferiore alla dimensione CHAR, utilizzare un VARCHAR invece di un CHAR.
- Il confronto tra numeri e tipi di dati stringa può talvolta produrre risultati imprevedibili. Utilizzare la funzione di conversione to_number per convertire la stringa in un numero. Ad esempio:
where to_number(<varchar-column>, '9999') > <integercolumn>