L2 Info : Bases de données
 
◃  Ch. 4 Implantation des données avec SQL (DDL)  ▹
 

Les chaînes de caractères

  • Historiquement SQL distingue les chaînes de taille fixe des chaînes de taille variable
    • Enjeux lié à l'époque : optimisation de l'espace mémoire occupée
  • En SQL le marqueur de début et de fin de chaîne est l'apostrophe (') !
    • Exemple : 'une chaîne de caractères'
    • Exemple avec une apostrophe dans la chaîne : 'l''apostrophe en milieu de chaîne est doublée'
    • MySQL accepte les guillements (") comme marqueur de début et de fin
  • On dispose donc de deux types principaux
    • CHAR(n) pour les chaînes de taille fixe (n caractères)
    • VARCHAR(n) pour les chaînes de taille variables (entre 0 et n caractères)
  • Taille maximale des chaînes de caractères :
    • Avec PostgreSQL, la taille maximale d'un CHAR ou d'un VARCHAR est de 10 485 760.
    • Avec MySQL, la taille maximale d'un CHAR est de 255, la taille maximale d'un VARCHAR est de 65 535.
    • Avec Oracle, la taille maximale d'un CHAR est de 2000, la taille maximale d'un VARCHAR est de 4 000 ou 32 767 (selon la configuration du serveur).
  • Autres types disponibles pour les très grandes chaînes :
    • TEXT, CLOB, ...
    • Avantage par rapport à VARCHAR : pas besoin de définir une taille max
  • Gestion des caractères Unicode :
    • NCHAR, NCHAR VARYING, NCLOB
    • compatibilité Unicode d'office avec PostgreSQL et MySQL
    • pas avec Oracle...
  • Encore une spécificité Oracle ?
    • VARCHAR2(n) deuxième version mise en place par Oracle (il y a très longtemps)
    • désormais VARCHAR(n) est synonyme de VARCHAR2(n)