Code SQL copié dans le presse-papiers
Maîtrisez les types de données SQL avec ce guide ! Découvrez les types numériques (INTEGER, DECIMAL, FLOAT), les types de chaînes (CHAR, VARCHAR, TEXT), les types date/heure (DATE, TIME, DATETIME) et d'autres types essentiels comme BOOLEAN, BLOB et JSON. Apprenez à choisir le type approprié pour une conception optimale de la base de données et à gérer efficacement les valeurs NULL.
RU EN PT

Leçon 1.3 : Types de données de base en SQL

En SQL, les types de données spécifient le type d'informations qui peut être stocké dans une colonne. Choisir le type de données approprié est crucial pour l'intégrité des données, l'efficacité du stockage et les performances des requêtes. Cette leçon couvre les types de données courants et leurs sous-types utilisés dans les bases de données SQL, ainsi que leurs plages de valeurs.

Types numériques

Les types numériques servent à stocker des valeurs numériques.

INTEGER

  • Stocke des nombres entiers.
  • Sous-types :
    • INT ou INTEGER : généralement un entier sur 4 octets.
    • SMALLINT : généralement 2 octets.
    • BIGINT : généralement 8 octets.
    • TINYINT : généralement 1 octet.
  • Plages (approximatives, peuvent varier selon le SGBD) :
    • TINYINT : -128 à 127 (signe) ou 0 à 255 (non signé)
    • SMALLINT : -32 768 à 32 767
    • INT : -2 147 483 648 à 2 147 483 647
    • BIGINT : -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807

DECIMAL / NUMERIC

  • Stocke des valeurs numériques exactes avec une précision et une échelle spécifiées.
  • Précision : nombre total de chiffres.
  • Échelle : nombre de chiffres à droite de la virgule.
  • Exemple : DECIMAL(10, 2) peut stocker des nombres avec 10 chiffres au total, dont 2 après la virgule.
  • Plage : dépend de la précision et de l'échelle.

FLOAT / REAL

  • Stocke des valeurs numériques approximatives en virgule flottante.
  • Sous-types :
    • FLOAT : nombre en simple précision.
    • DOUBLE / DOUBLE PRECISION : double précision.
    • REAL : synonyme de FLOAT dans certains SGBD.
  • Plage : varie selon l'implémentation, mais couvre généralement une large plage de valeurs avec une précision limitée.

Types de caractères / chaînes

Les types de caractères sont utilisés pour stocker du texte.

CHAR

  • Stocke des chaînes de caractères à longueur fixe.
  • La longueur est spécifiée lors de la définition de la colonne.
  • Exemple : CHAR(10) stocke des chaînes de exactement 10 caractères.
  • Si la chaîne stockée est plus courte que la longueur spécifiée, elle est complétée par des espaces.

VARCHAR

  • Stocke des chaînes de longueur variable.
  • On spécifie la longueur maximale lors de la définition.
  • Exemple : VARCHAR(255) stocke des chaînes jusqu'à 255 caractères.
  • N'utilise que l'espace nécessaire pour stocker la chaîne réelle.

TEXT

  • Stocke de grandes chaînes de longueur variable.
  • Souvent utilisé pour stocker des documents, des articles ou d'autres textes volumineux.
  • La longueur maximale est généralement bien plus grande que pour VARCHAR.

Types Date et Heure

Les types date et heure servent à stocker des valeurs temporelles.

DATE

  • Stocke une date (année, mois, jour).
  • Format : varie selon le SGBD (par ex. YYYY-MM-DD).

TIME

  • Stocke une heure (heure, minute, seconde).
  • Format : varie selon le SGBD (par ex. HH:MM:SS).

DATETIME / TIMESTAMP

  • Stocke à la fois la date et l'heure.
  • Format : varie selon le SGBD (par ex. YYYY-MM-DD HH:MM:SS).
  • TIMESTAMP a souvent un comportement spécial lié aux fuseaux horaires et aux mises à jour automatiques.

Type Booléen

BOOLEAN

  • Stocke des valeurs vrai/faux.
  • Certains SGBD peuvent représenter les booléens par des entiers (p.ex. 0 pour false, 1 pour true).

Autres Types

BLOB (Binary Large Object)

  • Stocke des données binaires, comme des images, de l'audio ou de la vidéo.

JSON

  • Stocke des données au format JSON (JavaScript Object Notation).
  • Permet de conserver des données semi-structurées au sein d'une colonne de la base de données.

Valeurs NULL

Il est important de comprendre le concept de NULL en SQL. NULL représente une valeur manquante ou inconnue. Une colonne peut être définie pour autoriser ou non les NULL. Contrairement aux autres types, NULL n'est pas un type de données en soi, mais plutôt une propriété d'une colonne. Il est crucial de gérer correctement les valeurs NULL dans les requêtes pour éviter des résultats inattendus. Les comparaisons avec NULL doivent s'effectuer en utilisant IS NULL ou IS NOT NULL.

Choisir le bon type de données

  • Tenez compte du type de données que vous devez stocker (numérique, texte, date/heure, etc.).
  • Choisissez le plus petit type de données qui puisse contenir la plage de valeurs attendue.
  • Utilisez VARCHAR plutôt que CHAR sauf si vous avez besoin de chaînes à longueur fixe.
  • Utilisez DECIMAL pour les valeurs numériques exactes, en particulier pour les montants monétaires.
  • Informez-vous sur les types spécifiques et leur comportement dans votre système de gestion de base de données.

En comprenant les types de données disponibles et leurs caractéristiques, vous pouvez concevoir des bases de données efficaces, fiables et faciles à maintenir.

Points clés de cette leçon :

  • Les types de données comptent : sélectionner le type approprié est essentiel pour l'intégrité des données, l'efficacité du stockage et les performances des requêtes.
  • Types numériques : INTEGER, DECIMAL et FLOAT sont utilisés pour stocker des nombres, chacun avec des caractéristiques différentes de précision et de plage.
  • Types de chaînes : CHAR, VARCHAR et TEXT servent à stocker du texte, avec des contraintes de longueur et des implications de stockage différentes.
  • Types date/heure : DATE, TIME et DATETIME sont utilisés pour stocker des données temporelles.
  • Autres types : BOOLEAN, BLOB et JSON permettent de stocker respectivement des booléens, des données binaires et des données semi-structurées.
  • Valeurs NULL : NULL représente une valeur manquante ou inconnue et nécessite une gestion explicite.
  • Choisir judicieusement : tenez compte de la nature des données, de la précision requise et des implications sur le stockage lors du choix d'un type de données.