SQLite Types de données : Int, Text, Numeric, Real, Blob
⚡ Résumé intelligent
SQLite Les types de données fonctionnent différemment des autres bases de données car SQLite utilise des types dynamiquesping, stockant n'importe quelle valeur dans n'importe quelle colonne. Les classes de stockage, l'affinité de type et les noms de types déclarés déterminent ensemble comment chaque valeur est physiquement enregistrée sur le disque.

Les sections ci-dessous expliquent comment SQLite Il aborde les types de données, en commençant par les cinq classes de stockage, puis l'affinité de type et ses règles d'affectation, et enfin des exemples pratiques de stockage d'entiers, de nombres réels, de BLOB, de booléens et de dates.
Types de données dans SQLite diffèrent de celles des autres systèmes de gestion de bases de données. SQLiteVous 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.
SQLite Il n'y a pas de types prédéfinis ; vous pouvez stocker n'importe quel type de données dans n'importe quelle colonne. C'est ce qu'on appelle le typage dynamique.ping.
Dans les types statiques, comme dans d'autres systèmes de gestion de bases de données, si vous déclarez une colonne de type entier, vous ne pouvez insérer que des valeurs de type entier. Cependant, dans les types dynamiques, comme dans SQLiteLe type de la colonne est déterminé par la valeur insérée, puis SQLite stocke cette valeur en fonction de son type.
SQLite Classes de stockage
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. 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 d'entier signé (elle peut contenir des valeurs entières positives et négatives). Les valeurs INTEGER dans SQLite sont stockés 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 celles-ci sont stockées sur 8 octets.
- TEXTE – stocke des chaînes de caractères. Il prend également en charge différents encodages tels que UTF-8, UTF-16BE ou UTF-16LE.
- 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.
SQLite Type d'affinité
Il est recommandé de stocker des données de type similaire dans une colonne. Toutefois, vous pouvez y stocker tout type de données ; ces types sont recommandés, mais 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éess.
Toute colonne déclarée dans un SQLite Une affinité de type est attribuée à la base de données en fonction de son type de données déclaré. Voici la liste des affinités de type : SQLite:
- TEXTE.
- NUMÉRIQUE.
- ENTIER.
- RÉEL.
- GOUTTE.
Voici comment SQLite détermine l'affinité d'une colonne à partir de son type de données déclaré :
- L'affinité INTEGER est attribuée si le type déclaré contient le string « INT ».
- L'affinité TEXT est attribuée si la colonne contient dans 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.
- 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.
- L'affinité REAL est attribuée si le type contient l'une des chaînes suivantes : « DOUB », « REAL » ou « FLOAT ».
- L'affinité NUMÉRIQUE est attribuée pour tout autre type de données.
Vous trouverez également ci-dessous un tableau présentant quelques exemples de la carte.ping jusqu'à fois SQLite types de données et leurs affinités déterminées par ces règles :
Exemples de stockage de types de données dans SQLite
Stockage des nombres avec SQLite INTEGER
Si une colonne possède un type de données contenant le mot « INT », elle se verra attribuer une affinité de type INTEGER et sera stockée dans une classe de stockage INTEGER.
Tous les types de données suivants se voient attribuer une affinité de type INTEGER :
- INT, ENTIER, BIGINT.
- INT2, INT4, INT8.
- PETIT INT, PETIT INT, INT MOYEN.
Affinité de type INTEGER dans SQLite peut contenir n'importe quel nombre entier attribué (positif ou négatif) de 1 octet jusqu'à un maximum de 8 octets.
Stockage des nombres avec SQLite REAL
Les nombres RÉELS sont des nombres à double précision en virgule flottante. SQLite stocke les nombres réels sous forme de tableau de 8 octets. Voici la liste des types de données : SQLite que vous pouvez utiliser pour stocker des nombres RÉELS :
- RÉEL.
- DOUBLE.
- DOUBLE PRÉCISION.
- FLOTTER.
Stocker des données volumineuses avec SQLite BLOB
Il n'existe qu'une seule façon de stocker des fichiers volumineux dans un SQLite La base de données utilise le type de données BLOB. Ce type permet de stocker des fichiers volumineux, comme des images ou des fichiers de tout type. Le fichier est converti en un tableau d'octets, puis stocké avec la même taille que le fichier d'entrée.
Stockage SQLite Booleans
SQLite Il n'existe pas de classe de stockage BOOLEAN distincte. Les valeurs BOOLEAN sont stockées sous forme d'INTEGERS, 0 représentant faux et 1 représentant vrai.
Stockage SQLite dates et heures
Vous pouvez déclarer des dates ou des dates-heures dans SQLite en utilisant l’un des types de données suivants :
- le DATE at
- Datetime
- TIMESTAMP
- TIME[DM
Notez qu'il n'existe pas de classe de stockage DATE ou DATETIME distincte dans SQLiteEn revanche, 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 insérez la valeur de la date au format d'une chaîne ISO8601 (« AAAA-MM-JJ HH:MM:SS.SSS »).
- REAL – si vous insérez la valeur de date sous forme de numéro de jour julien, le nombre de jours écoulés depuis midi à Greenwich le 24 novembre 4714 avant J.-C. La valeur de date est alors stockée comme RÉEL.
- INTEGER - comme Unix Heure, le nombre de secondes depuis le 1970/01/01 00:00:00 UTC.

