SQLite Tietotyypit esimerkillä: Int, Text, Numeric, Real, Blob

Tietotyypit sisään SQLite ovat erilaisia ​​verrattuna muihin tietokannan hallintajärjestelmiin. Sisään SQLite, voit ilmoittaa tietotyypit normaalisti, mutta voit silti tallentaa minkä tahansa arvon mille tahansa tietotyypille.

SQLite kirjoitetaan vähemmän. Tietotyyppejä ei ole, voit tallentaa minkä tahansa tyyppisiä tietoja mihin tahansa sarakkeeseen. Tätä kutsutaan dynaamiseksi tyypiksi.

Staattisissa tyypeissä, kuten muissa tietokannan hallintajärjestelmissä, jos määritit sarakkeen tietotyypin kokonaisluvulla, voit lisätä vain tietotyypin kokonaislukuarvoja. Kuitenkin dynaamisissa tyypeissä, kuten in SQLite, sarakkeen tyyppi määräytyy lisätyn arvon mukaan. Ja sitten SQLite tallentaa tämän arvon tyypistä riippuen.

SQLite Varastointiluokat

In SQLite on olemassa erilaisia ​​​​tallennusmenetelmiä arvon tyypistä riippuen, 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ä kokonaislukuna (se voi sisältää sekä positiivisia että negatiivisia kokonaislukuja). INTEGER-arvot SQLite tallennetaan joko 1, 2, 3, 4, 6 tai 8 tavun muistiin numeron arvosta riippuen.
  • TODELLINEN – tätä tallennusluokkaa käytetään liukulukuarvojen tallentamiseen, ja ne tallennetaan 8-tavuiseen tallennustilaan.
  • TEKSTI – tallentaa tekstijonoja. Se tukee myös erilaisia ​​koodauksia, kuten UTF-8, UTF-16 BE tai UTF-26LE.
  • BLOB – käytetään suurten tiedostojen, kuten kuvien tai tekstitiedostojen, tallentamiseen. Arvo tallennetaan tavutaulukkona samana kuin syötearvo.

SQLite Suhdetyyppi

Tyyppiaffiniteetti on sarakkeeseen tallennettavien tietojen suositeltu tyyppi. Voit kuitenkin silti tallentaa minkä tahansa tyyppisiä tietoja haluamallasi tavalla. Näitä tyyppejä ei suositella.

Nämä tyypit otettiin käyttöön vuonna SQLite maksimoidaksesi yhteensopivuuden SQLite ja muut tietokannan ohjausjärjestelmä.

Mikä tahansa sarake, joka on ilmoitettu an SQLite tietokannalle on määritetty tyyppiaffiniteetti sen ilmoitetun tietotyypin mukaan. Tässä tyyppisuhtaisuuden nousu SQLite:

  • TEKSTI.
  • NUMERO.
  • KOKONAISLUKU.
  • TODELLINEN.
  • MÖYKKY.

Näin on SQLite määrittää sarakkeen affiniteetin sen ilmoitetusta tietotyypistä:

  1. INTEGER-affiniteetti määritetään, jos ilmoitettu tyyppi sisältää jono "INT".
  2. TEKSTI-affiniteetti on määritetty, jos sarake sisältää tietotyypissään jonkin seuraavista merkkijonoista "TEKSTI","HIILTYÄ, tai "CLOB". Esimerkiksi tyypille VARCHAR määritetään TEKSTI-affiniteetti.
  3. BLOB-affiniteetti määritetään, jos sarakkeelle ei ole määritetty tyyppiä tai tietotyyppi on BLOB.
  4. TODELLINEN affiniteetti määritetään, jos tyyppi sisältää jonkin seuraavista merkkijonoista "DOUB","TODELLINEN, tai "FLOAT".
  5. NUMERO-affiniteetti on määritetty mille tahansa muulle tietotyypille.

Samalla sivulla on myös taulukko, jossa on esimerkkejä välisistä kartoituksista SQLite näiden sääntöjen määrittämät tietotyypit ja niiden affiniteetit:

SQLite Suhdetyyppi
Kartoitus välillä SQLite tietotyypit ja affiniteetit

Esimerkkejä tietotyyppien tallentamisesta SQLite

Numeron tallennus SQLite kokonaisluku

Mikä tahansa tietotyypin sarake sisältää "INT"-sanan, sille määritetään INTEGER-tyyppinen affiniteetti. Se tallennetaan INTEGER-tallennusluokkaan.

Kaikki seuraavat tietotyypit on määritetty INTEGER-tyypin affiniteetiksi:

  • INT, INTEGER, BIGINT.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, MEDIUM INT.

INTEGER-tyypin affiniteetti sisään SQLite voi sisältää minkä tahansa määritetyn kokonaisluvun (positiivinen tai negatiivinen) 1 tavusta enintään 8 tavuun.

Numeroiden tallentaminen SQLite TODELLINEN

TODELLISET luvut ovat lukuja kaksinkertaisella liukulukutarkkuudella. SQLite tallentaa reaaliluvut 8 tavun taulukkona. Tässä on luettelo tietotyypeistä SQLite joita voit käyttää todellisten numeroiden tallentamiseen:

  • TODELLINEN.
  • KAKSINKERTAINEN.
  • KAKSI TARKKUUS.
  • KELLUA.

Suurten tietojen tallentaminen SQLite BLOB

On vain yksi tapa tallentaa suuria tiedostoja a SQLite tietokanta, ja se käyttää BLOB-tietotyyppiä. Tätä tietotyyppiä käytetään suurten tiedostojen, kuten kuvien, tiedostojen (kaikki tyypit) tallentamiseen. Tiedosto muunnetaan tavutaulukkoon ja tallennetaan sitten samankokoisena kuin syöttötiedosto.

Tallentaminen SQLite booleans

SQLite ei ole erillistä BOOLEAN-tallennusluokkaa. BOOLEAN-arvot tallennetaan kuitenkin KOKONAISKUVUINA arvoilla 0 (epätosi) tai 1 (tosi).

Tallentaminen SQLite päivämäärät ja kellonajat

Voit ilmoittaa päivämäärän tai päivämäärän kellonajat SQLite käyttämällä jotakin seuraavista tietotyypeistä:

  • DATE
  • TREFFIAIKA
  • AIKALEIMA
  • AIKA

Huomaa, että erillistä tallennusluokkaa DATE tai DATETIME ei ole SQLite. Sen sijaan kaikki arvot, jotka on ilmoitettu jollakin edellisistä tietotyypeistä, tallennetaan tallennusluokkaan lisätyn arvon päivämäärämuodon mukaan seuraavasti:

  • TEKSTI – jos lisäsit päivämääräarvon ISO8601-merkkijonon muodossa ("VVVV-KK-PP HH:MM:SS.SSS").
  • TODELLINEN – jos lisäsit päivämäärän arvon Julian-päivän numeroihin, päivien lukumäärä keskipäivästä Greenwichissä 24. marraskuuta 4714 eKr. Silloin päivämäärän arvo tallennettaisiin todellisena.
  • KOKONAISLUKU as unix Aika, sekuntien määrä vuodesta 1970-01-01 00:00:00 UTC.

Yhteenveto

SQLite tukee laajaa valikoimaa tietotyyppejä. Mutta samalla se on erittäin joustava tietotyyppien suhteen. Voit laittaa minkä tahansa arvotyypin mihin tahansa tietotyyppiin. SQLite toi myös joitakin uusia käsitteitä tietotyypeissä, kuten tyyppiaffiniteetti ja tallennusluokat, toisin kuin muut tietokannan hallintajärjestelmät.