SQLite Adattípusok példával: Int, Text, Numeric, Real, Blob

Adattípusok be SQLite különböznek a többi adatbázis-kezelő rendszertől. Ban ben SQLite, az adattípusokat a szokásos módon deklarálhatja, de bármilyen adattípusban bármilyen értéket tárolhat.

SQLite kevésbé van beírva. Nincsenek adattípusok, tetszőleges típusú adatokat tárolhat bármelyik oszlopban. Ezt dinamikus típusoknak nevezzük.

A statikus típusokban, mint más adatbázis-kezelő rendszerekben, ha egy oszlopot egész adattípussal deklarált, akkor csak egész adattípusú értékeket szúrhat be. Azonban a dinamikus típusokban, mint pl SQLite, az oszlop típusát a beillesztett érték határozza meg. És akkor SQLite típusától függően tárolja ezt az értéket.

SQLite Tárolási osztályok

In SQLite az érték típusától függően különböző tárolási módszerek léteznek, ezeket a különböző tárolási módszereket tárolási osztályoknak nevezzük SQLite.

A következő tárolási osztályok érhetők el SQLite:

  • NULL – ez a tárolási osztály bármilyen NULL érték tárolására szolgál.
  • EGÉSZ SZÁM – bármely numerikus érték előjeles egész értékként kerül tárolásra (pozitív és negatív egész értékeket is tartalmazhat). Az INTEGER értékek in SQLite a szám értékétől függően 1, 2, 3, 4, 6 vagy 8 bájtos tárolóban vannak tárolva.
  • IGAZI – ez a tárolási osztály a lebegőpontos értékek tárolására szolgál, és egy 8 bájtos tárolóban tárolódnak.
  • TEXT – tárolja a szöveges karakterláncokat. Támogatja a különböző kódolásokat is, mint például az UTF-8, UTF-16 BE vagy UTF-26LE.
  • FOLT – nagy fájlok, például képek vagy szöveges fájlok tárolására szolgál. Az érték a bemeneti értékkel megegyező bájttömbként kerül tárolásra.

SQLite Affinitás típusa

A típusaffinitás az oszlopban tárolt adatok ajánlott típusa. Azonban továbbra is bármilyen típusú adatot tárolhat, ahogy szeretné, ezek a típusok nem kötelezőek.

Ezeket a típusokat ben vezették be SQLite közötti kompatibilitás maximalizálása érdekében SQLite és egyéb adatbázis kezelő rendszer.

Az an-ban deklarált bármely oszlop SQLite Az adatbázis típusaffinitást kap a deklarált adattípustól függően. Itt a típusaffinitások növekedése SQLite:

  • SZÖVEG.
  • SZÁM.
  • EGÉSZ SZÁM.
  • IGAZI.
  • FOLT.

Itt van, hogyan SQLite meghatározza az oszlop affinitását a deklarált adattípusból:

  1. INTEGER affinitás akkor van hozzárendelve, ha a deklarált típus tartalmazza a húr "INT".
  2. A SZÖVEG affinitás hozzá van rendelve, ha az oszlop adattípusában a következő karakterláncok egyikét tartalmazza:TEXT","CHAR, vagyCLOB“. Például a VARCHAR típushoz lesz hozzárendelve a SZÖVEG affinitás.
  3. A BLOB-affinitás akkor van hozzárendelve, ha az oszlopnak nincs megadva típusa, vagy az adattípus BLOB.
  4. A VALÓDI affinitás akkor van hozzárendelve, ha a típus tartalmazza a következő karakterláncok egyikét:DOUB","IGAZI, vagyÚSZÓ".
  5. Minden más adattípushoz NUMERIC affinitás van hozzárendelve.

Ugyanezen az oldalon található egy táblázat is, amely néhány példát mutat a közötti leképezésre SQLite az alábbi szabályok által meghatározott adattípusok és rokonságuk:

SQLite Affinitás típusa
Közötti feltérképezés SQLite adattípusok és affinitások

Példák az adattípusok tárolására SQLite

Szám tárolása a SQLite egész szám

Bármely adattípus oszlop tartalmazza az „INT” szót, az INTEGER típusú affinitást kapja. INTEGER tárolási osztályban lesz tárolva.

Az összes alábbi adattípus INTEGER típusú affinitásként van hozzárendelve:

  • INT, INTEGER, BIGINT.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, KÖZEPES INT.

INTEGER típusú affinitás be SQLite bármilyen hozzárendelt egész számot (pozitív vagy negatív) tartalmazhat 1 bájttól maximum 8 bájtig.

Számok tárolása a SQLite IGAZI

A VALÓS számok dupla lebegőpontos pontosságú számok. SQLite a valós számokat 8 bájtos tömbként tárolja. Itt található az adattípusok listája SQLite amelyeket VALÓDI számok tárolására használhat:

  • IGAZI.
  • KETTŐS.
  • KETTŐS PONTOSSÁG.
  • ÚSZÓ.

Nagy adatok tárolása a SQLite FOLT

Csak egy módja van a nagy fájlok tárolásának a SQLite adatbázist, és a BLOB adattípust használja. Ezt az adattípust nagy fájlok, például képek, fájlok (bármilyen típusú) tárolására használják. A fájl bájttömbbé konvertálódik, majd a bemeneti fájl méretével megegyező méretben tárolódik.

Tárolása SQLite Logikai adattípus

SQLite nincs külön BOOLEAN tárolási osztálya. A BOOLEAN értékeket azonban a rendszer INTEGERS-ként tárolja, 0 (hamis) vagy 1 (igaz) értékkel.

Tárolása SQLite dátumok és időpontok

Bejelentheti a dátumot vagy a dátumidőket SQLite az alábbi adattípusok egyikével:

  • DÁTUM
  • DÁTUM IDŐ
  • IDŐBÉLYEG
  • IDŐ

Vegye figyelembe, hogy nincs külön DATE vagy DATETIME tárolási osztály SQLite. Ehelyett az előző adattípusok valamelyikével deklarált értékek a beillesztett érték dátumformátumától függően egy tárolási osztályban tárolódnak, az alábbiak szerint:

  • TEXT – ha a dátumértéket az ISO8601 karakterlánc formátumában szúrta be ("ÉÉÉÉ-HH-NN ÓÓ:PP:SS.SSS").
  • IGAZI – ha beilleszti a dátumértéket a Julian-napszámok közé, a Greenwichben dél óta eltelt napok számát i.e. 24. november 4714-én, akkor a dátum értéke REAL-ként kerül tárolásra.
  • EGÉSZ SZÁM as Unix Idő, a másodpercek száma 1970-01-01 00:00:00 UTC óta.

Összegzésként

SQLite adattípusok széles skáláját támogatja. Ugyanakkor nagyon rugalmas az adattípusok tekintetében. Bármilyen értéktípust bármilyen adattípusba megadhat. SQLite más adatbázis-kezelő rendszerekkel ellentétben bevezetett néhány új fogalmat az adattípusokban, mint például a típusaffinitás és a tárolási osztályok.