Jak používat typ PostgreSQL s dvojnásobnou přesností

Úvod

Pokud potřebujete ukládat číselné hodnoty s velkým počtem desetinných míst, musíte se ujistit, že pro tuto úlohu používáte správný datový typ. PostgreSQL poskytuje pro tento druh číselných dat datový typ DOUBLE PRECISION – tento datový typ nabízí 8 bajtů paměti a může obsahovat až 15 desetinných čísel. V tomto článku probereme datový typ PostgreSQL DOUBLE PRECISION a ukážeme si, jak tento datový typ používat v dotazech a při operacích vkládání.

Předpoklady

Abyste mohli postupovat podle příkladů v tomto kurzu, musíte mít nainstalovaný a spuštěný systém PostgreSQL. Pomocí příkazu psql -V v terminálu můžete potvrdit, že je PostgreSQL nainstalován, a zobrazit číslo jeho verze. Než přejdete k DOUBLE PRECISION příkladům dotazů v další části tohoto tutoriálu, ujistěte se, že instalace Postgresu funguje.

Otevřete konzolu příkazového řádku psql

Začněme otevřením interaktivního prostředí pro PostgreSQL. Použijeme níže uvedený příkaz:

1
sudo -u postgres psql

Tento příkaz nám poskytne přístupová práva superuživatele postgres.

Typ PostgreSQL DOUBLE PRECISION

Typ PostgreSQL DOUBLE PRECISION je číselný datový typ; je znám také pod alternativním názvem float8. Hodnoty s dvojnásobnou přesností jsou v PostgreSQL považovány za hodnoty s pohyblivou řádovou čárkou. To znamená, že pokud se pokusíte uložit hodnotu s „příliš mnoha“ desetinnými číslicemi, dojde k určitému zaokrouhlení; například pokud byste se pokusili uložit výsledek 2/3, došlo by při dosažení patnácté číslice k určitému zaokrouhlení. Ve většině případů nemá tato aproximace žádný skutečný důsledek, ale mohou nastat okolnosti, kdy je vyžadována absolutní přesnost a datový typ NUMERIC je lepší volbou.

DATOVÝ TYP POPIS Rozsah
dvojnásobná přesnost, float, float8 decimální, numerická data s plovoucí desetinnou čárkou, celočíselné hodnoty přesnost 15 desetinných míst

Vytvoření databáze a tabulky v PostgreSQL

V této části vytvoříme tabulku a s datovým typem DOUBLE PRECISION. Než tak učiníme, budeme muset vytvořit databázi v PostgreSQL. Použijeme níže uvedený příkaz:

1
CREATE DATABASE some_db;

POZNÁMKA: Klidně použijte název databáze podle svého výběru.

  • Příkazem \l zobrazíte seznam všech databází, které existují ve vašem databázovém clusteru PostgreSQL.

  • Příkazem \c se připojíte ke konkrétní databázi.

Po vytvoření databáze v ní můžete vytvořit tabulku.

Syntaxe pro vytvoření tabulky je uvedena níže:

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

Tady je příkaz SQL, který použijeme k vytvoření naší tabulky:

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
);

Pro zobrazení informací o tabulce stačí použít příkaz \d demo;. Výstup tohoto příkazu bude vypadat takto:

1
2
3
4
5
6
7
8
9
10
Tabulka „public.demo“
Sloupec | Typ | Collation | Nullable | Default
————-+————————+———–+———-+———————————-
id | integer | | not null | nextval(‚demo_id_seq‘:
str_col | character varying(100) | | |
int_col | integer | not null |
boolean_col | boolean | | | |
float_col | double precision | | |
Indexes:
„demo_pkey“ PRIMARY KEY, btree (id)

Vložíme některé hodnoty do sloupce DOUBLE PRECISION

Můžeme použít příkaz INSERT pro vložení dat do našeho sloupce DOUBLE PRECISION i do ostatních sloupců tabulky:

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);

Pro zobrazení hodnot v float_column použijte jednoduchý příkaz SELECT uvedený níže:

1
SELECT id, float_col FROM demo;

Výstup bude vypadat následovně:

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

Závěr

Pokud plánujete ukládat číselné hodnoty, které vyžadují určitou přesnost nebo délku, může být datový typ DOUBLE PRECISION tou správnou volbou pro vaše potřeby. V tomto článku jsme se seznámili s typem PostgreSQL DOUBLE PRECISION a prošli jsme několik příkladů vkládání a načítání dat tohoto typu. Díky těmto příkladům, které vám poslouží jako vodítko, budete připraveni používat datový typ DOUBLE PRECISION ve své vlastní databázi PostgreSQL.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.