Types de données SQLite avec exemple : Int, Texte, Numérique, Réel, Blob

Les types de données dans SQLite sont différents de ceux des autres systèmes de gestion de bases de données. Dans SQLite, vous pouvez déclarer normalement des types de données, mais vous pouvez toujours stocker n'importe quelle valeur dans n'importe quel type de données.

SQLite est moins typé. Il n'y a pas de types de données, vous pouvez stocker n'importe quel type de données dans n'importe quelle colonne. C'est ce qu'on appelle les types dynamiques.

Dans les types statiques, comme dans d'autres systèmes de gestion de bases de données, si vous avez déclaré une colonne avec un type de données entier, vous ne pouvez insérer que des valeurs de type de données entier. Cependant, dans les types dynamiques comme dans SQLite, le type de la colonne est déterminé par la valeur insérée. Et puis SQLite stocke cette valeur en fonction de son type.

Classes de stockage SQLite

In SQLite il existe différentes méthodes de stockage selon le type de valeur, ces différentes méthodes de stockage sont appelées classes de stockage dans SQLite.

Le following sont les classes de stockage disponibles dans SQLite :

  • NULL – cette classe de stockage est utilisée pour stocker toute valeur NULL.
  • INTEGER – toute valeur numérique est stockée sous forme de valeur entière signée (elle peut contenir des valeurs entières positives et négatives). Les valeurs INTEGER dans SQLite sont stockées sur 1, 2, 3, 4, 6 ou 8 octets de stockage en fonction de la valeur du nombre.
  • REAL – cette classe de stockage est utilisée pour stocker les valeurs à virgule flottante, et elles sont stockées dans un stockage de 8 octets.
  • TEXTE – stocke les chaînes de texte. Il prend également en charge différents codages comme UTF-8, UTF-16 BE ou UTF-26LE.
  • BLOB – utilisé pour stocker des fichiers volumineux, comme des images ou des fichiers texte. La valeur est stockée sous forme de tableau d'octets identique à la valeur d'entrée.

Type d'affinité SQLite

L'affinité de type est le type recommandé de données stockées dans une colonne. Cependant, vous pouvez toujours stocker n'importe quel type de données à votre guise, ces types sont recommandés et non obligatoires.

Ces types ont été introduits dans SQLite pour maximiser la compatibilité entre SQLite et d'autres système de gestion de base de données.

Toute colonne déclarée dans une base de données SQLite se voit attribuer une affinité de type en fonction du type de données déclaré. Voici l'ascenseur des affinités de type dans SQLite :

  • TEXTE.
  • NUMÉRIQUE.
  • ENTIER.
  • RÉEL.
  • GOUTTE.

Voici comment SQLite détermine l'affinité de la colonne à partir de son type de données déclaré :

  1. L'affinité INTEGER est attribuée si le type déclaré contient le un magnifique "INT" .
  2. L'affinité TEXTE est attribuée si la colonne contient sur son type de données l'un des éléments suivantswing chaînes "TEXTE","CARBONISER, ou "CLOB« . Par exemple, le type VARCHAR se verra attribuer l'affinité TEXT.
  3. L'affinité BLOB est attribuée si la colonne n'a aucun type spécifié ou si le type de données est un BLOB.
  4. L'affinité RÉELLE est attribuée si le type contient l'un des éléments suivantswing chaînes "DOUBLE","REAL, ou "FLOAT" .
  5. L'affinité NUMÉRIQUE est attribuée pour tout autre type de données.

Il y a aussi un tableau sur la même page.wing quelques exemples de mappage entre les types de données SQLite et leurs affinités déterminées par ces règles :

Type d'affinité SQLite
Mappage entre les types de données SQLite et les affinités

Exemples de stockage de types de données dans SQLite

Stockage du numéro avec un entier SQLite

Toute colonne de type de données contient le mot « INT », elle se verra attribuer une affinité de type INTEGER. Il sera stocké dans une classe de stockage INTEGER.

Tout le suiviwing les types de données sont attribués sous forme d'affinité de type INTEGER :

  • INT, ENTIER, BIGINT.
  • INT2, INT4, INT8.
  • TINYINT, PETIT, MOYEN INT.

L'affinité de type INTEGER dans SQLite peut contenir n'importe quel nombre entier attribué (positif ou négatif) de 1 octet à 8 octets maximum.

Stockage de nombres avec SQLite REAL

Les nombres VRAIS sont le nombre avec double précision des virgules flottantes. SQLite a stocké les nombres réels sous forme de tableau de 8 octets. Voici la liste des types de données dans SQLite que vous pouvez utiliser pour stocker de VRAIS nombres :

  • RÉEL.
  • DOUBLE.
  • DOUBLE PRÉCISION.
  • FLOTTER.

Stockage de données volumineuses avec SQLite BLOB

Il n’existe qu’une seule façon de stocker des fichiers volumineux dans une base de données SQLite : utiliser le type de données BLOB. Ce type de données est utilisé pour stocker des fichiers volumineux comme des images, des fichiers (de n'importe quel type), etc. Le fichier est converti en tableau d'octets puis stocké dans la même taille que le fichier d'entrée.

Stockage des booléens SQLite

SQLite n'a pas de classe de stockage BOOLEAN distincte. Cependant, les valeurs BOOLÉENNES sont stockées sous forme d'ENTIERS avec les valeurs 0 (comme faux) ou 1 (comme vrai).

Stockage des dates et heures SQLite

Vous pouvez déclarer la date ou l'heure dans SQLite en utilisant l'un des éléments suivantswing Types de données:

  • DATES
  • Datetime
  • TIMESTAMP

Notez qu’il n’existe pas de classe de stockage DATE ou DATETIME distincte dans SQLite. Au lieu de cela, toutes les valeurs déclarées avec l'un des types de données précédents sont stockées dans une classe de stockage en fonction du format de date de la valeur insérée comme suit.wing:

  • TEXTE – si vous avez inséré la valeur de date au format de la chaîne ISO8601 (« AAAA-MM-JJ HH:MM:SS.SSS »).
  • REAL – si vous insérez la valeur de date dans les nombres de jours juliens, le nombre de jours depuis midi à Greenwich le 24 novembre 4714 avant JC. La valeur de date serait alors stockée sous la forme REAL.
  • INTEGER as Unix Heure, le nombre de secondes depuis le 1970/01/01 00:00:00 UTC.

Résumé

SQLite prend en charge un large éventail de types de données. Mais en même temps, il est très flexible en ce qui concerne les types de données. Vous pouvez mettre n’importe quel type de valeur dans n’importe quel type de données. SQLite a également introduit de nouveaux concepts dans les types de données tels que l'affinité de type et les classes de stockage, contrairement à d'autres systèmes de gestion de bases de données.