Duomenų tipai SQLite skiriasi, palyginti su kitomis duomenų bazių valdymo sistemomis. „SQLite“ galite paprastai deklaruoti duomenų tipus, tačiau vis tiek galite išsaugoti bet kokią duomenų tipą.
Šioje pamokoje sužinosite
- Sandėliavimo klasės
- Bendrų interesų tipas
- Duomenų tipų saugojimo SQLite pavyzdžiai
SQLite rašoma mažiau. Duomenų tipų nėra, bet kuriame stulpelyje galite saugoti bet kokio tipo duomenis. Tai vadinama dinaminiais tipais.
Statiniuose tipuose, kaip ir kitose duomenų bazių valdymo sistemose, jei deklaravote stulpelį su duomenų tipo sveikuoju skaičiumi, galite įterpti tik duomenų tipo sveikojo skaičiaus vertes. Tačiau naudojant dinaminius tipus, pvz., „SQLite“, stulpelio tipas nustatomas pagal įterptą vertę. Tada „SQLite“ išsaugo šią vertę, priklausomai nuo jos tipo.
SQLite saugojimo klasės
SQLite yra skirtingi saugojimo metodai, priklausomai nuo vertės tipo, šie skirtingi saugojimo metodai SQLite vadinami saugojimo klasėmis.
Toliau pateikiamos SQLite saugojimo klasės:
- NULL - ši saugojimo klasė naudojama bet kuriai NULL vertei saugoti.
- INTEGER - bet kuri skaitinė vertė yra saugoma kaip pasirašyta sveikojo skaičiaus reikšmė (joje gali būti tiek teigiamų, tiek neigiamų sveikųjų skaičių reikšmių). INTEGER reikšmės SQLite saugomos 1, 2, 3, 4, 6 arba 8 baitais, atsižvelgiant į skaičiaus vertę.
- TIKRA - ši saugojimo klasė naudojama slankiojo kablelio reikšmėms saugoti, ir jos saugomos 8 baitų saugykloje.
- TEKSTAS - saugo teksto eilutes. Jis taip pat palaiko skirtingą kodavimą, pvz., UTF-8, UTF-16 BE arba UTF-26LE.
- BLOB - naudojama dideliems failams, pvz., Atvaizdams ar tekstiniams failams, laikyti. Vertė saugoma kaip baitų masyvas, tokia pati kaip įvesties reikšmė.
SQLite bendrų interesų tipas
Tipo bendrumas yra rekomenduojamas stulpelyje saugomų duomenų tipas. Tačiau vis tiek galite saugoti bet kokio tipo duomenis, kaip norite, šių tipų rekomenduojama nereikalauti.
Šie tipai buvo įvesti SQLite, siekiant maksimaliai suderinti SQLite su kita duomenų bazių valdymo sistema.
Bet kuriam stulpeliui, deklaruotam SQLite duomenų bazėje, priskiriamas tipo giminingumas, atsižvelgiant į jo deklaruotą duomenų tipą. Čia SQLite tipo giminystės pakėlimas:
- TEKSTAS.
- NUMERIC.
- INTEGER.
- TIKRAS.
- BLOB.
Štai kaip SQLite nustato stulpelio bendrumą pagal deklaruotą duomenų tipą:
- „INTEGER“ giminingumas priskiriamas, jei deklaruojamame tipe yra eilutė „ INT “.
- „TEXT“ giminingumas priskiriamas, jei stulpelio duomenų tipe yra viena iš šių eilučių: „ TEXT “, „ CHAR“ arba „ CLOB “. Pvz., VARCHAR tipui bus priskirta TEXT giminaitė.
- BLOB bendrumas priskiriamas, jei stulpelyje nenurodytas tipas arba duomenų tipas yra BLOB.
- TIKRAS giminingumas priskiriamas, jei tipe yra viena iš šių eilučių „ DOUB “, „ REAL“ arba „ FLOAT “.
- NUMERIC giminingumas priskiriamas bet kokiam kitam duomenų tipui.
Tame pačiame puslapyje taip pat yra lentelė, kurioje pateikiami keli SQLite duomenų tipų ir jų giminystės susiejimo, nustatyto pagal šias taisykles, pavyzdžiai:
Duomenų tipų saugojimo SQLite pavyzdžiai:
Skaičiaus su SQLite sveikuoju skaičiumi saugojimas:
Bet kuriame duomenų tipo stulpelyje yra žodis „INT“, jam bus priskirtas INTEGER tipo giminingumas. Jis bus saugomas INTEGER saugojimo klasėje.
Visi šie duomenų tipai priskiriami INTEGER tipo giminingumui:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
INTEGER tipo afinitetas SQLite gali turėti bet kurį priskirtą sveikojo skaičiaus skaičių (teigiamą arba neigiamą) nuo 1 iki 8 baitų.
Skaičių saugojimas naudojant „SQLite REAL“:
TIKRI skaičiai yra dvigubo slankiojo kablelio tikslumas. SQLite realiuosius skaičius saugojo kaip 8 baitų masyvą. Čia yra duomenų tipų, esančių SQLite, sąrašas, kurį galite naudoti Tikriems numeriams saugoti:
- TIKRAS.
- DVIGUBAS.
- DVIGUBAS Tikslumas.
- PLŪDĖ.
Didelių duomenų saugojimas naudojant „SQLite BLOB“:
Yra tik vienas būdas saugoti didelius failus į SQLite duomenų bazę ir jis naudoja BLOB duomenų tipą. Šis duomenų tipas naudojamas saugoti didelius failus, pvz., Vaizdus, failus (iš bet kokio tipo) ir kt. Failas konvertuojamas į baitų masyvą ir tada saugomas tokio pat dydžio kaip ir įvesties failas.
SQLite Booleans saugojimas:
SQLite neturi atskiros BOOLEAN saugyklos klasės. Tačiau BOOLEAN vertės yra saugomos kaip INTEGERS, kurių vertės yra 0 (kaip klaidinga) arba 1 (kaip teisingos).
SQLite datų ir laiko saugojimas:
Datą arba datos laiką galite paskelbti SQLite naudodami vieną iš šių duomenų tipų:
- DATA
- DATETIME
- TIMESTAMP
- LAIKAS
Atminkite, kad „SQLite“ nėra atskiros DATE ar DATETIME saugyklos klasės. Vietoj to, visos su vienu iš ankstesnių duomenų tipų deklaruojamos vertės saugomos saugojimo klasėje, atsižvelgiant į įterptos vertės datos formatą:
- TEKSTAS - jei įterpėte datos reikšmę ISO8601 eilutės formatu („MMMM-MM-DD HH: MM: SS.SSS“).
- TIKRA - jei į Julijaus dienų numerius įvesite datos vertę, dienų skaičius nuo vidurdienio Grinviče, 4714 m. Lapkričio 24 d. Pr. Kr. Tada datos reikšmė bus įrašyta kaip TIKRA.
- INTEGER kaip Unix laikas, sekundžių skaičius nuo 1970-01-01 00:00:00 UTC.
Santrauka:
SQLite palaiko platų duomenų tipų spektrą. Tačiau tuo pat metu duomenų tipai yra labai lankstūs. Bet kokiam duomenų tipui galite pridėti bet kokį vertės tipą. SQLite taip pat pristatė keletą naujų sąvokų duomenų tipuose, pvz., Tipų giminingumo ir saugojimo klasėse, skirtingai nei kitose duomenų bazių valdymo sistemose.