Bevezetés
Ha nagyszámú tizedesjegyet tartalmazó numerikus értékeket kell tárolnia, gondoskodnia kell arról, hogy a feladathoz a megfelelő adattípust használja. A PostgreSQL az ilyen típusú numerikus adatokhoz a DOUBLE PRECISION
adattípust biztosítja – az adattípus 8 bájtnyi tárhelyet kínál, és legfeljebb 15 tizedesjegy tárolására alkalmas. Ebben a cikkben a PostgreSQL DOUBLE PRECISION adattípust tárgyaljuk, és megmutatjuk, hogyan használhatjuk ezt az adattípust lekérdezésekben és beszúrási műveletekben.
Előfeltételek
Hogy követni tudjuk a bemutató példáit, a PostgreSQL-t telepíteni és futtatni kell. A terminálban a psql -V
paranccsal megerősítheti, hogy a PostgreSQL telepítve van, és megjelenítheti a verziószámát. Győződjön meg róla, hogy a Postgrees telepítése működik, mielőtt a DOUBLE PRECISION
lekérdezési példákkal folytatná a bemutató későbbi részében.
A psql parancssori konzol megnyitása
Kezdjük a PostgreSQL interaktív héjának megnyitásával. Az alábbi parancsot fogjuk használni:
1
|
sudo -u postgres psql
|
Ez a parancs a postgres
superuser hozzáférési jogosultságait biztosítja számunkra.
A PostgreSQL DOUBLE PRECISION típusa
A PostgreSQL DOUBLE PRECISION
típusa egy numerikus adattípus; alternatív nevén float8
is ismert. A kettős pontosságú értékeket a PostgreSQL lebegőpontos értékként kezeli. Ez azt jelenti, hogy némi kerekítésre kerül sor, ha “túl sok” tizedesjegyű értéket próbál tárolni; ha például 2/3-os eredményt próbálna tárolni, akkor a 15. számjegy elérésekor némi kerekítésre kerülne sor. A legtöbb esetben ennek a közelítésnek nincs igazi következménye, de lehetnek olyan körülmények, amikor abszolút pontosságra van szükség, és a NUMERIC
adattípus a jobb választás.
ADATTYP | DESCRIPTION | RANGE |
---|---|---|
dupla pontosságú, float, float8 | decimal, lebegőpontos numerikus adatok, egész számok | 15 tizedesjegy pontosság |
Adatbázis és tábla létrehozása a PostgreSQL-ben
Ebben a részben létrehozunk egy a táblát DOUBLE PRECISION
adattípussal. Mielőtt ezt megtennénk, létre kell hoznunk egy adatbázist a PostgreSQL-ben. Az alábbi parancsot fogjuk használni:
1
|
CREATE DATABASE some_db;
|
MEGJEGYZÉS: Használjuk nyugodtan az általunk választott adatbázis nevét.
-
A
\l
paranccsal megjelenítheti a PostgreSQL adatbázis-fürtben létező összes adatbázis listáját. -
A
\c
paranccsal csatlakozhat egy adott adatbázishoz.
Amikor létrehozta az adatbázisát, létrehozhat benne egy táblát.
A táblázat létrehozásának szintaxisa az alábbiakban látható:
1
2 3 |
CREATE TABLE TABLE_NAME(
COL1 + DATA_TYPE + CONSTRAINT , COL2 + DATA_TYPE + CONSTRAINT ); |
Itt van az SQL utasítás, amellyel létrehozzuk a táblázatunkat:
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 ); |
A tábla információinak megtekintéséhez elég a \d demo;
parancsot használni. A parancs kimenete így fog kinézni:
1
2 3 4 5 6 7 8 9 10 |
A “public.demo”
Column | Type | Collation | Nullable | Default ————-+————————+———–+———-+———————————- id | integer | | | not null | nextval(‘demo_id_seq’:| | | str_col | változó karakter(100) | | | | int_col | integer | | | not null | boolean_col | boolean | | | | float_col | double precision | | | | Indexek: “demo_pkey” PRIMARY KEY, btree (id) |
Beszúrunk néhány értéket a DOUBLE PRECISION oszlopba
Egy INSERT
utasítással tudunk adatokat beszúrni a DOUBLE PRECISION
oszlopunkba, valamint a táblázat többi oszlopába:
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); |
Az float_column
-ben lévő értékek megtekintéséhez használjuk az alább látható egyszerű SELECT
utasítást:
1
|
SELECT id, float_col FROM demo;
|
A kimenet a következőképpen fog kinézni:
1
2 3 4 5 |
id | float_col
—-+————. 1 | 9673143120 2 | 9057046055 3 | 9129158355 |
Következtetés
Ha olyan numerikus értékek tárolását tervezzük, amelyek bizonyos pontosságot vagy hosszúságot igényelnek, a DOUBLE PRECISION
adattípus lehet a megfelelő választás. Ebben a cikkben bemutattuk a PostgreSQL DOUBLE PRECISION típust, és áttekintettünk néhány példát az ilyen típusú adatok beszúrására és lekérdezésére. Ezeknek a példáknak a segítségével felkészülhet a DOUBLE PRECISION
adattípus használatára a saját PostgreSQL adatbázisában.