Inleiding
Wanneer u numerieke waarden met een groot aantal decimale cijfers moet opslaan, moet u er zeker van zijn dat u het juiste datatype voor deze taak gebruikt. PostgreSQL biedt het DOUBLE PRECISION
data type voor dit soort numerieke data- het data type biedt 8 bytes opslag en kan tot 15 decimale cijfers bevatten. In dit artikel bespreken we het PostgreSQL DOUBLE PRECISION datatype en laten we zien hoe u dit datatype kunt gebruiken in queries en insert operaties.
Voorvereisten
Om de voorbeelden in deze tutorial te kunnen volgen, moet PostgreSQL geïnstalleerd zijn en draaien. U kunt het psql -V
commando in uw terminal gebruiken om te bevestigen dat PostgreSQL geïnstalleerd is en om zijn versienummer te tonen. Zorg ervoor dat uw installatie van Postgres werkt voordat u verder gaat met de DOUBLE PRECISION
query voorbeelden verderop in deze tutorial.
Open de psql command-line console
Laten we beginnen met het openen van de interactieve shell voor PostgreSQL. We gebruiken het onderstaande commando:
1
|
sudo -u postgres psql
|
Dit commando geeft ons de toegangsprivileges van de postgres
superuser.
Het PostgreSQL DOUBLE PRECISION type
Het PostgreSQL DOUBLE PRECISION
type is een numeriek datatype; het is ook bekend onder de alternatieve naam float8
. Dubbele precisie waarden worden in PostgreSQL behandeld als floating point waarden. Dit betekent dat enige afronding zal optreden als u probeert een waarde op te slaan met “te veel” decimale cijfers; bijvoorbeeld, als u probeert om het resultaat van 2/3 op te slaan, zou er enige afronding optreden wanneer het 15e cijfer wordt bereikt. In de meeste gevallen is er geen echt gevolg van deze benadering, maar er kunnen omstandigheden zijn waarin absolute precisie vereist is en het gegevenstype NUMERIC
de betere keuze is.
GEGEVENSTYPE | OMSCHRIJVING | BEREIK |
---|---|---|
dubbele precisie, float, float8 | decimaal, floating-point numerieke gegevens, integer waarden | 15 decimale cijfers precisie |
Een database en tabel maken in PostgreSQL
In dit gedeelte maken we een tabel a met een DOUBLE PRECISION
datatype. Voordat we dat doen, moeten we een database aanmaken in PostgreSQL. We gebruiken hiervoor het onderstaande commando:
1
|
CREATE DATABASE some_db;
|
NOOT: Voel je vrij om de databasenaam van je keuze te gebruiken.
-
Gebruik het commando
\l
om een lijst weer te geven van alle databases die in uw PostgreSQL-databasecluster bestaan. -
Gebruik het commando
\c
om verbinding te maken met een specifieke database.
Als u uw database eenmaal hebt gemaakt, kunt u er een tabel in maken.
De syntaxis voor het maken van een tabel is hieronder weergegeven:
1
2 3 |
TABLE TABLE_NAME(
COL1 + DATA_TYPE + CONSTRAINT, COL2 + DATA_TYPE + CONSTRAINT ) AANMAKEN; |
Hier volgt de SQL-instructie die we zullen gebruiken om onze tabel te maken:
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 ); |
Om de tabelinformatie te bekijken, hoeft u alleen maar het commando \d demo;
te gebruiken. De uitvoer van dit commando ziet er als volgt uit:
1
2 3 4 5 6 7 8 9 10 |
Tabel “public.demo”
Column | Type | Collation | 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 | dubbele precisie | | | Indexen: “demo_pkey” PRIMARY KEY, btree (id) |
Voeg enkele waarden in de kolom DOUBLE PRECISION in
We kunnen een INSERT
-instructie gebruiken om gegevens in te voegen in onze DOUBLE PRECISION
-kolom, evenals in de andere kolommen van de tabel:
1
2 3 4 |
INSERT INTO demo (str_col, int_col, boolean_col, float_col)
VALUES(‘ObjectRocket’, 1234, TRUE, 09673143120), (‘Voorbeelden’, 6688, FALSE, 09057046055), (‘Tutorials’, 9678, TRUE, 09129158355); |
Om de waarden in de float_column
te zien, gebruikt u het eenvoudige SELECT
statement dat hieronder wordt weergegeven:
1
|
SELECT id, float_col FROM demo;
|
De uitvoer zal er als volgt uitzien:
1
2 3 4 5 |
id | float_col
—-+———— 1 | 9673143120 2 | 9057046055 3 | 9129158355 |
Conclusie
Als u van plan bent numerieke waarden op te slaan die een bepaalde precisie of lengte vereisen, is het gegevenstype DOUBLE PRECISION
wellicht de juiste keuze voor uw behoeften. In dit artikel hebben we een inleiding gegeven tot het PostgreSQL DOUBLE PRECISION type en hebben we enkele voorbeelden bekeken van hoe u gegevens van dit type kunt invoegen en opvragen. Met deze voorbeelden als leidraad, bent u voorbereid om het DOUBLE PRECISION
data type in uw eigen PostgreSQL database te gebruiken.