Tipi numerici - AWS Clean Rooms

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 numerici

I tipi di dati numerici comprendono numeri interi, decimali e in virgola mobile.

Tipi Integer

Usa i tipi di dati SMALLINT, INTEGER e BIGINT per memorizzare numeri interi di intervalli diversi. Non puoi memorizzare valori al di fuori dell'intervallo consentito per ogni tipo.

Nome Storage Intervallo
SMALLINT 2 byte Da -32768 a +32767
INTEGER o INT 4 byte Da -2147483648 a +2147483647
BIGINT 8 byte Da -9223372036854775808 a 9223372036854775807

Tipo DECIMAL o NUMERIC

Usare il tipo di dati DECIMAL o NUMERIC per memorizzare i valori con una precisione definita dall'utente. Le parole chiave DECIMAL e NUMERIC sono interscambiabili. In questo documento, decimale è il termine preferito per questo tipo di dati. Il termine numerici è usato solitamente per riferirsi a tipi di dati interi, decimali e in virgola mobile.

Storage Intervallo
Variabile, fino a 128 bit per i tipi DECIMAL non compressi. Interi firmati da 128 bit con fino a 38 cifre di precisione.

Definisci una colonna DECIMAL in una tabella specificando precisione e scala:

decimal(precision, scale)
precisione

Il numero totale di cifre significative nell'intero valore: il numero di cifre su entrambi i lati del punto decimale. Ad esempio, il numero 48.2891 ha una precisione di 6 e una scala di 4. La precisione predefinita, se non specificata, è 18. La precisione massima è 38.

Se il numero di cifre a sinistra del punto decimale in un valore di input supera la precisione della colonna meno la relativa scala, il valore non può essere copiato nella colonna (o inserito o aggiornato). Questa regola si applica a qualsiasi valore che non rientra nell'intervallo della definizione della colonna. Ad esempio, gli intervalli di valori ammessi per una colonna numeric(5,2) è da -999.99 a 999.99.

scale

Il numero di cifre decimale nella parte frazionaria del valore, alla destra del punto decimale. Gli interi hanno una scala di zero. Nella specifica di una colonna, è necessario che il valore della scala sia inferiore o uguale al valore della precisione. La scala predefinita, se non specificata, è 0. La scala massima è 37.

Se la scala di un valore input caricato in una tabella è maggiore della scala della colonna, il valore viene arrotondato alla scala specificata. Ad esempio, la colonna PRICEPAID nella tabella SALES è una colonna DECIMAL(8,2). Se un valore DECIMAL(8,4) viene inserito nella colonna PRICEPAID, il valore viene arrotondato alla scala di 2.

insert into sales values (0, 8, 1, 1, 2000, 14, 5, 4323.8951, 11.00, null); select pricepaid, salesid from sales where salesid=0; pricepaid | salesid -----------+--------- 4323.90 | 0 (1 row)

Tuttavia, i risultati di espliciti cast di valori selezionati dalle tabelle non sono arrotondati.

Nota

Il valore positivo massimo che è possibile inserire in una colonna DECIMAL(19,0) è 9223372036854775807 (263 -1). Il valore negativo massimo è -9223372036854775807. Ad esempio, il tentativo di inserire il valore 9999999999999999999 (19 nove) causerà un errore dell'overflow. Indipendentemente dalla posizione del punto decimale, la stringa più grande che AWS Clean Rooms può rappresentare come numero DECIMAL è 9223372036854775807. Ad esempio, il valore più grande che è possibile caricare in una colonna DECIMAL(19,18) è 9.223372036854775807.

Queste regole sono dovute a quanto segue:

  • I valori DECIMAL con 19 o meno cifre significative di precisione vengono memorizzati internamente come numeri interi da 8 byte.

  • I valori DECIMAL con una precisione compresa tra 20 e 38 cifre significative vengono memorizzati come numeri interi da 16 byte.

Note sull'utilizzo di colonne NUMERIC o DECIMAL a 128 bit

Non assegnare in modo arbitrario la precisione massima alle colonne DECIMAL a meno che non sia certo che l'applicazione richieda tale precisione. I valori a 128 bit usano il doppio dello spazio su disco rispetto ai valori a 64 bit e possono quindi rallentare il tempo di esecuzione delle query.

Tipi in virgola mobile

Usa i tipi di dati REAL e DOUBLE PRECISION per memorizzare valori numerici con precisione variabile. Questi tipi sono inesatti, il che significa che alcuni valori vengono memorizzati come approssimazioni, così che la memorizzazione e la restituzione di un valore specifico possono risultare in lievi discrepanze. Se hai bisogno di calcoli e storage precisi (come per importi monetari), usa il tipo di dati DECIMAL.

REAL rappresenta il formato a virgola mobile a precisione singola, secondo lo standard IEEE 754 per l'aritmetica in virgola mobile. Ha una precisione di circa 6 cifre e un intervallo compreso tra 1E-37 e 1E+37. È inoltre possibile specificare questo tipo di dati come FLOAT4.

DOUBLE PRECISION rappresenta il formato a virgola mobile a precisione doppia, secondo lo standard IEEE 754 per l'aritmetica binaria a virgola mobile. Ha una precisione di circa 15 cifre e un intervallo compreso tra 1E-307 e 1E+308. È inoltre possibile specificare questo tipo di dati come FLOAT o FLOAT8.