Ú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.