SQLite adattípusok példával

Tartalomjegyzék:

Anonim

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:

  1. Az INTEGER affinitás akkor kerül hozzárendelésre, ha a deklarált típus tartalmazza az " INT " karakterláncot .
  2. 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.
  3. A BLOB affinitás akkor kerül hozzárendelésre, ha az oszlopnak nincs megadva típusa, vagy ha az adattípus BLOB.
  4. 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 .
  5. 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.