SQLite Gegevenstypen: Int, Text, Numeric, Real, Blob
โก Slimme samenvatting
SQLite Gegevenstypen werken anders dan in andere databases, omdat SQLite maakt gebruik van dynamische typingwaarbij elke waarde in elke kolom kan worden opgeslagen. Opslagklassen, type-affiniteit en gedeclareerde typenamen bepalen samen hoe elke waarde fysiek op de schijf wordt opgeslagen.

De onderstaande secties leggen uit hoe SQLite Het behandelt gegevenstypen, te beginnen met de vijf opslagklassen, vervolgens type-affiniteit en de bijbehorende toewijzingsregels, en ten slotte uitgewerkte voorbeelden van het opslaan van gehele getallen, reรซle getallen, BLOB's, Booleaanse waarden en datums.
Gegevenstypen binnen SQLite verschillen van die in andere databasebeheersystemen. SQLiteJe kunt gegevenstypen op de normale manier declareren, maar je kunt nog steeds elke waarde in elk gegevenstype opslaan.
SQLite Het is typeloos. Er zijn geen vaste gegevenstypen; je kunt elk gewenst gegevenstype in elke kolom opslaan. Dit wordt dynamisch typen genoemd.ping.
Bij statische gegevenstypen, zoals in andere databasesystemen, kunt u, als u een kolom declareert met het gegevenstype integer, alleen waarden van het gegevenstype integer invoegen. Bij dynamische gegevenstypen, zoals in SQLiteHet type van de kolom wordt bepaald door de ingevoerde waarde, en vervolgens SQLite slaat die waarde op, afhankelijk van het type.
SQLite Opslagklassen
In SQLite Er bestaan โโ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 getekend geheel getal (het kan zowel positieve als negatieve gehele getallen 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 drijvende-kommawaarden op te slaan, en deze worden opgeslagen in 8 bytes geheugen.
- TEKST โ Slaat tekstreeksen op. Het ondersteunt ook verschillende coderingen zoals UTF-8, UTF-16BE of UTF-16LE.
- BLOB โ wordt gebruikt voor het opslaan van grote bestanden, zoals afbeeldingen of tekstbestanden. De waarde wordt opgeslagen als een byte-array, net als de invoerwaarde.
SQLite Affiniteitstype
Type-affiniteit is het aanbevolen gegevenstype voor opslag in een kolom. U kunt echter nog steeds elk gewenst gegevenstype opslaan; deze typen worden aanbevolen, maar zijn niet verplicht.
Deze typen zijn geรฏntroduceerd in SQLite om de compatibiliteit tussen te maximaliseren SQLite en andere databasemanagementsysteems.
Elke kolom die is gedeclareerd in een SQLite Aan een database wordt een type-affiniteit toegekend op basis van het gedeclareerde gegevenstype. Hier is een lijst met type-affiniteiten in SQLite:
- TEKST.
- NUMERIEK.
- GEHEEL GETAL.
- ECHT.
- BLOB.
Hier is hoe SQLite bepaalt de affiniteit van een kolom op basis van het gedeclareerde gegevenstype:
- INTEGER-affiniteit wordt toegewezen als het gedeclareerde type de snaar โINTโ.
- De affiniteit TEXT wordt toegekend als de kolom in het gegevenstype een van de volgende tekenreeksen bevat: "TEXT", "CHAR" of "CLOB". Bijvoorbeeld, aan het type VARCHAR wordt de affiniteit TEXT toegekend.
- BLOB-affiniteit wordt toegewezen als voor de kolom geen type is opgegeven of als het gegevenstype een BLOB is.
- De REAL-affiniteit wordt toegekend als het type een van de volgende tekenreeksen bevat: "DOUB", "REAL" of "FLOAT".
- NUMERIEKE affiniteit wordt toegewezen aan elk ander gegevenstype.
Hieronder vindt u ook een tabel met enkele voorbeelden van de kaart.ping tussen SQLite gegevenstypen en hun affiniteiten bepaald door deze regels:
Voorbeelden van het opslaan van gegevenstypen in SQLite
Nummers opslaan met SQLite GEHEEL GETAL
Als een kolom een โโgegevenstype heeft dat het woord "INT" bevat, krijgt deze de type-affiniteit INTEGER toegewezen. De gegevens worden opgeslagen in een INTEGER-opslagklasse.
Aan alle volgende gegevenstypen is een INTEGER-type-affiniteit toegekend:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TIYINT, SMALLINT, MEDIUMINT.
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 dubbele drijvende-kommaprecisie. SQLite Slaat reรซle getallen op als een array van 8 bytes. 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 dat maakt gebruik van het BLOB-datatype. Dit datatype wordt gebruikt om grote bestanden op te slaan, zoals afbeeldingen of bestanden van elk type. Het bestand wordt omgezet in een byte-array en vervolgens opgeslagen met dezelfde grootte als het invoerbestand.
Hoe bewaart u SQLite Booleans
SQLite Er is geen aparte opslagklasse voor BOOLEAN-waarden. In plaats daarvan worden BOOLEAN-waarden opgeslagen als INTEGERS, waarbij 0 staat voor onwaar en 1 voor waar.
Hoe bewaart u SQLite data en tijden
Je kunt datums of datum-tijden opgeven in SQLite met behulp van een van de volgende gegevenstypen:
- DATUM
- DATUM TIJD
- TIJDSTAMP
- TIJD
Merk op dat er geen aparte opslagklasse voor DATE of DATETIME bestaat. SQLiteIn plaats daarvan worden alle waarden die met een van de voorgaande gegevenstypen zijn gedeclareerd, opgeslagen in een opslagklasse afhankelijk van de datumindeling van de ingevoegde waarde, als volgt:
- TEKST โ als u de datumwaarde invoert in het formaat van een ISO8601-tekenreeks (โJJJJ-MM-DD HH:MM:SS.SSSโ).
- REAL โ Als u de datumwaarde invoert als een Juliaanse dagwaarde, het aantal dagen sinds de middag in Greenwich op 24 november 4714 v.Chr., wordt de datumwaarde vervolgens opgeslagen als REAL.
- GEHEEL GETAL - net zo Unix Tijd, het aantal seconden sinds 1970-01-01 00:00:00 UTC.

