首頁 >資料庫 >mysql教程 >MySQL建表中INDEX和KEY有什麼差別?

MySQL建表中INDEX和KEY有什麼差別?

DDD
DDD原創
2024-11-26 05:03:10301瀏覽

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

理解MySQL 中INDEX 和KEY 的等價

在MySQL 中建立表格時,可能會遇到兩個用於索引資料的術語:INDEX 和KEY 。雖然這兩個術語具有相同的目的,但它們的用法有細微的差別。

INDEX 和 KEY 的定義

  • INDEX: 用於加速查詢和改進資料擷取的非唯一索引效率。
  • KEY: INDEX 的同義字。 MySQL 中引入它是為了與其他資料庫系統相容。

Create Table 語句中的用法

在 Create Table 語句中,可以互換使用 INDEX 或 KEY 。例如,以下兩個語句是等效的:

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 和KEY 都可以建立非唯一索引,值得注意的是,主鍵根據定義是唯一的。這表示 PRIMARY KEY 欄位中的值唯一標識表中的每一行。另一方面,INDEX 和 KEY 允許重複值。

主鍵作為 KEY

在 MySQL 中,您可以使用 KEY 關鍵字定義主鍵。但是,建議明確使用 PRIMARY KEY 關鍵字以避免混淆。例如:

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

推薦

雖然KEY 和INDEX 在MySQL 中是同義詞,但通常建議使用INDEX,因為它符合ISO SQL 標準並改進便攜性。

以上是MySQL建表中INDEX和KEY有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn