Exemples avec les types numériques - 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.

Exemples avec les types numériques

Instruction CREATE TABLE

L’instruction CREATE TABLE suivante illustre la déclaration de différents types de données numériques :

create table film ( film_id integer, language_id smallint, original_language_id smallint, rental_duration smallint default 3, rental_rate numeric(4,2) default 4.99, length smallint, replacement_cost real default 25.00);

Tentative d’insérer un entier qui est hors de portée

L’exemple suivant tente d’insérer la valeur 33 000 dans une colonne SMALLINT.

insert into film(language_id) values(33000);

La plage valide pour SMALLINT étant -32768 à +32767, Amazon Redshift retourne une erreur.

An error occurred when executing the SQL command: insert into film(language_id) values(33000) ERROR: smallint out of range [SQL State=22003]

Insérer une valeur décimale dans une colonne de type entier

L’exemple suivant insère la valeur décimale a dans une colonne INT.

insert into film(language_id) values(1.5);

Cette valeur est insérée, mais arrondie à la valeur entière 2.

Insertion réussie d’une valeur décimale parce que son échelle est arrondie

L’exemple suivant insère une valeur décimale ayant une plus grande précision que la colonne.

insert into film(rental_rate) values(35.512);

Dans ce cas, la valeur 35.51 est insérée dans la colonne.

Tentative d’insertion d’une valeur décimale qui est hors de portée

Dans ce cas, la valeur 350.10 est hors de portée. Le nombre de chiffres pour les valeurs de colonnes DECIMAL est égal à la précision de la colonne moins son échelle (4 moins 2 pour la colonne RENTAL_RATE). Autrement dit, la plage autorisée pour une colonne DECIMAL(4,2) s’étend de -99.99 à 99.99.

insert into film(rental_rate) values (350.10); ERROR: numeric field overflow DETAIL: The absolute value is greater than or equal to 10^2 for field with precision 4, scale 2.

Insérer des valeurs de précision variable dans une colonne REAL

L’exemple suivant insère des valeurs de précision variable dans une colonne REAL.

insert into film(replacement_cost) values(1999999.99); insert into film(replacement_cost) values(1999.99); select replacement_cost from film; +------------------+ | replacement_cost | +------------------+ | 2000000 | | 1999.99 | +------------------+

La valeur 1999999.99 est convertie en 2000000 pour satisfaire aux exigences de précision pour la colonne REAL. La valeur 1999.99 est chargée en l’état.