Az SQLite adattípusai eltérnek más adatbázis-kezelő rendszerektől. Az SQLite alkalmazásban az adattípusokat normálisan deklarálhatja, de így is bármilyen értéket eltárolhat bármely adattípusban.
Ebben az oktatóanyagban megtanulja-
- Tárolási osztályok
- Affinitás típusa
- Példák adattípusok SQLite tárolására
Az SQLite gépelése kevesebb. Nincsenek adattípusok, tetszőleges típusú adatokat bármely oszlopban tárolhat. Ezt dinamikus típusoknak nevezzük.
Statikus típusokban, hasonlóan más adatbázis-kezelő rendszerekhez, ha egy oszlopot adattípusú egész számmal deklarált, akkor csak az egész típusú adattípusokat adhatja meg. Azonban az SQLite-hez hasonló dinamikus típusokban az oszlop típusát a beillesztett érték határozza meg. Ezután az SQLite tárolja ezt az értéket a típusától függően.
SQLite Storage osztályok
Az SQLite-ben az érték típusától függően különböző tárolási módszerek vannak, ezeket a különböző tárolási módszereket tárolási osztályoknak nevezzük az SQLite-ben.
A következő tárolási osztályok állnak rendelkezésre az SQLite-ben:
- NULL - ez a tárolási osztály bármely NULL érték tárolására szolgál.
- INTEGER - bármely numerikus érték aláírt egész számként kerül tárolásra (tartalmazhat pozitív és negatív egész számokat is). Az SQLITE INTEGER értékei a szám értékétől függően 1, 2, 3, 4, 6 vagy 8 bájt tárhelyben vannak tárolva.
- REAL - ez a tárolási osztály a lebegőpontos értékek tárolására szolgál, és 8 bájtos tárolóban tárolódnak.
- TEXT - szöveges karakterláncokat tárol. Támogatja a különféle kódolásokat is, mint az UTF-8, UTF-16 BE vagy UTF-26LE.
- BLOB - nagy fájlok, például képek vagy szöveges fájlok tárolására szolgál. Az érték bájt tömbként tárolódik, ugyanaz, mint a bemeneti érték.
SQLite Affinity Type
A típus affinitás az oszlopban tárolt adatok ajánlott típusa. Bármilyen típusú adatot azonban továbbra is tárolhat, tetszése szerint, ezek a típusok nem szükségesek.
Ezeket a típusokat az SQLite-ben vezették be, hogy maximalizálják az SQLite és más adatbázis-kezelő rendszerek közötti kompatibilitást.
Az SQLite adatbázisban deklarált oszlopok típusa affinitást kapnak a deklarált adattípustól függően. Itt a típusú affinitások növekedése az SQLite-ben:
- SZÖVEG.
- NUMERIC.
- EGÉSZ SZÁM.
- IGAZI.
- FOLT.
Így határozza meg az SQLite az oszlop affinitását a deklarált adattípus alapján:
- Az INTEGER affinitás akkor kerül hozzárendelésre, ha a deklarált típus tartalmazza az " INT " karakterláncot .
- A TEXT affinitás akkor van hozzárendelve, ha az oszlop az adattípusán a következő szövegek egyikét tartalmazza: " TEXT ", " CHAR vagy" CLOB ". Például a VARCHAR típushoz a TEXT affinitás tartozik.
- A BLOB affinitás akkor kerül hozzárendelésre, ha az oszlopnak nincs megadva típusa, vagy ha az adattípus BLOB.
- A REAL affinitás akkor kerül hozzárendelésre, ha a típus a következő " DOUB ", " REAL " vagy " FLOAT " karakterláncok egyikét tartalmazza .
- NUMERIC affinitás van rendelve bármely más adattípushoz.
Ugyanezen az oldalon található egy táblázat is, amely néhány példát mutat be az SQLite adattípusok és ezek szabályai által meghatározott affinitásainak leképezésére:
Példák adattípusok tárolására az SQLite-ben:
Szám tárolása SQLite egész számmal:
Bármely adattípus oszlop tartalmazza az "INT" szót, és INTEGER típusú affinitást kap. INTEGER tárolási osztályban kerül tárolásra.
Az összes következő adattípus INTEGER típusú affinitásként van hozzárendelve:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
Az INTEGER típusú affinitás az SQLite-ben bármilyen hozzárendelt egész számot (pozitív vagy negatív) megtarthat 1 bájt és maximum 8 bájt között.
Számok tárolása az SQLite REAL segítségével:
A REAL számok kettős lebegőpontos pontosságú számok. Az SQLite valós számokat tárolt 8 bájtos tömbként. Az SQLite adattípusainak listája, amelyek segítségével REAL számokat tárolhat:
- IGAZI.
- KETTŐS.
- KETTŐS PONTOSSÁG.
- ÚSZÓ.
Nagy adatok tárolása az SQLite BLOB használatával:
Csak egy módon lehet nagyméretű fájlokat tárolni egy SQLite adatbázisban, és a BLOB adattípust használja. Ezt az adattípust olyan nagy fájlok tárolására használják, mint képek, fájlok (bármilyen típusú fájlokból) stb.
SQLite logikai tárolása:
Az SQLite-nek nincs külön BOOLEAN tárolási osztálya. A BOOLEAN-értékeket azonban INTEGER-ként tároljuk 0 (hamisként) vagy 1 (igazként) értékekkel.
SQLite dátumok és idők tárolása:
A dátumot vagy a dátumot az SQLite-ben a következő adattípusok egyikével deklarálhatja:
- DÁTUM
- DÁTUM IDŐ
- IDŐBÉLYEG
- IDŐ
Vegye figyelembe, hogy az SQLite-ben nincs külön DATE vagy DATETIME tárolási osztály. Ehelyett az előző adattípusok valamelyikével deklarált értékeket egy tárolási osztály tárolja a beillesztett érték dátumformátumától függően az alábbiak szerint:
- SZÖVEG - ha a dátumértéket az ISO8601 karakterlánc formátumában illesztette be ("ÉÉÉÉ-HH-NN ÓÓ: HH: SS.SSS").
- VALÓDI - ha beírta a dátumértéket a Julián-napszámokba, a Kr.e. 4714. november 24-i Greenwich-ben dél óta eltelt napok száma. A dátumérték REAL-ként tárolódik.
- INTEGER, mint Unix idő, a másodpercek száma 1970-01-01 00:00:00 UTC óta.
Összegzés:
Az SQLite az adattípusok széles skáláját támogatja. Ugyanakkor nagyon rugalmas az adattípusok tekintetében. Bármely értéktípust beírhat bármely adattípusba. Az SQLite néhány új fogalmat is bevezetett az adattípusokban, például a típus affinitás és a tárolási osztályok, ellentétben más adatbázis-kezelő rendszerekkel.