Maison  >  Article  >  base de données  >  Quelle est la différence entre INDEX et KEY dans la création de tables MySQL ?

Quelle est la différence entre INDEX et KEY dans la création de tables MySQL ?

DDD
DDDoriginal
2024-11-26 05:03:10185parcourir

What's the Difference Between INDEX and KEY in MySQL Table Creation?

Comprendre l'équivalence de INDEX et KEY dans MySQL

Lors de la création de tables dans MySQL, vous pouvez rencontrer deux termes pour indexer des données : INDEX et KEY. Bien que ces deux termes servent le même objectif, il existe une différence subtile dans leur utilisation.

Définition de INDEX et KEY

  • INDEX : Un index non unique utilisé pour accélérer les requêtes et améliorer la récupération des données efficacité.
  • CLÉ : Un synonyme d'INDEX. Il a été introduit dans MySQL pour la compatibilité avec d'autres systèmes de bases de données.

Utilisation dans les instructions Create Table

Dans les instructions Create Table, vous pouvez utiliser INDEX ou KEY de manière interchangeable . Par exemple, les deux instructions suivantes sont équivalentes :

CREATE TABLE tasks (
    task_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    parent_id INT UNSIGNED NOT NULL DEFAULT 0,
    task VARCHAR(100) NOT NULL,
    PRIMARY KEY (task_id),
    INDEX parent (parent_id)
);

CREATE TABLE orders (
    order_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    KEY order_date (order_date)
);

Index uniques ou non uniques

Bien que INDEX et KEY puissent créer des index non uniques, il est important de noter que PRIMARY KEY est unique par définition. Cela signifie que la valeur d'une colonne PRIMARY KEY identifie de manière unique chaque ligne de la table. INDEX et KEY, en revanche, autorisent les valeurs en double.

Clé primaire comme KEY

Dans MySQL, vous pouvez définir une CLÉ PRIMAIRE à l'aide du mot-clé KEY. Cependant, il est recommandé d'utiliser explicitement le mot-clé PRIMARY KEY pour éviter toute confusion. Par exemple :

CREATE TABLE customers (
    customer_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    PRIMARY KEY (customer_id)
);

Recommandation

Bien que KEY et INDEX soient synonymes dans MySQL, il est généralement recommandé d'utiliser INDEX car il s'aligne sur la norme ISO SQL et améliore portabilité.

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