Dátové typy v SQLite sa líšia v porovnaní s inými systémami správy databáz. V SQLite môžete deklarovať dátové typy normálne, stále však môžete ukladať ľubovoľné hodnoty v ľubovoľných údajových typoch.
V tomto návode sa naučíte
- Triedy skladovania
- Typ afinity
- Príklady ukladania dátových typov v SQLite
SQLite sa píše menej. Neexistujú žiadne typy údajov, do ľubovoľného stĺpca môžete uložiť akýkoľvek typ údajov, ktorý sa vám páči. Toto sa nazýva dynamické typy.
Ak ste v statických typoch, podobne ako v iných systémoch na správu databáz, deklarovali stĺpec s údajovým typom celé číslo, môžete vložiť iba hodnoty údajového typu celé číslo. V dynamických typoch, ako je napríklad SQLite, je však typ stĺpca určený vloženou hodnotou. Potom SQLite uloží túto hodnotu v závislosti od jej typu.
Triedy úložiska SQLite
V SQLite existujú rôzne spôsoby ukladania v závislosti od typu hodnoty, tieto rôzne spôsoby ukladania sa v SQLite nazývajú triedy ukladania.
Nasledujú triedy úložných priestorov dostupné v SQLite:
- NULL - táto trieda úložiska sa používa na ukladanie ľubovoľnej hodnoty NULL.
- INTEGER - akákoľvek číselná hodnota je uložená ako celočíselná hodnota so znamienkom (Môže obsahovať kladné aj záporné celočíselné hodnoty). Hodnoty INTEGER v SQLite sú uložené v 1, 2, 3, 4, 6 alebo 8 bajtoch úložiska v závislosti od hodnoty čísla.
- REÁLNE - táto trieda úložiska sa používa na ukladanie hodnôt s pohyblivou rádovou čiarkou a sú uložené v úložisku s veľkosťou 8 bajtov.
- TEXT - ukladá textové reťazce. Podporuje tiež rôzne kódovanie, napríklad UTF-8, UTF-16 BE alebo UTF-26LE.
- BLOB - slúži na ukladanie veľkých súborov, ako sú obrázky alebo textové súbory. Hodnota je uložená ako bajtové pole rovnako ako vstupná hodnota.
Typ príbuznosti SQLite
Typová príbuznosť je odporúčaný typ údajov uložených v stĺpci. Stále však môžete ukladať ľubovoľné typy údajov, ktoré chcete, tieto typy sa odporúčajú, nie sú potrebné.
Tieto typy boli zavedené do programu SQLite s cieľom maximalizovať kompatibilitu medzi programom SQLite a iným systémom na správu databáz.
Ktorýkoľvek stĺpec deklarovaný v databáze SQLite má priradenú afinitu typu v závislosti od deklarovaného dátového typu. Tu je prírastok príbuzných typov v SQLite:
- TEXT.
- NUMERICKÉ.
- INTEGER.
- REÁLNY.
- BLOB.
Takto SQLite určuje afinitu stĺpca z jeho deklarovaného dátového typu:
- Afinita INTEGER sa priradí, ak deklarovaný typ obsahuje reťazec „ INT “.
- Afinita TEXT je priradená, ak stĺpec obsahuje na svojom dátovom type jeden z nasledujúcich reťazcov " TEXT ", " CHAR alebo" CLOB ". Napríklad typu VARCHAR bude priradená afinita TEXT.
- Afinita BLOB sa priradí, ak stĺpec nemá zadaný žiadny typ alebo ak je dátovým typom BLOB.
- REÁLNA afinita sa priradí, ak typ obsahuje jeden z nasledujúcich reťazcov „ DOUB “, „ REAL alebo“ FLOAT “.
- Pre akýkoľvek iný dátový typ je priradená NUMERICKÁ afinita.
Na tej istej stránke je tiež tabuľka zobrazujúca niektoré príklady mapovania medzi dátovými typmi SQLite a ich príbuznosťami určenými týmito pravidlami:
Príklady ukladania dátových typov v SQLite:
Ukladanie čísla s celým číslom SQLite:
Akýkoľvek stĺpec údajového typu obsahuje slovo „INT“, bude mu priradená afinita typu INTEGER. Bude uložený v úložnej triede INTEGER.
Všetky nasledujúce dátové typy sú priradené ako afinita k typu INTEGER:
- INT, INTEGER, VEĽKÝ.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
Afinita typu INTEGER v SQLite môže obsahovať akékoľvek pridelené celé číslo (kladné alebo záporné) od 1 bajtu do maximálne 8 bajtov.
Ukladanie čísel pomocou SQLite REAL:
SKUTOČNÉ čísla sú číslo s presnosťou na dvojnásobnú pohyblivú desatinnú čiarku. SQLite ukladal reálne čísla ako pole o 8 bajtoch. Tu je zoznam dátových typov v SQLite, ktoré môžete použiť na ukladanie SKUTOČNÝCH čísel:
- REÁLNY.
- DVOJNÁSOBNÝ.
- DVOJNÁSOBNÁ PRESNOSŤ.
- PLAVÁK.
Ukladanie veľkých údajov pomocou SQLite BLOB:
Existuje iba jeden spôsob, ako ukladať veľké súbory do databázy SQLite, a to pomocou dátového typu BLOB. Tento dátový typ sa používa na ukladanie veľkých súborov, ako sú obrázky, súbory (z ľubovoľného typu) atď. Súbor sa prevedie na bajtové pole a potom sa uloží v rovnakej veľkosti ako vstupný súbor.
Ukladanie booleov SQLite:
SQLite nemá samostatnú triedu úložného priestoru BOOLEAN. Avšak hodnoty BOOLEAN sa ukladajú ako INTEGERS s hodnotami 0 (ako nepravda) alebo 1 (ako pravda).
Ukladanie dátumov a časov SQLite:
Dátum alebo časy v SQLite môžete deklarovať pomocou jedného z nasledujúcich typov údajov:
- DÁTUM
- DÁTUM ČAS
- ČASOVÁ ZNAČKA
- TIME
Všimnite si, že v SQLite neexistuje samostatná trieda úložiska DATE alebo DATETIME. Namiesto toho sú všetky hodnoty deklarované jedným z predchádzajúcich typov údajov uložené v triede úložiska v závislosti od formátu dátumu vloženej hodnoty nasledovne:
- TEXT - ak ste vložili hodnotu dátumu vo formáte reťazca ISO8601 („RRRR-MM-DD HH: MM: SS.SSS“).
- SKUTOČNÉ - ak ste vložili hodnotu dátumu do čísel juliánskych dní, počet dní od poludnia v Greenwichi 24. novembra 4714 pred Kr. Potom by sa hodnota dátumu uložila ako SKUTOČNÁ.
- INTEGER ako Unix Time, počet sekúnd od 1970-01-01 00:00:00 UTC.
Zhrnutie:
SQLite podporuje širokú škálu dátových typov. Ale zároveň je veľmi flexibilný, pokiaľ ide o dátové typy. Do ľubovoľného dátového typu môžete vložiť akýkoľvek typ hodnoty. Na rozdiel od iných systémov na správu databáz SQLite tiež predstavil niektoré nové koncepty v dátových typoch, ako sú spriaznenosť typov a triedy úložiska.