SQLite Tietotyypit: Kokonaisluku, Teksti, Numeerinen, Reaaliluku, Blob
⚡ Älykäs yhteenveto
SQLite tietotyypit toimivat eri tavalla kuin muut tietokannat, koska SQLite käyttää dynaamista ty:täping, tallentamalla minkä tahansa arvon mihin tahansa sarakkeeseen. Tallennusluokat, tyyppiaffiniteetti ja ilmoitetut tyyppinimet yhdessä määrittävät, miten kukin arvo fyysisesti tallennetaan levylle.
Alla olevat osiot selittävät, miten SQLite käsittelee tietotyyppejä alkaen viidestä tallennusluokasta, sitten tyyppiaffiniteetista ja sen määrityssäännöistä ja lopuksi työstää esimerkkejä kokonaislukujen, reaalilukujen, BLOB-objektien, totuusarvojen ja päivämäärien tallentamisesta.
Tietotyypit sisään SQLite eroavat muiden tietokannan hallintajärjestelmien vastaavista. SQLite, voit määrittää tietotyyppejä normaalisti, mutta voit silti tallentaa minkä tahansa arvon mihin tahansa tietotyyppiin.
SQLite on tyypitön. Ei ole olemassa kiinteitä tietotyyppejä; voit tallentaa minkä tahansa tyyppistä tietoa mihin tahansa sarakkeeseen. Tätä kutsutaan dynaamiseksi ty:ksi.ping.
Staattisissa tyypeissä, kuten muissakin tietokannan hallintajärjestelmissä, jos määrittelet sarakkeen, jonka tietotyyppi on kokonaisluku, voit lisätä vain kokonaislukutietotyypin arvoja. Dynaamisissa tyypeissä, kuten SQLite, sarakkeen tyyppi määräytyy lisätyn arvon perusteella, ja sitten SQLite tallentaa tämän arvon tyypistä riippuen.
SQLite Varastointiluokat
In SQLite Arvon tyypistä riippuen on olemassa erilaisia tallennusmenetelmiä; näitä erilaisia tallennusmenetelmiä kutsutaan tallennusluokiksi SQLite.
Seuraavat ovat käytettävissä olevat säilytysluokat SQLite:
- NULL – tätä tallennusluokkaa käytetään minkä tahansa NULL-arvon tallentamiseen.
- KOKONAISLUKU – mikä tahansa numeerinen arvo tallennetaan etumerkillisenä kokonaislukuarvona (se voi sisältää sekä positiivisia että negatiivisia kokonaislukuarvoja). INTEGER-arvot SQLite tallennetaan joko 1, 2, 3, 4, 6 tai 8 tavun muistiin numeron arvosta riippuen.
- TODELLINEN – tätä tallennusluokkaa käytetään liukulukujen arvojen tallentamiseen, ja ne tallennetaan 8 tavun tallennustilaan.
- TEKSTI – tallentaa tekstimerkkijonoja. Se tukee myös erilaisia koodauksia, kuten UTF-8, UTF-16BE tai UTF-16LE.
- BLOB – käytetään suurten tiedostojen, kuten kuvien tai tekstitiedostojen, tallentamiseen. Arvo tallennetaan tavutaulukkona, sama kuin syötearvo.
SQLite Suhdetyyppi
Tyyppiaffiniteetti on sarakkeeseen tallennettavan datan suositeltu tyyppi. Voit kuitenkin tallentaa minkä tahansa tyyppistä dataa haluamallasi tavalla; nämä tyypit ovat suositeltuja, eivät pakollisia.
Nämä tyypit otettiin käyttöön vuonna SQLite maksimoidaksesi yhteensopivuuden SQLite ja muut tietokannan ohjausjärjestelmäs.
Mikä tahansa sarake, joka on ilmoitettu an SQLite tietokannalle määritetään tyyppiaffiniteetti sen ilmoitetun tietotyypin mukaan. Tässä on luettelo tyyppiaffiniteeteista SQLite:
- TEKSTI.
- NUMERO.
- KOKONAISLUKU.
- TODELLINEN.
- MÖYKKY.
Tässä on miten SQLite määrittää sarakkeen affiniteetin sen ilmoitetusta tietotyypistä:
- INTEGER-affiniteetti määritetään, jos ilmoitettu tyyppi sisältää jono "SISÄINEN".
- TEXT-affiniteetti määritetään, jos sarakkeen tietotyypissä on jokin seuraavista merkkijonoista: ”TEXT”, ”CHAR” tai ”CLOB”. Esimerkiksi tyypille VARCHAR määritetään TEXT-affiniteetti.
- BLOB-affiniteetti määritetään, jos sarakkeelle ei ole määritetty tyyppiä tai tietotyyppi on BLOB.
- REAL-affiniteetti määritetään, jos tyyppi sisältää jonkin seuraavista merkkijonoista: ”DOUB”, ”REAL” tai ”FLOAT”.
- NUMERO-affiniteetti on määritetty mille tahansa muulle tietotyypille.
Alla on myös taulukko, jossa on esimerkkejä kartasta.ping välillä SQLite näiden sääntöjen määrittämät tietotyypit ja niiden affiniteetit:
Esimerkkejä tietotyyppien tallentamisesta SQLite
Numeroiden tallentaminen SQLite KOKONAISLUKU
Jos jonkin sarakkeen tietotyyppi sisältää sanan ”INT”, sille määritetään INTEGER-tyyppinen affiniteetti. Se tallennetaan INTEGER-tallennusluokkaan.
Kaikille seuraaville tietotyypeille on määritetty INTEGER-tyyppinen affiniteetti:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- PIENI, PIENI, KESKIKORTTI.
INTEGER-tyypin affiniteetti sisään SQLite voi sisältää minkä tahansa kokonaisluvun (positiivisen tai negatiivisen) yhdestä tavusta enintään kahdeksaan tavuun.
Numeroiden tallentaminen SQLite TODELLINEN
REAALIluvut ovat lukuja, joiden liukulukutarkkuus on kaksinkertainen. SQLite tallentaa reaaliluvut 8-tavuisena taulukkona. Tässä on luettelo tietotyypeistä SQLite joita voit käyttää todellisten numeroiden tallentamiseen:
- TODELLINEN.
- KAKSINKERTAINEN.
- KAKSI TARKKUUS.
- KELLUA.
Suurten tietojen tallentaminen SQLite BLOB
Suuria tiedostoja voi tallentaa vain yhdellä tavalla SQLite tietokannassa, ja se käyttää BLOB-tietotyyppiä. Tätä tietotyyppiä käytetään suurten tiedostojen, kuten kuvien tai minkä tahansa tyyppisten tiedostojen, tallentamiseen. Tiedosto muunnetaan tavutaulukoksi ja tallennetaan sitten samassa koossa kuin syöttötiedosto.
Tallentaminen SQLite booleans
SQLite ei ole erillistä BOOLEAN-tallennusluokkaa. Sen sijaan BOOLEAN-arvot tallennetaan KOKONAISLUKUINA, joissa 0 on epätosi ja 1 on tosi.
Tallentaminen SQLite päivämäärät ja kellonajat
Voit ilmoittaa päivämääriä tai päivämäärä-kellonaikoja SQLite käyttämällä jotakin seuraavista tietotyypeistä:
- DATE
- TREFFIAIKA
- AIKALEIMA
- AIKA
Huomaa, että DATE- tai DATETIME-tallennusluokkaa ei ole erillistä. SQLiteSen sijaan kaikki edellisillä tietotyypeillä ilmoitetut arvot tallennetaan lisätyn arvon päivämäärämuodon mukaiseen tallennusluokkaan seuraavasti:
- TEKSTI – jos syötät päivämääräarvon ISO8601-merkkijonomuodossa (”VVVV-KK-PP HH:MM:SS.SSS”).
- TODELLINEN – jos syötät päivämääräarvon juliaanisena päivinä, se on päivien lukumäärä Greenwichin kello 24:stä marraskuuta 4714 eaa. keskipäivästä lähtien. Päivämääräarvo tallennetaan sitten muodossa REAL.
- KOKONAISLUKU – kuten unix Aika, sekuntien määrä vuodesta 1970-01-01 00:00:00 UTC.


