Le VARCHAR (en : variable character field) est un type de données utilisé par les systèmes de gestion de base de données (SGBD) pour stocker des chaînes de caractères de longueur variable. Contrairement aux types à longueur fixe comme CHAR, VARCHAR alloue dynamiquement l'espace mémoire en fonction de la taille réelle de la chaîne stockée, optimisant ainsi l'utilisation de l'espace de stockage. Cependant, une limite maximale doit être définie pour éviter une allocation excessive[1].
NVARCHAR
Le NVARCHAR est une variante de VARCHAR qui prend en charge l’encodage Unicode, permettant de stocker des caractères dans plusieurs langues sans dépendre de la page de codes du serveur. Son utilisation est particulièrement adaptée aux bases de données nécessitant une gestion multilingue.
En fonction du SGBD et du besoin d'encodage Unicode, le choix entre varchar
et nvarchar
peut influencer les performances et l’espace de stockage utilisé[2].
Les limites de VARCHAR varient selon les SGBD :
- PostgreSQL : jusqu'à 1 Go par valeur
- Oracle 11g : 4 000 octets[3]
- MySQL 5.7 : 65 535 octets (pour l’ensemble de la ligne)[4]
- SQL Server 2008 : 8 000 octets (ou 2 Go avec
VARCHAR(MAX)
)
CHAR
Le CHAR (character) est un type de données de longueur fixe utilisé pour stocker des chaînes de caractères. Contrairement à VARCHAR, il alloue systématiquement la totalité de l’espace défini, même si la chaîne stockée est plus courte, ce qui peut entraîner un gaspillage d’espace mais améliore parfois les performances en lecture.
Les limites de CHAR varient selon les SGBD :
- PostgreSQL : jusqu'à 1 Go par valeur
- Oracle 11g : 2 000 octets
- MySQL 5.7 : 255 octets
- SQL Server 2008 : 8 000 octets
Notes et références
- ↑ (en-US) MikeRayMSFT, « char and varchar (Transact-SQL) - SQL Server », sur learn.microsoft.com, (consulté le )
- ↑ (en-US) Sherlee Dizon, « SQL Server differences of char, nchar, varchar and nvarchar data types », sur MSSQLTips.com, (consulté le )
- ↑ (en) « Database Concepts », sur docs.oracle.com (consulté le )
- ↑ « MySQL :: MySQL 5.7 Reference Manual :: 11.3.2 The CHAR and VARCHAR Types », sur dev.mysql.com (consulté le )