Tipuri de date SQLite cu Exemplu

Cuprins:

Anonim

Tipurile de date din SQLite sunt diferite în comparație cu alte sisteme de gestionare a bazelor de date. În SQLite, puteți declara tipurile de date în mod normal, dar puteți totuși stoca orice valoare în orice tip de date.

În acest tutorial, veți învăța-

  • Clase de depozitare
  • Tipul de afinitate
  • Exemple de stocare a tipurilor de date în SQLite

SQLite este mai puțin tastat. 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, la fel ca în alte sisteme de gestionare a bazelor de date, dacă ați declarat o coloană cu un tip întreg de date, puteți insera doar valori ale întregului tip de date. Cu toate acestea, în tipurile dinamice, cum ar fi în SQLite, tipul coloanei este determinat de valoarea inserată. Și apoi SQLite stochează acea valoare în funcție de tipul acesteia.

Clase de stocare SQLite

În SQLite există diferite metode de stocare în funcție de tipul valorii, aceste metode de stocare diferite sunt numite clase de stocare în SQLite.

Următoarele sunt clasele de stocare disponibile în SQLite:

  • NULL - această clasă de stocare este utilizată pentru a stoca orice valoare NULL.
  • INTEGER - orice valoare numerică este stocată ca o valoare întreagă semnată (poate conține atât valori întregi pozitive, cât și negative). Valorile INTEGER din SQLite sunt stocate î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 utilizată pentru a stoca valorile în virgulă mobilă și sunt stocate într-un stoc de 8 octeți.
  • TEXT - stochează șiruri de text. De asemenea, acceptă diferite codificări precum 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.

Tipul de afinitate SQLite

Afinitatea de tip este tipul recomandat de date stocate într-o coloană. Cu toate acestea, puteți totuși stoca orice tip de date după cum doriți, aceste tipuri sunt recomandate, nu sunt necesare.

Aceste tipuri au fost introduse în SQLite pentru a maximiza compatibilitatea dintre SQLite și alt sistem de gestionare a bazelor de date.

Orice coloană declarată într-o bază de date SQLite primește o afinitate de tip în funcție de tipul de date declarat. Aici creșterea afinităților de tip în SQLite:

  • TEXT.
  • NUMERIC.
  • ÎNTREG.
  • REAL.
  • BLOB.

Iată cum SQLite determină afinitatea coloanei din tipul său de date declarat:

  1. Afinitatea INTEGER este atribuită dacă tipul declarat conține șirul „ INT ”.
  2. Afinitatea TEXT este atribuită, dacă coloana conține pe tipul său de date unul dintre următoarele șiruri „ TEXT ”, „ CHAR sau„ CLOB ”. De exemplu, tipului VARCHAR i se va atribui afinitatea TEXT.
  3. Afinitatea BLOB este atribuită dacă coloana nu are un tip specificat sau tipul de date este BLOB.
  4. Afinitatea REALĂ este atribuită dacă tipul conține unul dintre următoarele șiruri „ DOUB ”, „ REAL sau„ FLOAT ”.
  5. Afinitatea NUMERICĂ este alocată pentru orice alt tip de date.

Există, de asemenea, un tabel pe aceeași pagină care prezintă câteva exemple de mapare între tipurile de date SQLite și afinitățile acestora determinate de aceste reguli:

Exemple de stocare a tipurilor de date în SQLite:

Stocarea numărului cu întreg SQLite:

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.

Afinitatea de tip INTEGER în SQLite poate conține orice număr întreg atribuit (pozitiv sau negativ) de la 1 octet la maxim 8 octeți.

Stocarea numerelor cu SQLite REAL:

Numerele REALE sunt numărul cu precizie în virgulă dublă. SQLite a stocat numere reale ca matrice de 8 octeți. Iată lista tipurilor de date din SQLite pe care le puteți utiliza pentru a stoca numere REALE:

  • REAL.
  • DUBLA.
  • PRECIZIE DUBLA.
  • PLUTI.

Stocarea datelor mari cu SQLite BLOB:

Există o singură modalitate de a stoca fișiere mari într-o bază de date SQLite și folosește tipul de date BLOB. Acest tip de date este utilizat pentru a stoca fișiere mari precum 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.

Stocarea booleenilor SQLite:

SQLite nu are o clasă de stocare BOOLEAN separată. Cu toate acestea, valorile BOOLEAN sunt stocate ca INTEGRE cu valorile 0 (ca false) sau 1 (ca adevărate).

Stocarea datelor și orelor SQLite:

Puteți declara data sau ora datei în SQLite utilizând unul dintre următoarele tipuri de date:

  • DATA
  • DATETIME
  • TIMESTAMP-UL
  • TIMP

Rețineți că nu există o clasă separată de stocare DATE sau DATETIME în SQLite. În schimb, orice valori declarate cu unul dintre tipurile de date anterioare sunt stocate într-o clasă de stocare, în funcție de formatul de dată al valorii inserate, 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 iuliene, numărul de zile de la prânz în Greenwich pe 24 noiembrie 4714 î.Hr. Atunci valoarea datei va fi stocată ca REAL.
  • INTEGER ca Unix Time, numărul de secunde din 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 introduce 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 de tip și clasele de stocare, spre deosebire de alte sisteme de gestionare a bazelor de date.