Wprowadzenie
Jeśli potrzebujesz przechowywać wartości liczbowe z dużą liczbą cyfr po przecinku, musisz mieć pewność, że używasz odpowiedniego typu danych. PostgreSQL udostępnia typ danych DOUBLE PRECISION
dla tego typu danych liczbowych – typ danych oferuje 8 bajtów pamięci i może pomieścić do 15 cyfr po przecinku. W tym artykule omówimy typ danych PostgreSQL DOUBLE PRECISION oraz pokażemy, jak używać tego typu danych w zapytaniach i operacjach wstawiania.
Wymagania wstępne
Aby móc kontynuować pracę z przykładami zawartymi w tym tutorialu, musisz mieć zainstalowany i uruchomiony serwer PostgreSQL. Możesz użyć polecenia psql -V
w terminalu, aby potwierdzić, że PostgreSQL jest zainstalowany i wyświetlić numer jego wersji. Upewnij się, że Twoja instalacja Postgres działa, zanim przejdziesz do DOUBLE PRECISION
przykładów zapytań w dalszej części tego przewodnika.
Otwórz konsolę wiersza poleceń psql
Zacznijmy od otwarcia powłoki interaktywnej dla PostgreSQL. Skorzystamy z polecenia przedstawionego poniżej:
1
|
sudo -u postgres psql
|
To polecenie zapewnia nam uprawnienia dostępu postgres
superużytkownika.
Typ PostgreSQL DOUBLE PRECISION
Typ PostgreSQL DOUBLE PRECISION
jest numerycznym typem danych; znany jest również pod alternatywną nazwą float8
. Wartości podwójnej precyzji traktowane są w PostgreSQL jak wartości zmiennoprzecinkowe. Oznacza to, że wystąpią pewne zaokrąglenia, jeśli spróbujesz zapisać wartość ze „zbyt” dużą liczbą cyfr dziesiętnych; na przykład, jeśli spróbujesz zapisać wynik 2/3, wystąpią pewne zaokrąglenia po osiągnięciu 15-tej cyfry. W większości przypadków nie ma prawdziwych konsekwencji tego przybliżenia, ale mogą zaistnieć okoliczności, w których wymagana jest absolutna precyzja, a typ danych NUMERIC
jest lepszym wyborem.
TYP DANYCH | OPIS | ZAKRES |
---|---|---|
double precision, float, float8 | decimal, floating-point numeric data, wartości całkowite | 15 cyfr dziesiętnych precyzja |
Tworzenie bazy danych i tabeli w PostgreSQL
W tym rozdziale utworzymy tabelę a z typem danych DOUBLE PRECISION
. Zanim to zrobimy, musimy utworzyć bazę danych w PostgreSQL. Posłużymy się poleceniem przedstawionym poniżej:
1
|
CREATE DATABASE some_db;
|
UWAGA: Nie krępuj się użyć wybranej przez siebie nazwy bazy danych.
-
Użyj polecenia
\l
, aby wyświetlić listę wszystkich baz danych istniejących w klastrze baz danych PostgreSQL. -
Użyj polecenia
\c
, aby połączyć się z określoną bazą danych.
Po utworzeniu bazy danych możesz utworzyć w niej tabelę.
Składnia tworzenia tabeli jest przedstawiona poniżej:
1
2 3 |
CREATE TABLE TABLE_NAME(
COL1 + DATA_TYPE + CONSTRAINT , COL2 + DATA_TYPE + CONSTRAINT ); |
Oto instrukcja SQL, której użyjemy do utworzenia naszej tabeli:
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 ); |
Aby wyświetlić informacje o tabeli, wystarczy użyć polecenia \d demo;
. Wynik tego polecenia będzie wyglądał następująco:
1
2 3 4 5 6 7 8 9 10 |
Tabela „public.demo”
Kolumna | Typ | 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 | double precision | | | Indexes: „demo_pkey” PRIMARY KEY, btree (id) |
Wstaw kilka wartości wewnątrz kolumny DOUBLE PRECISION
Możemy użyć instrukcji INSERT
do wstawienia danych do naszej DOUBLE PRECISION
kolumny, jak również do innych kolumn tabeli:
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); |
Aby zobaczyć wartości w float_column
, należy użyć prostej instrukcji SELECT
pokazanej poniżej:
1
|
SELECT id, float_col FROM demo;
|
Wyjście będzie wyglądało jak poniżej:
1
2 3 4 5 |
id | float_col
—-+———— 1 | 9673143120 2 | 9057046055 3 | 9129158355 |
Wniosek
Jeśli planujesz przechowywać wartości numeryczne, które wymagają określonej precyzji lub długości, typ danych DOUBLE PRECISION
może być właściwym wyborem dla Twoich potrzeb. W tym artykule przedstawiliśmy wprowadzenie do typu PostgreSQL DOUBLE PRECISION oraz omówiliśmy kilka przykładów wstawiania i pobierania danych tego typu. Dzięki tym przykładom będziesz przygotowany do korzystania z typu danych DOUBLE PRECISION
w swojej własnej bazie danych PostgreSQL.