Maison >base de données >tutoriel mysql >CHAR vs VARCHAR dans SQL : explication des principales différences

CHAR vs VARCHAR dans SQL : explication des principales différences

Linda Hamilton
Linda Hamiltonoriginal
2024-12-22 03:57:15446parcourir

CHAR vs VARCHAR in SQL: Key Differences Explained

Différence entre CHAR et VARCHAR en SQL

CHAR et VARCHAR sont tous deux utilisés pour stocker des chaînes de caractères dans SQL, mais ils diffèrent considérablement en termes de stockage, de performances et d'utilisation. Voici une comparaison détaillée :


1. Définition

  • CHAR :

    Un type de données caractère de longueur fixe. Il utilise toujours une quantité fixe d'espace de stockage, quelle que soit la longueur des données stockées.

  • VARCHAR :

    Un type de données caractère de longueur variable. Le stockage utilisé dépend de la longueur réelle des données stockées.


2. Comportement de stockage

  • CHAR :

    • Alloue la taille maximale définie pour chaque valeur.
    • Si la chaîne stockée est plus courte que la taille définie, elle est complétée par des espaces pour remplir l'espace restant.
    • Exemple : CHAR(10) utilisera toujours 10 octets, même si la chaîne est "Bonjour" (5 octets).
  • VARCHAR :

    • Utilise uniquement la quantité de stockage nécessaire pour la chaîne, plus 1 ou 2 octets supplémentaires pour stocker la longueur de la chaîne.
    • Exemple : VARCHAR(10) stockant "Bonjour" (5 octets) utilisera 6 ou 7 octets (5 pour la chaîne 1/2 pour la longueur).

3. Performances

  • CHAR :

    • Plus rapide pour les chaînes de longueur fixe car la longueur est prédéterminée et il n'est pas nécessaire de gérer les longueurs variables lors de la récupération des données.
    • Idéal pour stocker des données avec des longueurs constantes, telles que des codes postaux ou des codes de pays.
  • VARCHAR :

    • Plus efficace en termes de stockage pour les données de longueur variable mais légèrement plus lent pour les opérations en raison de la surcharge liée à la gestion de la longueur.

4. Cas d'utilisation

  • CHAR :

    • Idéal pour les données de longueur fixe telles que :
    • Codes pays (par exemple, "US", "UK")
    • Codes postaux
    • Codes produits
    • Assure un stockage et une récupération cohérents.
  • VARCHAR :

    • Convient aux données de longueur variable telles que :
    • Noms (par exemple, « John », « Alexander »)
    • Adresses e-mail
    • Descriptions ou commentaires

5. Longueur maximale

  • CHAR :

    • Prend en charge jusqu'à 255 caractères (selon le système de base de données).
  • VARCHAR :

    • Peut stocker jusqu'à 65 535 caractères dans certains systèmes de base de données (par exemple, MySQL), mais le maximum réel dépend de la taille des lignes et du moteur de base de données.

6. Exemples

Utilisation de CHAR :

CREATE TABLE countries (
    country_code CHAR(3) NOT NULL
);

INSERT INTO countries (country_code) VALUES ('US'), ('UK'), ('IN');
  • Même si « US » est stocké, il occupera 3 octets (« US » avec remplissage).

Utilisation de VARCHAR :

CREATE TABLE users (
    username VARCHAR(50)
);

INSERT INTO users (username) VALUES ('Alice'), ('Alexander');
  • "Alice" occupe 6 octets (5 octets pour la chaîne 1 pour la longueur), et "Alexander" occupe 10 octets.

7. Tableau récapitulatif

Aspect CHAR VARCHAR
Length Fixed-length Variable-length
Storage Always uses the defined size. Uses only the required size length metadata.
Performance Faster for fixed-length strings. Slightly slower due to length management.
Padding Pads with spaces for shorter data. No padding; stores exact string.
Use Case Fixed-length data. Variable-length data.
Max Length 255 characters. Up to 65,535 characters.
Aspect
CHAR

VARCHAR
ête> Longueur
    Longueur fixe Longueur variable
  • Stockage
  • Utilise toujours la taille définie. Utilise uniquement les métadonnées de taille et de longueur requises. Performances Plus rapide pour les chaînes de longueur fixe. Légèrement plus lent en raison de la gestion de la longueur.
  • Rembourrage
  • Blocs avec des espaces pour les données plus courtes. Pas de remplissage ; stocke la chaîne exacte. Cas d'utilisation Données de longueur fixe. Données de longueur variable. Longueur maximale

    255 caractères. Jusqu'à 65 535 caractères.

    Conclusion
    Utilisez CHAR pour les données de longueur fixe où la cohérence de la taille est cruciale et où l'efficacité du stockage n'est pas une préoccupation majeure. Utilisez VARCHAR pour les données de longueur variable afin d'économiser de l'espace de stockage et de gérer des longueurs de chaînes flexibles. Bonjour, je m'appelle Abhay Singh Kathayat ! Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales. N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn