SQLite-tietotyypit esimerkin avulla

Sisällysluettelo:

Anonim

SQLiten tietotyypit ovat erilaisia ​​verrattuna muihin tietokantojen hallintajärjestelmiin. SQLite-sovelluksessa voit ilmoittaa tietotyypit normaalisti, mutta voit silti tallentaa minkä tahansa arvon mihin tahansa tietotyyppiin.

Tässä opetusohjelmassa opit-

  • Tallennusluokat
  • Suhteen tyyppi
  • Esimerkkejä tietotyyppien tallennuksesta SQLite-sivustoon

SQLite kirjoitetaan vähemmän. Tietotyyppejä ei ole, voit tallentaa minkä tahansa tyyppisen datan mihin tahansa sarakkeeseen. Tätä kutsutaan dynaamisiksi tyypeiksi.

Staattisissa tyypeissä, kuten muissakin tietokannan hallintajärjestelmissä, jos ilmoitit sarakkeen tietotyypin kokonaisluvulla, voit lisätä vain tietotyypin kokonaislukuarvoja. Dynaamisissa tyypeissä kuten SQLite-sarakkeessa sarakkeen tyyppi määräytyy lisätyn arvon perusteella. Ja sitten SQLite tallentaa kyseisen arvon tyypistä riippuen.

SQLite-tallennustilaluokat

SQLite-ohjelmassa on erilaisia ​​tallennusmenetelmiä arvon tyypistä riippuen, näitä erilaisia ​​tallennusmenetelmiä kutsutaan SQLite-muistissa.

Seuraavat ovat SQLite-tilassa käytettävissä olevia tallennusluokkia:

  • NULL - tätä tallennusluokkaa käytetään minkä tahansa NULL-arvon tallentamiseen.
  • INTEGER - mikä tahansa numeerinen arvo tallennetaan allekirjoitettuna kokonaislukuna (se voi sisältää sekä positiivisia että negatiivisia kokonaislukuja). SQLite: n INTEGER-arvot tallennetaan joko 1, 2, 3, 4, 6 tai 8 tavua tallennustilaa numeron arvon mukaan.
  • TODELLINEN - tätä tallennusluokkaa käytetään liukulukuarvojen tallentamiseen, ja ne tallennetaan 8 tavun tallennustilaan.
  • TEXT - tallentaa tekstimerkkijonot. 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 sama kuin syötetty arvo.

SQLite-suhdetyyppi

Tyyppisuhde on suositeltava sarakkeeseen tallennettujen tietojen tyyppi. Voit kuitenkin silti tallentaa minkä tahansa tyyppisiä tietoja haluamallasi tavalla, näitä tyyppejä ei suositella.

Nämä tyypit otettiin käyttöön SQLite-sovelluksessa maksimoidakseen yhteensopivuuden SQLiten ja muun tietokannan hallintajärjestelmän välillä.

Kaikille SQLite-tietokannassa ilmoitetuille sarakkeille annetaan tyypin affiniteetti sen ilmoitetun tietotyypin mukaan. Tässä tyypin affiniteettien nousu SQLite:

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

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

  1. INTEGER-affiniteetti määritetään, jos ilmoitettu tyyppi sisältää merkkijonon " INT ".
  2. TEXT-affiniteetti on määritetty, jos sarake sisältää tietotyypissään yhden seuraavista merkkijonoista " TEXT ", " CHAR tai" CLOB ". Esimerkiksi tyypille VARCHAR annetaan TEXT-affiniteetti.
  3. BLOB-affiniteetti määritetään, jos sarakkeeseen ei ole määritetty tyyppiä tai tietotyyppi on BLOB.
  4. TODELLINEN affiniteetti määritetään, jos tyyppi sisältää jonkin seuraavista merkkijonoista " DOUB ", " REAL " tai " FLOAT ".
  5. NUMERIC-suhde määritetään muille tietotyypeille.

Samalla sivulla on myös taulukko, jossa on joitain esimerkkejä SQLite-tietotyyppien ja näiden sääntöjen määrittämien affiniteettien kartoittamisesta:

Esimerkkejä tietotyyppien säilyttämisestä SQLite-sivustossa:

Numeron tallentaminen SQLite-kokonaisluvulla:

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

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

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

INTEGER-tyyppinen affiniteetti SQLiteessa voi pitää minkä tahansa määritetyn kokonaisluvun (positiivisen tai negatiivisen) 1 tavusta enintään 8 tavuun.

Numeroiden tallentaminen SQLite REAL -ohjelmalla:

REAL-numerot ovat kaksinkertaisen liukuluvun tarkkuus. SQLite tallensi reaaliluvut 8 tavun matriisina. Tässä on luettelo SQLite-tietotyypeistä, joita voit käyttää REAL-numeroiden tallentamiseen:

  • TODELLINEN.
  • KAKSINKERTAINEN.
  • KAKSOISTARKKUUS.
  • KELLUA.

Suurten tietojen tallentaminen SQLite BLOB -sovelluksella:

On vain yksi tapa tallentaa suuria tiedostoja SQLite-tietokantaan, ja se käyttää BLOB-tietotyyppiä. Tätä tietotyyppiä käytetään suurten tiedostojen, kuten kuvien, tiedostojen (kaiken tyyppisten) jne., Tallentamiseen. Tiedosto muunnetaan tavuiksi ja tallennetaan sitten samankokoisiksi kuin syötetiedosto.

SQLite-Boolean-tiedostojen tallentaminen:

SQLitellä ei ole erillistä BOOLEAN-tallennustilaluokkaa. BOOLEAN-arvot tallennetaan kuitenkin INTEGERS-arvoina arvoilla 0 (väärinä) tai 1 (oikeina).

SQLite-päivämäärien ja -aikojen tallentaminen:

Voit ilmoittaa päivämäärän tai päivämäärän ajat SQLite-sovelluksessa jollakin seuraavista tietotyypeistä:

  • PÄIVÄMÄÄRÄ
  • TREFFIAIKA
  • AIKALEIMA
  • AIKA

Huomaa, että SQLite-sivustossa ei ole erillistä DATE- tai DATETIME-tallennustilaluokkaa. Sen sijaan kaikki edellisellä tietotyypillä ilmoitetut arvot tallennetaan tallennusluokkaan lisätyn arvon päivämäärämuodon mukaan seuraavasti:

  • TEKSTI - jos lisäit päivämääräarvon ISO8601-merkkijonon muotoon ("VVVV-KK-PP PP: PP: KM: SS.SSS").
  • TODELLINEN - jos lisäisit päivämääräarvon Julianus-päivän numeroihin, päivien lukumäärä Greenwichissä 24. marraskuuta 4714 eKr.
  • INTEGER Unix-aikaan, sekuntien määrä vuodesta 1970-01-01 00:00:00 UTC.

Yhteenveto:

SQLite tukee laajaa tietotyyppiä. Mutta samalla se on hyvin joustava tietotyyppien suhteen. Voit laittaa minkä tahansa arvotyypin mihin tahansa tietotyyppiin. SQLite esitteli myös joitain uusia käsitteitä tietotyypeissä, kuten tyyppisuhde- ja tallennusluokissa, toisin kuin muut tietokannan hallintajärjestelmät.