SQLite Tipuri de date cu Exemplu: Int, Text, Numeric, Real, Blob
Tipuri de date în SQLite sunt diferite în comparație cu alte sisteme de gestionare a bazelor de date. În SQLite, puteți declara tipuri de date în mod normal, dar puteți stoca orice valoare în orice tip de date.
SQLite este scris mai puțin. Nu există tipuri de date, puteți stoca orice tip de date doriți în orice coloană. Aceasta se numește tipuri dinamice.
În tipurile statice, ca și în alte sisteme de gestionare a bazelor de date, dacă ați declarat o coloană cu un tip de date întreg, puteți introduce doar valori ale tipului de date întreg. Cu toate acestea, în tipurile dinamice ca în SQLite, tipul coloanei este determinat de valoarea introdusă. Și apoi SQLite stochează acea valoare în funcție de tipul acesteia.
SQLite Clasele de depozitare
In SQLite există diferite metode de stocare în funcție de tipul de valoare, aceste metode diferite de stocare sunt numite clase de stocare în SQLite.
Următoarele sunt clasele de stocare disponibile în SQLite:
- NULL – această clasă de stocare este folosită pentru a stoca orice valoare NULL.
- INTEGER – orice valoare numerică este stocată ca valoare întreagă cu semn (poate conține atât valori întregi pozitive, cât și negative). Valorile INTEGER în SQLite sunt stocați fie în 1, 2, 3, 4, 6 sau 8 octeți de stocare, în funcție de valoarea numărului.
- REAL – această clasă de stocare este folosită pentru a stoca valorile în virgulă mobilă, iar acestea sunt stocate într-un spațiu de stocare de 8 octeți.
- TEXT – stochează șiruri de text. De asemenea, acceptă diferite codificări, cum ar fi UTF-8, UTF-16 BE sau UTF-26LE.
- BLOB – folosit pentru a stoca fișiere mari, cum ar fi imagini sau fișiere text. Valoarea este stocată ca matrice de octeți la fel ca valoarea de intrare.
SQLite Tip de afinitate
Afinitatea de tip este tipul recomandat de date stocate într-o coloană. Cu toate acestea, puteți stoca în continuare orice tip de date după cum doriți, aceste tipuri sunt recomandate și nu sunt necesare.
Aceste tipuri au fost introduse în SQLite pentru a maximiza compatibilitatea între SQLite si alte Sistemul de gestionare a bazelor de date.
Orice coloană declarată într-un SQLite bazei de date i se atribuie o afinitate de tip în funcție de tipul de date declarat. Iată creșterea afinităților de tip în SQLite:
- TEXT.
- NUMERIC.
- ÎNTREG.
- REAL.
- BLOB.
Iată cum SQLite determină afinitatea coloanei din tipul de date declarat:
- Afinitatea INTEGER este atribuită dacă tipul declarat conține şir INT".
- Este atribuită afinitatea TEXT, dacă coloana conține pe tipul său de date unul dintre următoarele șiruri „TEXT""REZERVORsau „CLOB„. De exemplu, tipului VARCHAR i se va atribui afinitatea TEXT.
- Afinitatea BLOB este atribuită dacă coloana nu are niciun tip specificat sau tipul de date este un BLOB.
- Afinitatea REAL este atribuită dacă tipul conține unul dintre următoarele șiruri „Îndoiește""REALsau „PLUTI".
- Afinitatea NUMERIC este atribuită oricărui alt tip de date.
Există, de asemenea, un tabel pe aceeași pagină care arată câteva exemple pentru maparea dintre acestea SQLite tipurile de date și afinitățile lor determinate de aceste reguli:
Exemple de stocare a tipurilor de date în SQLite
Stocarea numărului cu SQLite întreg
Orice coloană de tip de date conține cuvântul „INT”, i se va atribui o afinitate de tip INTEGER. Acesta va fi stocat într-o clasă de stocare INTEGER.
Toate următoarele tipuri de date sunt atribuite ca afinitate de tip INTEGER:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
afinitate de tip INTEGER în SQLite poate deține orice număr întreg atribuit (pozitiv sau negativ) de la 1 octet până la maximum 8 octeți.
Stocarea numerelor cu SQLite REAL
Numerele REALE sunt numărul cu precizie dublă în virgulă mobilă. SQLite a stocat numere reale ca matrice de 8 octeți. Iată lista tipurilor de date în SQLite pe care le puteți folosi pentru a stoca numere REALE:
- REAL.
- DUBLA.
- DUBLA PRECIZIUNE.
- PLUTI.
Stocarea datelor mari cu SQLite BLOB
Există o singură modalitate de a stoca fișiere mari într-un SQLite baza de date și utilizează tipul de date BLOB. Acest tip de date este folosit pentru a stoca fișiere mari, cum ar fi imagini, fișiere (de orice tip), etc. Fișierul este convertit în matrice de octeți și apoi stocat în aceeași dimensiune ca fișierul de intrare.
depozitarea SQLite booleane
SQLite nu are o clasă de stocare BOOLEAN separată. Cu toate acestea, valorile BOOLEANE sunt stocate ca INTREGI cu valori 0 (ca false) sau 1 (ca adevărate).
depozitarea SQLite date si ore
Puteți declara data sau data orelor în SQLite folosind unul dintre următoarele tipuri de date:
- DATA
- datetime
- TIMESTAMP-UL
- TIMP
Rețineți că nu există o clasă de stocare separată DATE sau DATETIME SQLite. În schimb, orice valoare declarată cu unul dintre tipurile de date anterioare sunt stocate într-o clasă de stocare în funcție de formatul de dată al valorii introduse, după cum urmează:
- TEXT – dacă ați introdus valoarea datei în formatul șirului ISO8601 (“AAAA-LL-ZZ HH:MM:SS.SSS”).
- REAL – dacă ați inserat valoarea datei în numerele zilei iuliane, numărul de zile de la amiază în Greenwich pe 24 noiembrie 4714 î.Hr., atunci valoarea datei va fi stocată ca REAL.
- INTEGER as Unix Timp, numărul de secunde de la 1970-01-01 00:00:00 UTC.
Rezumat
SQLite acceptă o gamă largă de tipuri de date. Dar, în același timp, este foarte flexibil în ceea ce privește tipurile de date. Puteți pune orice tip de valoare în orice tip de date. SQLite a introdus, de asemenea, câteva concepte noi în tipurile de date, cum ar fi afinitatea tipului și clasele de stocare, spre deosebire de alte sisteme de gestionare a bazelor de date.