SQLite Gegevenstypen met voorbeeld: Int, Tekst, Numeriek, Real, Blob
Gegevenstypen binnen SQLite zijn anders dan andere databasebeheersystemen. In SQLite, kunt u gegevenstypen normaal declareren, maar u kunt nog steeds elke waarde in elk gegevenstype opslaan.
SQLite wordt minder getypt. Er zijn geen gegevenstypen, u kunt elk gewenst type gegevens in elke kolom opslaan. Dit worden dynamische typen genoemd.
Als u in statische typen, net als in andere databasebeheersystemen, een kolom met het gegevenstype geheel getal heeft gedeclareerd, kunt u alleen waarden van het gegevenstype geheel getal invoegen. Echter, in dynamische typen zoals in SQLite, wordt het type van de kolom bepaald door de ingevoegde waarde. En dan SQLite slaat die waarde op, afhankelijk van het type.
SQLite Opslagklassen
In SQLite Er zijn verschillende opslagmethoden, afhankelijk van het type waarde. Deze verschillende opslagmethoden worden opslagklassen genoemd SQLite.
Hieronder staan de opslagklassen die beschikbaar zijn in SQLite:
- NULL – deze opslagklasse wordt gebruikt om elke NULL-waarde op te slaan.
- GEHEEL GETAL – elke numerieke waarde wordt opgeslagen als een geheel getal met teken (deze kan zowel positieve als negatieve gehele waarden bevatten). De INTEGER-waarden in SQLite worden opgeslagen in 1, 2, 3, 4, 6 of 8 bytes opslag, afhankelijk van de waarde van het getal.
- REAL – deze opslagklasse wordt gebruikt om de drijvende-kommawaarden op te slaan, en deze worden opgeslagen in een opslagcapaciteit van 8 bytes.
- TEKST – slaat tekstreeksen op. Het ondersteunt ook verschillende codering zoals UTF-8, UTF-16 BE of UTF-26LE.
- BLOB – gebruikt om grote bestanden op te slaan, zoals afbeeldingen of tekstbestanden. De waarde wordt opgeslagen als byte-array, hetzelfde als de invoerwaarde.
SQLite Affiniteitstype
Typeaffiniteit is het aanbevolen type gegevens dat in een kolom wordt opgeslagen. U kunt echter nog steeds elk type gegevens opslaan zoals u dat wilt; deze typen worden aanbevolen niet vereist te zijn.
Deze typen zijn geïntroduceerd in SQLite om de compatibiliteit tussen te maximaliseren SQLite en andere databasemanagementsysteem.
Elke kolom die is gedeclareerd in een SQLite database krijgt een typeaffiniteit toegewezen, afhankelijk van het gedeclareerde gegevenstype. Hier is de toename van typeaffiniteiten in SQLite:
- TEKST.
- NUMERIEK.
- GEHEEL GETAL.
- ECHT.
- BLOB.
Hier is hoe SQLite bepaalt de affiniteit van de kolom op basis van het aangegeven gegevenstype:
- INTEGER-affiniteit wordt toegewezen als het gedeclareerde type de snaar "INT'.
- TEXT-affiniteit wordt toegekend als de kolom in zijn gegevenstype een van de volgende strings bevat:TEKST","CHAR, of "KLOB“. Aan het type VARCHAR wordt bijvoorbeeld de TEXT-affiniteit toegewezen.
- BLOB-affiniteit wordt toegewezen als voor de kolom geen type is opgegeven of als het gegevenstype een BLOB is.
- REAL-affiniteit wordt toegekend als het type een van de volgende strings bevat:DUBBEL","REAL, of "FLOAT'.
- NUMERIEKE affiniteit wordt toegewezen aan elk ander gegevenstype.
Op dezelfde pagina staat ook een tabel met enkele voorbeelden van de toewijzing tussen SQLite gegevenstypen en hun affiniteiten bepaald door deze regels:
Voorbeelden van het opslaan van gegevenstypen in SQLite
Nummer opslaan met SQLite geheel getal
Elke kolom met gegevenstype bevat het woord 'INT'; hieraan wordt een affiniteit van het type INTEGER toegewezen. Het wordt opgeslagen in een INTEGER-opslagklasse.
Alle volgende gegevenstypen worden toegewezen als een INTEGER-typeaffiniteit:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- KLEININT, KLEININT, MEDIUM INT.
INTEGER type affiniteit in SQLite kan elk toegewezen geheel getal (positief of negatief) bevatten van 1 byte tot maximaal 8 bytes.
Nummers opslaan met SQLite REAL
REËLE getallen zijn getallen met een precisie van dubbele drijvende komma. SQLite opgeslagen reële getallen als 8 bytes' array. Hier is de lijst met gegevenstypen in SQLite die u kunt gebruiken om ECHTE getallen op te slaan:
- ECHT.
- DUBBELE.
- DUBBELE PRECISIE.
- VLOT.
Grote gegevens opslaan met SQLite BLOB
Er is maar één manier om grote bestanden op te slaan in een SQLite database en gebruikt het BLOB-gegevenstype. Dit gegevenstype wordt gebruikt om grote bestanden op te slaan, zoals afbeeldingen, bestanden (van welk type dan ook), enz. Het bestand wordt geconverteerd naar een bytesarray en vervolgens opgeslagen in dezelfde grootte als het invoerbestand.
Hoe bewaart u SQLite Booleans
SQLite heeft geen aparte BOOLEAN-opslagklasse. De BOOLEAN-waarden worden echter opgeslagen als INTEGEN met de waarden 0 (als false) of 1 (als true).
Hoe bewaart u SQLite data en tijden
U kunt datums of datumtijden declareren in SQLite met behulp van een van de volgende gegevenstypen:
- DATUM
- DATUM TIJD
- TIJDSTAMP
- TIJD
Houd er rekening mee dat er geen afzonderlijke DATE- of DATETIME-opslagklasse in zit SQLiteIn plaats daarvan worden alle waarden die met een van de vorige gegevenstypen zijn gedeclareerd, opgeslagen in een opslagklasse, afhankelijk van de datumnotatie van de ingevoegde waarde, als volgt:
- TEKST – als u de datumwaarde hebt ingevoegd in het formaat van de ISO8601-tekenreeks (“JJJJ-MM-DD HH:MM:SS.SSS”).
- REAL – als u de datumwaarde in de Juliaanse dagnummers invoert, het aantal dagen sinds het middaguur in Greenwich op 24 november 4714 v.Chr. Dan wordt de datumwaarde opgeslagen als REAL.
- GEHEEL GETAL as Unix Tijd, het aantal seconden sinds 1970-01-01 00:00:00 UTC.
Samenvatting
SQLite ondersteunt een breed scala aan gegevenstypen. Maar tegelijkertijd is het zeer flexibel wat betreft gegevenstypen. U kunt elk waardetype in elk gegevenstype plaatsen. SQLite introduceerde ook een aantal nieuwe concepten in gegevenstypen, zoals type-affiniteit en opslagklassen, in tegenstelling tot andere databasebeheersystemen.