Beispiele mit numerischen Typen - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiele mit numerischen Typen

CREATE TABLE-Anweisung

Die folgende CREATE TABLE-Anweisung illustriert die Deklaration von verschiedenen numerischen Datentypen:

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);

Der Versuch, eine Ganzzahl einzufügen, die außerhalb des Bereichs liegt

Im folgenden Beispiel wird versucht, den Wert 33000 in eine SMALLINT-Spalte einzufügen.

insert into film(language_id) values(33000);

Der Bereich für SMALLINT liegt zwischen -32768 und +32767, d. h. Amazon Redshift gibt einen Fehler aus.

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

Einfügen eines Dezimalwerts in eine Ganzzahlspalte

Im folgenden Beispiel wird ein Dezimalwert in eine INT-Spalte eingefügt.

insert into film(language_id) values(1.5);

Dieser Wert wird eingefügt, aber auf den ganzzahligen Wert 2 aufgerundet.

Erfolgreiches Einfügen einer Dezimalzahl, da die Dezimalstellen gerundet werden

Im folgenden Beispiel wird ein Dezimalwert mit einer höheren Genauigkeit als die Spalte eingefügt.

insert into film(rental_rate) values(35.512);

In diesem Fall wird der Wert 35.51 in die Spalte eingefügt.

Der Versuch, einen Dezimalwert einzufügen, die außerhalb des Bereichs liegt

In diesem Fall liegt der Wert 350.10 außerhalb des Bereichs. Die Anzahl der Stellen für Werte in DECIMAL-Spalten entspricht der Genauigkeit der Spalte minus ihrer Dezimalstellen (4 minus 2 für die Spalte RENTAL_RATE). In anderen Worten: Der zulässige Wertebereich für eine DECIMAL(4,2)-Spalte erstreckt sich von -99.99 bis 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.

Einfügen von Werten mit variabler Genauigkeit in eine REAL-Spalte

Im folgenden Beispiel werden Werte mit variabler Genauigkeit in eine REAL-Spalte eingefügt.

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 | +------------------+

Der Wert 1999999.99 wird in 2000000 konvertiert, um die Genauigkeit der Spaltenanforderung REAL zu erfüllen. Der Wert 1999.99 wird unverändert geladen.