最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL主鍵作用與使用方法詳解

 更新時(shí)間:2026年01月24日 08:42:08   作者:Algebraaaaa  
主鍵是數(shù)據(jù)庫(kù)表中的一個(gè)或多個(gè)字段(列),它的值用于唯一地標(biāo)識(shí)表中的某一條記錄,這篇文章主要介紹了MySQL主鍵作用與使用方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在 MySQL 數(shù)據(jù)庫(kù)中,主鍵(Primary Key) 是表結(jié)構(gòu)設(shè)計(jì)中最重要的約束之一。它不僅是數(shù)據(jù)唯一性的保障,也是多表關(guān)聯(lián)、查詢優(yōu)化的核心工具。本文將從 主鍵的作用主鍵的用法 兩個(gè)方面進(jìn)行講解,并配合代碼示例幫助理解

一、主鍵的作用

1. 唯一標(biāo)識(shí)記錄

主鍵的主要作用是唯一標(biāo)識(shí)表中的每一行數(shù)據(jù)

  • 主鍵列的值必須 唯一(Unique)

  • 主鍵列的值不能 為空(NOT NULL)

示例

CREATE TABLE users (
    id INT PRIMARY KEY,        -- 主鍵
    username VARCHAR(50),
    email VARCHAR(100)
);

INSERT INTO users (id, username, email) VALUES
(1, 'Alice', 'alice@example.com'),
(2, 'Bob',   'bob@example.com');

此時(shí) id 作為主鍵,不能重復(fù),也不能為 NULL
如果你執(zhí)行:

INSERT INTO users (id, username, email) VALUES (1, 'Charlie', 'charlie@example.com');

會(huì)報(bào)錯(cuò):

Duplicate entry '1' for key 'PRIMARY'

2. 保證數(shù)據(jù)完整性

主鍵約束能有效防止重復(fù)數(shù)據(jù)出現(xiàn),從而保證數(shù)據(jù)的一致性

示例

CREATE TABLE customers (
    email VARCHAR(100) PRIMARY KEY,
    name  VARCHAR(50)
);

此時(shí)任何兩行都不能有相同的 email,避免一個(gè)郵箱重復(fù)注冊(cè)。

3. 作為外鍵的目標(biāo)

主鍵是外鍵關(guān)聯(lián)的基礎(chǔ)。其他表的外鍵字段通常引用某個(gè)表的主鍵,從而建立 一對(duì)多多對(duì)多 關(guān)系。

示例

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id  INT,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

這樣 orders.user_id 必須是 users.id 中已存在的值,防止出現(xiàn)無(wú)效的訂單記錄

4. 提高查詢性能

InnoDB 存儲(chǔ)引擎中,主鍵會(huì)自動(dòng)創(chuàng)建 聚簇索引(Clustered Index),數(shù)據(jù)存儲(chǔ)會(huì)按主鍵順序組織

查詢時(shí),如果條件中包含主鍵,MySQL 可以直接定位到目標(biāo)行,而無(wú)需全表掃描

示例

SELECT * FROM users WHERE id = 2;

會(huì)直接通過(guò)主鍵索引定位到目標(biāo)行,速度非??臁?/p>

二、主鍵的使用方法

1. 創(chuàng)建表時(shí)定義主鍵

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    name       VARCHAR(100),
    price      DECIMAL(10,2)
);

2. 創(chuàng)建表后添加主鍵

ALTER TABLE products
ADD PRIMARY KEY (product_id);

3. 復(fù)合主鍵(多個(gè)列組成主鍵)

當(dāng)單一字段不足以唯一標(biāo)識(shí)一行數(shù)據(jù)時(shí),可以使用 復(fù)合主鍵。

CREATE TABLE order_items (
    order_id INT,
    product_id INT,
    quantity INT,
    PRIMARY KEY (order_id, product_id)
);

此時(shí) order_idproduct_id 的組合必須唯一。

4. 自增主鍵(AUTO_INCREMENT)

讓主鍵自動(dòng)遞增,避免手動(dòng)輸入 ID:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50),
    email VARCHAR(100)
);

5. 刪除主鍵

ALTER TABLE products
DROP PRIMARY KEY;

總結(jié) 

到此這篇關(guān)于MySQL主鍵作用與使用方法的文章就介紹到這了,更多相關(guān)MySQL主鍵使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL?數(shù)據(jù)庫(kù)范式化設(shè)計(jì)理論總結(jié)

    MySQL?數(shù)據(jù)庫(kù)范式化設(shè)計(jì)理論總結(jié)

    這篇文章主要介紹了MySQL?數(shù)據(jù)庫(kù)范式設(shè)計(jì)理論總結(jié),數(shù)據(jù)庫(kù)的規(guī)劃化范式設(shè)計(jì),在邏輯結(jié)構(gòu)上可以讓結(jié)構(gòu)更加細(xì)粒度,容易理解,下文我們就來(lái)了解具體的內(nèi)容介紹吧
    2022-04-04
  • Mysql中的存儲(chǔ)過(guò)程超詳細(xì)講解

    Mysql中的存儲(chǔ)過(guò)程超詳細(xì)講解

    這篇文章主要介紹了Mysql中的存儲(chǔ)過(guò)程超詳細(xì)講解,包括存儲(chǔ)過(guò)程基本語(yǔ)法,感興趣的朋友一起看看吧
    2025-04-04
  • MySQL庫(kù)的基礎(chǔ)操作入門(mén)案例詳解

    MySQL庫(kù)的基礎(chǔ)操作入門(mén)案例詳解

    這篇文章主要介紹了MySQL庫(kù)的基礎(chǔ)操作入門(mén)案例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-05-05
  • mysql解決遠(yuǎn)程不能訪問(wèn)的二種方法

    mysql解決遠(yuǎn)程不能訪問(wèn)的二種方法

    mysql解決遠(yuǎn)程不能訪問(wèn)的二種方法,需要的朋友可以參考一下
    2013-04-04
  • mysql中insert ignore、insert和replace的區(qū)別及說(shuō)明

    mysql中insert ignore、insert和replace的區(qū)別及說(shuō)明

    這篇文章主要介紹了mysql中insert ignore、insert和replace的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 簡(jiǎn)單介紹下MYSQL的索引類型

    簡(jiǎn)單介紹下MYSQL的索引類型

    本文介紹了七種MySQL索引類型。在數(shù)據(jù)庫(kù)表中,對(duì)字段建立索引可以大大提高查詢速度。通過(guò)善用這些索引,可以令MySQL的查詢和運(yùn)行更加高效。
    2015-07-07
  • 一文帶你徹底了解MySQL事務(wù)機(jī)制

    一文帶你徹底了解MySQL事務(wù)機(jī)制

    一個(gè)事情由n個(gè)單元組成,這n個(gè)單元在執(zhí)行過(guò)程中,要么同時(shí)成功,要么同時(shí)失敗,這就把n個(gè)單元放在了一個(gè)事務(wù)之中,這篇文章主要給大家詳細(xì)介紹MySQL的事務(wù)機(jī)制,感興趣的同學(xué)歡迎閱讀本文
    2023-06-06
  • MySQL 5.5.x my.cnf參數(shù)配置優(yōu)化詳解

    MySQL 5.5.x my.cnf參數(shù)配置優(yōu)化詳解

    今天正好看到一篇有關(guān)my.cnf優(yōu)化的總結(jié),雖然還沒(méi)經(jīng)過(guò)我自己的實(shí)踐檢驗(yàn),但從文章內(nèi)容來(lái)說(shuō)已經(jīng)寫(xiě)的很詳細(xì)了(當(dāng)然,事實(shí)上下面這篇文章很多地方只是翻譯了my.cnf原始配置文件的說(shuō)明,呵呵),所以特地轉(zhuǎn)載收藏一下
    2015-08-08
  • Mysql中count(*)、count(1)、count(主鍵id)與count(字段)的區(qū)別

    Mysql中count(*)、count(1)、count(主鍵id)與count(字段)的區(qū)別

    本文主要介紹了Mysql中count(*)、count(1)、count(主鍵id)與count(字段)的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • MySQL索引數(shù)據(jù)結(jié)構(gòu)入門(mén)詳細(xì)教程

    MySQL索引數(shù)據(jù)結(jié)構(gòu)入門(mén)詳細(xì)教程

    這篇文章主要為大家介紹了MySQL索引數(shù)據(jù)結(jié)構(gòu)入門(mén)詳細(xì)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評(píng)論

宜宾市| 鄂州市| 玉田县| 介休市| 观塘区| 葵青区| 光山县| 克东县| 自贡市| 黔东| 师宗县| 大田县| 班玛县| 新邵县| 乌兰浩特市| 陇西县| 荆州市| 元谋县| 河北省| 襄垣县| 浑源县| 娄烦县| 沧源| 铁岭市| 金湖县| 新化县| 巩义市| 万盛区| 武穴市| 大关县| 许昌县| 穆棱市| 永寿县| 南溪县| 门头沟区| 突泉县| 施秉县| 宾川县| 准格尔旗| 香港 | 格尔木市|