Introduktion
När du behöver lagra numeriska värden med ett stort antal decimaler måste du se till att du använder rätt datatyp för uppgiften. PostgreSQL tillhandahåller datatypen DOUBLE PRECISION
för den här typen av numeriska data – datatypen erbjuder 8 bytes lagringsutrymme och kan rymma upp till 15 decimalsiffror. I den här artikeln kommer vi att diskutera PostgreSQLs datatyp DOUBLE PRECISION och visa dig hur du använder den här datatypen i frågor och insättningsoperationer.
Förutsättningar
För att kunna följa med i exemplen i den här handledningen måste du ha PostgreSQL installerat och igång. Du kan använda kommandot psql -V
i din terminal för att bekräfta att PostgreSQL är installerat och visa dess versionsnummer. Kontrollera att din installation av Postgres fungerar innan du fortsätter med DOUBLE PRECISION
frågeexemplen senare i den här handledningen.
Öppna kommandoradskonsolen psql
Vi börjar med att öppna det interaktiva skalet för PostgreSQL. Vi använder kommandot som visas nedan:
1
|
sudo -u postgres psql
|
Detta kommando ger oss åtkomstprivilegier för postgres
superanvändaren.
PostgreSQLs DOUBLE PRECISION-typ
PostgreSQLs DOUBLE PRECISION
-typ är en numerisk datatyp; den är också känd under det alternativa namnet float8
. Värden med dubbel precision behandlas som värden med flytande punkter i PostgreSQL. Detta innebär att en viss avrundning kommer att ske om du försöker lagra ett värde med ”för många” decimalsiffror; om du till exempel försökte lagra resultatet av 2/3 skulle det ske en viss avrundning när den 15:e siffran nåddes. I de flesta fall finns det inga egentliga konsekvenser av denna approximation, men det kan finnas omständigheter där absolut precision krävs och datatypen NUMERIC
är det bättre valet.
DATA TYP | BESKRIVNING | RANG |
---|---|---|
dubbelt precisionsvärde, float, float8 | decimalt värde, numeriska data med flytande punkter, heltalsvärden | 15 decimalsiffror precision |
Skapa en databas och en tabell i PostgreSQL
I det här avsnittet ska vi skapa en tabell a med en DOUBLE PRECISION
-datatyp. Innan vi gör det måste vi skapa en databas i PostgreSQL. Vi använder kommandot som visas nedan:
1
|
CREATE DATABASE some_db;
|
NOTAT: Använd gärna ett valfritt databasnamn.
-
Använd kommandot
\l
för att visa en lista över alla databaser som finns i ditt PostgreSQL-databaskluster. -
Använd kommandot
\c
för att ansluta till en specifik databas.
När du har skapat din databas kan du skapa en tabell i den.
Syntaxen för att skapa en tabell visas nedan:
1
2 3 |
CREATE TABLE TABLE TABLE_NAME(
COL1 + DATA_TYPE + CONSTRAINT , COL2 + DATA_TYPE + CONSTRAINT ); |
Här är SQL-anvisningen som vi använder för att skapa vår tabell:
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 ); |
För att visa tabellinformationen är det bara att använda kommandot \d demo;
. Utdata från kommandot kommer att se ut så här:
1
2 3 4 5 6 7 8 9 10 |
Tabell ”public.demo”
Kolumn | Typ | Collation | Nullable | Default ————-+————————+———–+———-+———————————- id | heltal | | not null | nextval(’demo_id_seq’::regclass) str_col | tecken varierande(100) | | | | int_col | heltal | | inte noll | boolean_col | boolean | | | float_col | dubbel precision | | | Index: ”demo_pkey” PRIMARY KEY, btree (id) |
Insätt några värden i kolumnen DOUBLE PRECISION
Vi kan använda ett INSERT
-uttalande för att sätta in data i vår DOUBLE PRECISION
-kolumn samt i andra kolumner i tabellen:
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); |
För att se värdena i float_column
använder du det enkla SELECT
-kommando som visas nedan:
1
|
SELECT id, float_col FROM demo;
|
Utmatningen ser ut som följande:
1
2 3 4 5 |
id | float_col
—-+———— 1 | 9673143120 2 | 9057046055 3 | 9129158355 |
Slutsats
Om du planerar att lagra numeriska värden som kräver en viss precision eller längd, kan datatypen DOUBLE PRECISION
vara det rätta valet för dina behov. I den här artikeln gav vi en introduktion till PostgreSQL-typen DOUBLE PRECISION och gick igenom några exempel på hur man infogar och hämtar data av den här typen. Med dessa exempel som vägledning kommer du att vara förberedd på att använda DOUBLE PRECISION
-datatypen i din egen PostgreSQL-databas.