Sådan bruges PostgreSQL Double Precision Type

Indledning

Når du har brug for at gemme numeriske værdier med et stort antal decimaler, skal du sikre dig, at du bruger den korrekte datatype til opgaven. PostgreSQL tilbyder datatypen DOUBLE PRECISION til denne type numeriske data – datatypen tilbyder 8 bytes lagerplads og kan rumme op til 15 decimalcifre. I denne artikel vil vi diskutere PostgreSQL DOUBLE PRECISION-datatypen og vise dig, hvordan du kan bruge denne datatype i forespørgsler og indsætningsoperationer.

Forudsætninger

For at kunne følge med i eksemplerne i denne vejledning skal du have PostgreSQL installeret og kørende. Du kan bruge kommandoen psql -V i din terminal til at bekræfte, at PostgreSQL er installeret, og vise dens versionsnummer. Sørg for, at din installation af Postgres fungerer, før du går videre til DOUBLE PRECISION forespørgselseksemplerne senere i denne vejledning.

Åbn kommandolinjekonsollen psql

Lad os begynde med at åbne den interaktive shell for PostgreSQL. Vi bruger den nedenfor viste kommando:

1
sudo -u postgres psql

Denne kommando giver os adgangsrettighederne for postgres superbrugeren.

Den PostgreSQL DOUBLE PRECISION-type

Den PostgreSQL DOUBLE PRECISION-type er en numerisk datatype; den er også kendt under det alternative navn float8. Dobbeltpræcisionsværdier behandles som flydende punktværdier i PostgreSQL. Det betyder, at der vil ske en vis afrunding, hvis du forsøger at gemme en værdi med “for mange” decimale cifre; hvis du f.eks. forsøgte at gemme resultatet af 2/3, ville der ske en vis afrunding, når det 15. ciffer blev nået. I de fleste tilfælde er der ingen reelle konsekvenser af denne tilnærmelse, men der kan være omstændigheder, hvor der er behov for absolut præcision, og hvor datatypen NUMERIC er det bedre valg.

DATA TYPE BESKRIVELSE RANG
dobbelt præcision, float, float8 decimaltal, numeriske data med flydende komma, heltalsværdier 15 decimalcifre præcision

Opret en database og en tabel i PostgreSQL

I dette afsnit opretter vi en tabel a med en DOUBLE PRECISION datatype. Inden vi gør det, skal vi oprette en database i PostgreSQL. Vi bruger kommandoen vist nedenfor:

1
CREATE DATABASE some_db;

OPMÆRKSOMHED: Du er velkommen til at bruge et database-navn efter eget valg.

  • Brug kommandoen \l for at få vist en liste over alle databaser, der findes i din PostgreSQL-databaseklynge.

  • Brug kommandoen \c for at oprette forbindelse til en bestemt database.

Når du har oprettet din database, kan du oprette en tabel i den.

Syntaksen for oprettelse af en tabel er vist nedenfor:

1
2
3
CREATE TABLE TABLE TABLE_NAME(
COL1 + DATA_TYPE + CONSTRAINT ,
COL2 + DATA_TYPE + CONSTRAINT );

Her er den SQL-anvisning, vi skal bruge til at oprette vores tabel:

1
2
3
4
5
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
);

For at få vist tabeloplysningerne skal du blot bruge kommandoen \d demo;. Output af denne kommando vil se således ud:

1
2
3
4
5
6
7
8
9
10
Tabel “public.demo”
Kolonne | Type | Collation | Collation | Nullable | Default
————-+————————+———–+———-+———————————-
id | integer | | not null | nextval(‘demo_id_seq’::regclass)
str_col | tegn varierende(100) | | | | |
int_col | heltal | | ikke nul |
boolean_col | boolean | | | |
float_col | dobbelt præcision | | |
Indexes:
“demo_pkey” PRIMARY KEY, btree (id)

Indsæt nogle værdier i kolonnen DOUBEL PRECISION

Vi kan bruge en INSERT-anvisning til at indsætte data i vores DOUBLE PRECISION-kolonne samt i de andre kolonner i tabellen:

1
2
3
4
INSERT INTO demo (str_col, int_col, boolean_col, float_col)
VALUES(‘ObjectRocket’, 1234, TRUE, 09673143120),
(‘Eksempler’, 6688, FALSE, 09057046055),
(‘Tutorials’, 9678, TRUE, 09129158355);

For at se værdierne i float_column skal du bruge den enkle SELECT-anvisning, der er vist nedenfor:

1
SELECT id, float_col FROM demo;

Opdatet vil se ud som følgende:

1
2
3
4
5
id | float_col
—-+————
1 | 9673143120
2 | 9057046055
3 | 9129158355

Konklusion

Hvis du planlægger at gemme numeriske værdier, der kræver en vis præcision eller længde, kan datatypen DOUBLE PRECISION være det rette valg til dine behov. I denne artikel gav vi en introduktion til PostgreSQL DOUBLE PRECISION-typen og gennemgik nogle eksempler på, hvordan man indsætter og henter data af denne type. Med disse eksempler som vejledning vil du være forberedt på at bruge DOUBLE PRECISION-datatypen i din egen PostgreSQL-database.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.