Types de données SQLite avec exemple

Table des matières:

Anonim

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

Dans ce didacticiel, vous apprendrez-

  • Classes de stockage
  • Type d'affinité
  • Exemples de stockage de types de données dans SQLite

SQLite est moins tapé. Il n'y a pas de types de données, vous pouvez stocker n'importe quel type de données que vous aimez 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 base de données, si vous avez déclaré une colonne avec un entier de type de données, 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

Dans SQLite, il existe différentes méthodes de stockage en fonction du type de valeur, ces différentes méthodes de stockage sont appelées classes de stockage dans SQLite.

Voici 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 dans 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.
  • TEXT - stocke les chaînes de texte. Il prend également en charge différents encodages tels que 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 de la même manière que 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 comme vous le souhaitez, ces types ne sont pas recommandés.

Ces types ont été introduits dans SQLite pour maximiser la compatibilité entre SQLite et d'autres systèmes 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'ascension 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 la chaîne " INT ".
  2. L'affinité TEXT est attribuée si la colonne contient sur son type de données l'une des chaînes suivantes " TEXT ", " CHAR 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é REAL est attribuée si le type contient l'une des chaînes suivantes " DOUB ", " REAL ou" FLOAT ".
  5. L'affinité NUMERIC est attribuée à tout autre type de données.

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

Exemples de stockage de types de données dans SQLite:

Numéro de stockage avec un entier SQLite:

Toute colonne de type de données contient le mot "INT", une affinité de type INTEGER lui sera attribuée. Il sera stocké dans une classe de stockage INTEGER.

Tous les types de données suivants sont affectés en tant qu'affinité de type INTEGER:

  • INT, INTEGER, 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.

Stocker des nombres avec SQLite REAL:

Les nombres REAL sont le nombre avec une précision à double virgule flottante. SQLite stockait 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 des nombres RÉELS:

  • RÉEL.
  • DOUBLE.
  • DOUBLE PRECISION.
  • FLOTTER.

Stockage de données volumineuses avec SQLite BLOB:

Il n'y a qu'une seule façon de stocker des fichiers volumineux dans une base de données SQLite, et il utilise le type de données BLOB. Ce type de données est utilisé pour stocker des fichiers volumineux tels que des images, des fichiers (de tout 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 BOOLEAN sont stockées en tant que INTEGERS avec les valeurs 0 (comme faux) ou 1 (comme vrai).

Stockage des dates et heures SQLite:

Vous pouvez déclarer des dates ou des heures dans SQLite à l'aide de l'un des types de données suivants:

  • DATE
  • DATETIME
  • HORAIRE
  • TEMPS

Notez qu'il n'y a 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:

  • 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 avez inséré la valeur de la date dans les numéros de jour julien, le nombre de jours depuis midi à Greenwich le 24 novembre 4714 av.
  • INTEGER comme heure Unix, le nombre de secondes depuis le 01/01/1970 à 00:00:00 UTC.

Résumé:

SQLite prend en charge une large gamme 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 base de données.