Datové typy v SQLite se liší od jiných systémů pro správu databází. V SQLite můžete deklarovat datové typy normálně, ale stále můžete ukládat jakoukoli hodnotu v libovolném datovém typu.
V tomto výukovém programu se naučíte
- Třídy skladování
- Typ afinity
- Příklady ukládání datových typů v SQLite
SQLite je zadáván méně. Neexistují žádné datové typy, do libovolného sloupce můžete uložit jakýkoli typ dat, který se vám líbí. Tomu se říká dynamické typy.
Ve statických typech, stejně jako v jiných systémech pro správu databází, můžete deklarovat sloupec s datovým typem integer, můžete vložit pouze hodnoty datového typu integer. V dynamických typech, jako je SQLite, je však typ sloupce určen vloženou hodnotou. A poté SQLite uloží tuto hodnotu v závislosti na jejím typu.
Třídy úložiště SQLite
V SQLite existují různé metody ukládání v závislosti na typu hodnoty, tyto různé metody ukládání se v SQLite nazývají třídy úložiště.
Níže jsou uvedeny třídy úložiště dostupné v SQLite:
- NULL - tato třída úložiště se používá k uložení jakékoli hodnoty NULL.
- INTEGER - jakákoli číselná hodnota je uložena jako celočíselná hodnota se znaménkem (Může obsahovat kladné i záporné celočíselné hodnoty). Hodnoty INTEGER v SQLite jsou uloženy v 1, 2, 3, 4, 6 nebo 8 bajtech úložiště v závislosti na hodnotě čísla.
- REAL - tato třída úložiště se používá k ukládání hodnot s plovoucí desetinnou čárkou a jsou uloženy v úložišti 8 bajtů.
- TEXT - ukládá textové řetězce. Podporuje také různé kódování, jako je UTF-8, UTF-16 BE nebo UTF-26LE.
- BLOB - slouží k ukládání velkých souborů, jako jsou obrázky nebo textové soubory. Hodnota je uložena jako bajtové pole stejné jako vstupní hodnota.
Typ spřažení SQLite
Typová afinita je doporučený typ dat uložených ve sloupci. Stále však můžete ukládat libovolný typ dat, jak chcete, tyto typy se doporučují nevyžadují.
Tyto typy byly zavedeny v SQLite, aby se maximalizovala kompatibilita mezi SQLite a jiným systémem správy databáze.
Jakémukoli sloupci deklarovanému v databázi SQLite je přiřazena afinita typu v závislosti na deklarovaném datovém typu. Zde je výtah spřízněných typů v SQLite:
- TEXT.
- NUMERICKÉ.
- CELÉ ČÍSLO.
- NEMOVITÝ.
- KAPKA.
Zde je způsob, jakým SQLite určuje afinitu sloupce z deklarovaného datového typu:
- Afinita INTEGER je přiřazena, pokud deklarovaný typ obsahuje řetězec „ INT “.
- Přiřazení TEXT je přiřazeno, pokud sloupec obsahuje na svém datovém typu jeden z následujících řetězců „ TEXT “, „ CHAR nebo„ CLOB “. Například typu VARCHAR bude přiřazen vztah TEXT.
- Přidružení BLOB je přiřazeno, pokud sloupec nemá zadán žádný typ nebo je datový typ BLOB.
- REAL afinita je přiřazena, pokud typ obsahuje jeden z následujících řetězců " DOUB ", " REAL nebo" FLOAT ".
- Pro jakýkoli jiný datový typ je přiřazena NUMERICKÁ afinita.
Na stejné stránce je také tabulka zobrazující několik příkladů pro mapování mezi datovými typy SQLite a jejich afinitami určenými těmito pravidly:
Příklady ukládání datových typů v SQLite:
Uložení čísla s SQLite integer:
Jakýkoli sloupec datového typu obsahuje slovo „INT“, bude mu přiřazeno spřažení typu INTEGER. Bude uložen v úložné třídě INTEGER.
Všechny následující datové typy jsou přiřazeny jako spřažení typu INTEGER:
- INT, INTEGER, VELKÝ.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, STŘEDNÍ INT.
Afinita typu INTEGER v SQLite může obsahovat jakékoli přiřazené celé číslo (kladné nebo záporné) od 1 bajtu do maximálně 8 bajtů.
Ukládání čísel pomocí SQLite REAL:
SKUTEČNÁ čísla jsou čísla s dvojitou přesností s plovoucí desetinnou čárkou. SQLite ukládal reálná čísla jako pole 8 bajtů. Tady je seznam datových typů v SQLite, které můžete použít k ukládání SKUTEČNÝCH čísel:
- NEMOVITÝ.
- DVOJNÁSOBEK.
- DVOJNÁSOBNÁ PŘESNOST.
- PLOVÁK.
Ukládání velkých dat pomocí SQLite BLOB:
Existuje pouze jeden způsob ukládání velkých souborů do databáze SQLite a používá datový typ BLOB. Tento datový typ se používá k ukládání velkých souborů, jako jsou obrázky, soubory (jakéhokoli typu) atd. Soubor se převede na bajtové pole a poté se uloží ve stejné velikosti jako vstupní soubor.
Ukládání Bootů SQLite:
SQLite nemá samostatnou třídu úložiště BOOLEAN. Hodnoty BOOLEAN jsou však uloženy jako INTEGERS s hodnotami 0 (jako false) nebo 1 (jako true).
Ukládání dat a časů SQLite:
Můžete deklarovat datum nebo čas v SQLite pomocí jednoho z následujících datových typů:
- DATUM
- ČAS SCHŮZKY
- TIMESTAMP
- ČAS
Všimněte si, že v SQLite neexistuje žádná samostatná třída úložiště DATE nebo DATETIME. Místo toho jsou všechny hodnoty deklarované s jedním z předchozích datových typů uloženy ve třídě úložiště v závislosti na formátu data vložené hodnoty následujícím způsobem:
- TEXT - pokud jste vložili hodnotu data ve formátu řetězce ISO8601 ("RRRR-MM-DD HH: MM: SS.SSS").
- SKUTEČNÉ - pokud vložíte hodnotu data do čísel juliánských dnů, počet dní od poledne v Greenwichi 24. listopadu 4714 př. N.l. Poté bude hodnota data uložena jako SKUTEČNÁ.
- INTEGER jako Unix Time, počet sekund od 1970-01-01 00:00:00 UTC.
Souhrn:
SQLite podporuje širokou škálu datových typů. Zároveň je však velmi flexibilní, pokud jde o datové typy. Do libovolného datového typu můžete vložit libovolný typ hodnoty. SQLite také na rozdíl od jiných systémů správy databází představil některé nové koncepty v datových typech, jako jsou spřažení typů a třídy úložiště.