SQLite - Type de données

Le type de données SQLite est un attribut qui spécifie le type de données de tout objet. Chaque colonne, variable et expression a un type de données associé dans SQLite.

Vous utiliseriez ces types de données lors de la création de vos tables. SQLite utilise un système de type dynamique plus général. Dans SQLite, le type de données d'une valeur est associé à la valeur elle-même, pas à son conteneur.

Classes de stockage SQLite

Chaque valeur stockée dans une base de données SQLite possède l'une des classes de stockage suivantes -

Sr.No. Classe de stockage et description
1

NULL

La valeur est une valeur NULL.

2

INTEGER

La valeur est un entier signé, stocké dans 1, 2, 3, 4, 6 ou 8 octets en fonction de l'amplitude de la valeur.

3

REAL

La valeur est une valeur à virgule flottante, stockée sous forme de nombre à virgule flottante IEEE de 8 octets.

4

TEXT

La valeur est une chaîne de texte, stockée à l'aide du codage de la base de données (UTF-8, UTF-16BE ou UTF-16LE)

5

BLOB

La valeur est un blob de données, stocké exactement comme il a été entré.

La classe de stockage SQLite est légèrement plus générale qu'un type de données. La classe de stockage INTEGER, par exemple, comprend 6 types de données entiers différents de différentes longueurs.

Type d'affinité SQLite

SQLite prend en charge le concept de type affinitysur les colonnes. Toute colonne peut toujours stocker n'importe quel type de données, mais la classe de stockage préférée pour une colonne s'appelle sonaffinity. Chaque colonne de table d'une base de données SQLite3 se voit attribuer l'une des affinités de type suivantes -

Sr.No. Affinité et description
1

TEXT

Cette colonne stocke toutes les données à l'aide des classes de stockage NULL, TEXT ou BLOB.

2

NUMERIC

Cette colonne peut contenir des valeurs utilisant les cinq classes de stockage.

3

INTEGER

Se comporte comme une colonne avec une affinité NUMERIC, avec une exception dans une expression CAST.

4

REAL

Se comporte comme une colonne avec une affinité NUMÉRIQUE sauf qu'elle force les valeurs entières dans une représentation en virgule flottante.

5

NONE

Une colonne avec l'affinité NONE ne préfère pas une classe de stockage à une autre et aucune tentative n'est faite pour forcer les données d'une classe de stockage à une autre.

Affinité SQLite et noms de type

Le tableau suivant répertorie les différents noms de types de données qui peuvent être utilisés lors de la création de tables SQLite3 avec l'affinité appliquée correspondante.

Type de données Affinité
  • INT
  • INTEGER
  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • BIGINT
  • UNSIGNED BIG INT
  • INT2
  • INT8
ENTIER
  • CHARACTER(20)
  • VARCHAR(255)
  • PERSONNAGE VARIABLE (255)
  • NCHAR(55)
  • PERSONNAGE NATIF (70)
  • NVARCHAR(100)
  • TEXT
  • CLOB
TEXTE
  • BLOB
  • aucun type de données spécifié
AUCUN
  • REAL
  • DOUBLE
  • DOUBLE PRECISION
  • FLOAT
RÉEL
  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME
NUMÉRIQUE

Type de données booléen

SQLite n'a pas de classe de stockage booléenne distincte. Au lieu de cela, les valeurs booléennes sont stockées sous forme d'entiers 0 (faux) et 1 (vrai).

Date et heure Type de données

SQLite n'a pas de classe de stockage distincte pour stocker les dates et / ou les heures, mais SQLite est capable de stocker les dates et les heures sous forme de valeurs TEXT, REAL ou INTEGER.

Sr.No. Classe de stockage et format de date
1

TEXT

Une date au format "AAAA-MM-JJ HH: MM: SS.SSS"

2

REAL

Le nombre de jours depuis midi à Greenwich le 24 novembre 4714 av.

3

INTEGER

Le nombre de secondes depuis 1970-01-01 00:00:00 UTC

Vous pouvez choisir de stocker les dates et les heures dans n'importe lequel de ces formats et de convertir librement entre les formats à l'aide des fonctions de date et d'heure intégrées.