Introduction
Wenn Sie numerische Werte mit einer großen Anzahl von Dezimalstellen speichern müssen, müssen Sie sicherstellen, dass Sie den richtigen Datentyp für diese Aufgabe verwenden. PostgreSQL bietet den Datentyp DOUBLE PRECISION
für diese Art von numerischen Daten – der Datentyp bietet 8 Bytes Speicherplatz und kann bis zu 15 Dezimalstellen speichern. In diesem Artikel werden wir den PostgreSQL-DOUBLE PRECISION-Datentyp besprechen und Ihnen zeigen, wie Sie diesen Datentyp in Abfragen und Einfügeoperationen verwenden können.
Voraussetzungen
Um den Beispielen in diesem Tutorial folgen zu können, müssen Sie PostgreSQL installiert haben und ausführen. Sie können den Befehl psql -V
in Ihrem Terminal verwenden, um zu bestätigen, dass PostgreSQL installiert ist und seine Versionsnummer anzuzeigen. Vergewissern Sie sich, dass Ihre PostgreSQL-Installation funktioniert, bevor Sie mit den DOUBLE PRECISION
Abfragebeispielen weiter unten in diesem Tutorial fortfahren.
Öffnen Sie die psql-Kommandozeilenkonsole
Zunächst öffnen wir die interaktive Shell für PostgreSQL. Wir verwenden den folgenden Befehl:
1
|
sudo -u postgres psql
|
Dieser Befehl gibt uns die Zugriffsrechte des Superusers postgres
.
Der PostgreSQL-Typ DOUBLE PRECISION
Der PostgreSQL-Typ DOUBLE PRECISION
ist ein numerischer Datentyp; er ist auch unter dem alternativen Namen float8
bekannt. Werte mit doppelter Genauigkeit werden in PostgreSQL wie Fließkommawerte behandelt. Das bedeutet, dass eine gewisse Rundung erfolgt, wenn Sie versuchen, einen Wert mit „zu vielen“ Dezimalstellen zu speichern; wenn Sie zum Beispiel versuchen, das Ergebnis von 2/3 zu speichern, würde eine gewisse Rundung erfolgen, wenn die 15. In den meisten Fällen hat diese Annäherung keine wirkliche Auswirkung, aber es kann Umstände geben, in denen absolute Präzision erforderlich ist und der Datentyp NUMERIC
die bessere Wahl ist.
DATENTYP | BESCHREIBUNG | Bereich |
---|---|---|
Doppelpräzision, Float, Float8 | Dezimal, numerische Fließkomma-Daten, Integer-Werte | 15 Dezimalstellen Genauigkeit |
Erstellen einer Datenbank und Tabelle in PostgreSQL
In diesem Abschnitt erstellen wir eine Tabelle a mit einem DOUBLE PRECISION
Datentyp. Zuvor müssen wir eine Datenbank in PostgreSQL erstellen. Dazu verwenden wir den folgenden Befehl:
1
|
CREATE DATABASE some_db;
|
Hinweis: Sie können den Namen der Datenbank nach Belieben ändern.
-
Verwenden Sie den Befehl
\l
, um eine Liste aller Datenbanken anzuzeigen, die in Ihrem PostgreSQL-Datenbankcluster vorhanden sind. -
Verwenden Sie den Befehl
\c
, um eine Verbindung zu einer bestimmten Datenbank herzustellen.
Nachdem Sie Ihre Datenbank erstellt haben, können Sie eine Tabelle darin erstellen.
Die Syntax für die Erstellung einer Tabelle ist im Folgenden dargestellt:
1
2 3 |
CREATE TABLE TABLE_NAME(
COL1 + DATA_TYPE + CONSTRAINT , COL2 + DATA_TYPE + CONSTRAINT ); |
Hier ist die SQL-Anweisung, mit der wir unsere Tabelle erstellen werden:
1
2 3 4 5 6 7 |
CREATE TABLE demo(
id SERIAL PRIMARY KEY, str_col VARCHAR(100), int_col INT NOT NULL, boolean_col BOOL, float_col DOUBLE PRECISION ); |
Um die Tabelleninformationen anzuzeigen, verwenden Sie einfach den Befehl \d demo;
. Die Ausgabe dieses Befehls sieht wie folgt aus:
1
2 3 4 5 6 7 8 9 10 |
Tabelle „public.demo“
Spalte | Typ | Sortierung | Nullable | Default ————-+————————+———–+———-+———————————- id | integer | | | not null | nextval(‚demo_id_seq‘::regclass) str_col | character varying(100) | | | int_col | integer | | not null | boolean_col | boolean | | | float_col | double precision | | | Indexe: „demo_pkey“ PRIMARY KEY, btree (id) |
Einige Werte in die Spalte DOUBLE PRECISION einfügen
Wir können eine INSERT
Anweisung verwenden, um Daten in unsere DOUBLE PRECISION
Spalte sowie in die anderen Spalten der Tabelle einzufügen:
1
2 3 4 |
INSERT INTO demo (str_col, int_col, boolean_col, float_col)
VALUES(‚ObjectRocket‘, 1234, TRUE, 09673143120), (‚Examples‘, 6688, FALSE, 09057046055), (‚Tutorials‘, 9678, TRUE, 09129158355); |
Um die Werte im float_column
zu sehen, verwenden Sie die einfache SELECT
-Anweisung wie unten gezeigt:
1
|
SELECT id, float_col FROM demo;
|
Die Ausgabe wird wie folgt aussehen:
1
2 3 4 5 |
id | float_col
—-+———— 1 | 9673143120 2 | 9057046055 3 | 9129158355 |
Fazit
Wenn Sie vorhaben, numerische Werte zu speichern, die eine bestimmte Genauigkeit oder Länge erfordern, kann der Datentyp DOUBLE PRECISION
die richtige Wahl für Ihre Bedürfnisse sein. In diesem Artikel haben wir eine Einführung in den PostgreSQL-DOUBLE PRECISION-Typ gegeben und einige Beispiele für das Einfügen und Abrufen von Daten dieses Typs besprochen. Mit diesen Beispielen als Leitfaden können Sie den DOUBLE PRECISION
-Datentyp in Ihrer eigenen PostgreSQL-Datenbank verwenden.