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)