Introduction aux types de données SQL

Les types de données en SQL, comme tout autre langage de programmation, définissent le type de données que la colonne ou la variable peut contenir. Le type de données peut être n'importe quoi, d'un caractère à une série de caractères, en passant par des nombres, la date et l'heure. Un type de données est un concept très crucial de la programmation étroitement couplée. Il aide à résoudre la plupart des erreurs de compatibilité de type lors de la compilation du programme lui-même.

Nous catégoriserions largement les types de données SQL, puis explorerions différents types et exemples sous ces catégories.

Remarque - Tous les systèmes de gestion de base de données ne prennent pas en charge tous les types de données. Par exemple, Oracle ne prend pas en charge DateTime. Ces spécificités sont fournies avec la description du type de données dans l'article. Il est conseillé d'en tenir compte lors de la conception de la base de données. De même, il existe de nombreux autres types de données spécifiques à un système de gestion de base de données particulier. Par exemple, MS SQL a un type de données money. Ces types ne sont pas génériques et dépassent le cadre de cet article.

Types de données SQL

1. Binaire

Le type de données binaires contient une séquence de chaînes d'octets binaires. Contrairement aux chaînes de caractères habituelles, les chaînes binaires sont utilisées pour stocker des données non conventionnelles telles que des images.

Binaire (taille): stocke les chaînes d'octets binaires de la longueur de colonne spécifiée par le paramètre de taille. La taille de la colonne est fixe. Si la taille est définie sur 10 octets et que les données stockées sont de 5 octets, les 5 octets restants sont toujours occupés en mémoire par la colonne. Ces octets restants sont remplis de null à droite par la plupart des analyseurs SQL. La taille maximale possible est de 8 000 octets.

Varbinaire (taille): stocke les chaînes d'octets binaires de la longueur de colonne spécifiée par le paramètre de taille. La taille de la colonne n'est pas fixe. Si la taille est définie sur 10 octets et que les données stockées sont de 5 octets, la colonne n'occupe que 5 octets en mémoire. La taille maximale possible est de 8 000 octets.

Varbinaire (max): la spécification du mot clé max dans le paramètre de taille augmente la taille maximale possible à 2 Go et alloue une taille variable aux colonnes en fonction des données stockées. Ce type de données n'est pas pris en charge par MySQL.

Exemple:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

L'erreur se produit car nous avons défini la taille des colonnes sur 5 octets uniquement.

2. Caractère / chaîne

Ces types de données stockent soit un seul caractère, soit une série de caractères formant une chaîne. Il s'agit notamment des caractères, des chiffres et des caractères spéciaux. La nature du ou des caractères est cependant limitée aux caractères non Unicode uniquement.

Char (taille): stocke des chaînes de caractères de longueur fixe de la longueur spécifiée par le paramètre de taille. Le dimensionnement de la colonne fonctionne de manière similaire au type de données BINARY. La taille par défaut est de 1 caractère. Le maximum est de 255 dans la plupart des systèmes de gestion de base de données.

Varchar (taille): stocke les chaînes de caractères de longueur variable. Cependant, la longueur spécifiée par le paramètre size définit la longueur maximale de la colonne. La longueur maximale possible est de 65 535 caractères.

Varchar (max): la spécification du mot clé max dans le paramètre de taille augmente la taille maximale possible à 2 Go et alloue une taille variable aux colonnes en fonction des données stockées. Ce type de données n'est pas pris en charge par MySQL.

Texte: MySQL prend en charge le type de données texte au lieu de varchar (max). Le texte augmente également la taille maximale possible à 2 Go.

Exemple:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Caractère / chaîne Unicode

Ces types de données stockent un seul ou une chaîne de caractères Unicode.

Nchar (taille): il est similaire au type de données char et prend également en charge les caractères Unicode. La limite maximale est cependant réduite à 4000 octets.

Nvarchar (taille): il est similaire au type de données nvarchar et prend également en charge les caractères Unicode. La limite maximale est cependant réduite à 4000 octets.

Nvarchar (max): la spécification du mot clé max dans le paramètre de taille augmente la taille maximale possible à 1 Go et alloue une taille variable aux colonnes en fonction des données stockées. Ce type de données n'est pas pris en charge par MySQL.

Ntext: MySQL prend en charge le type de données ntext au lieu de nvarchar (max). Ntext augmente également la taille maximale possible à 1 Go.

Exemple:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. Numérique

Les types de données numériques prennent en charge les entiers et les nombres réels / fractionnaires / décimaux.

Bit / Bool / Boolean: ces types de données ne stockent que deux valeurs - 0 et 1. 0 signifie faux tandis que 1 signifie vrai. Un peu est pris en charge par la plupart des bases de données. Certaines bases de données avancées prennent également en charge bool et booléen.

INT: Stocke les entiers positifs et négatifs jusqu'à 4 octets. Cela signifie que la valeur doit être dans la plage (-2147483648, 2147483647). La spécification du mot clé unsigned restreint la colonne pour stocker uniquement les valeurs positives dans la plage (0, 4294967295).

TINYINT: stocke les entiers positifs et négatifs jusqu'à 1 octet. Cela signifie que la valeur doit être dans la plage (-128, 127). La spécification du mot clé unsigned restreint la colonne pour stocker uniquement les valeurs positives dans la plage (0, 255).

Smallint: stocke les entiers positifs et négatifs jusqu'à 2 octets. Cela signifie que la valeur doit être dans la plage (-32768, 32767). La spécification du mot clé unsigned restreint la colonne pour stocker uniquement les valeurs positives dans la plage (0, 65535).

Bigint: stocke les entiers positifs et négatifs jusqu'à 8 octets. Cela signifie que la valeur doit être comprise dans la plage (-2 63, 2 63 -1). La spécification du mot clé unsigned restreint la colonne pour stocker uniquement les valeurs positives dans la plage (0, 2 64 -1).

Décimal (taille, D): stocke un nombre à virgule fixe. La taille du paramètre spécifie le nombre total de chiffres, tandis que d spécifie le nombre de chiffres suivant la virgule décimale. Les valeurs par défaut pour size et d sont respectivement 10 et 0.

Float (taille, D) / Double (taille, D): stocke un nombre à virgule flottante. Float est utilisé pour les petits nombres jusqu'à 4 octets. Double stocke un plus grand nombre. Cependant, double n'est pas pris en charge par toutes les bases de données.

Connaissances hors programme - La différence entre les nombres à virgule fixe et à virgule flottante est que le point décimal est fixe dans l'un et flottant dans l'autre. Le point fixe signifie que le nombre de chiffres est fixe après et avant le point décimal. Virgule flottante signifie que le nombre de chiffres avant et après la virgule décimale peut varier par rapport à la signification des chiffres du nombre.

Exemple:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Date et heure

  1. Date: stocke les données au format AAAA-MM-JJ, limité du 1000-01-01 au 9999-12-31.
  2. Heure: enregistre l'heure au format hh: mm: ss.
  3. DateTime: stocke la date et l'heure.
  4. Horodatage: l'horodatage est utilisé pour marquer un horodatage chaque fois qu'une ligne est entrée ou mise à jour dans le tableau. Cela se fait généralement via les mots clés DEFAULT CURRENT_TIMESTAMP et ON UPDATE CURRENT_TIMESTAMP.

Exemple:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Types de données SQL divers

  • CLOB: CLOB signifie Character Large Objects. Ils peuvent contenir des données de caractères jusqu'à 2 Go. Non pris en charge par MySQL cependant. MySQL utilise Text pour obtenir le même résultat.
  • BLOB: BLOB signifie Binary Large Objects. Ils sont utilisés pour stocker des objets binaires d'une taille allant jusqu'à 2 Go. Habituellement, les images sont converties en objets binaires et stockées dans des colonnes BLOB.
  • XML: utilisé pour stocker des données XML.
  • JSON: utilisé pour stocker des données JSON. Non pris en charge par MySQL.

Conclusion - Types de données SQL

Les types de données SQL aident beaucoup à optimiser stratégiquement l'espace de la base de données. Dans un monde numérique, où les données croissent à un rythme exponentiel, un développeur doit choisir judicieusement le type pour chaque bit de données. Cela aide à réduire les coûts engendrés par le stockage massif de données.

Articles recommandés

Ceci est un guide des types de données SQL. Nous discutons ici de l'introduction, des types de données SQL, des caractères / chaînes, des caractères / chaînes Unicode et numériques. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Types de données PostgreSQL
  2. Types d'OLAP
  3. Types de logiciels malveillants
  4. Clause SQL WHERE
  5. Mots-clés PHP
  6. Mots-clés C ++
  7. 3 principaux types de données de PHP avec des exemples
  8. Exemples pour implémenter l'instruction INSERT