詳細(xì)說明mysql數(shù)據(jù)庫中的主鍵
發(fā)表時(shí)間:2023-09-07 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]主鍵介紹正如所述,主鍵值必須唯一。即,表中的每個(gè)行必須具有唯一的主鍵值。如果主鍵使用單個(gè)列,則它的值必須唯一。如果使用多個(gè)列,則這些列的組合值必須唯一。mysql主鍵的作用唯一標(biāo)識(shí)表中每行的這個(gè)列(或這組列)稱為主鍵。沒有主鍵,更新或刪除表中特定行很困難,因?yàn)闆]有安全的方法保證只設(shè)計(jì)相關(guān)的行。迄今...
主鍵介紹正如所述,主鍵值必須唯一。即,表中的每個(gè)行必須具有唯一的主鍵值。如果主鍵使用單個(gè)列,則它的值必須唯一。如果使用多個(gè)列,則這些列的組合值必須唯一。
mysql主鍵的作用
唯一標(biāo)識(shí)表中每行的這個(gè)列(或這組列)稱為主鍵。沒有主鍵,更新或刪除表中特定行很困難,因?yàn)闆]有安全的方法保證只設(shè)計(jì)相關(guān)的行。
迄今為止我們看到的 CREATE TABLE 例子都是用單個(gè)列作為主鍵。其中主鍵用以下的類似的語句定義:
PRIMARY KEY (vend_id )
為創(chuàng)建由多個(gè)列組成的主鍵,應(yīng)該以逗號(hào)分隔的列表給出各列名,如下所示:
create table orderitems
(
order_num int NOT NULL,
order_item int NOT NULL,
prod_id char(10) NOT NULL,
quantity int NOT NULL,
item_price decimal(8,2) NOT NULL,
PRIMARY KEY (order_num,order_item)
)ENGINE = InnoDB;
orderitems 表包含orders表中每個(gè)訂單的細(xì)節(jié)。每個(gè)訂單有多項(xiàng)物品,但每個(gè)訂單任何時(shí)候都只有1個(gè)第一項(xiàng)物品,1個(gè)第二項(xiàng)物品,如此等等。因此,訂單號(hào)( order_num 列)和訂單物品( order_item 列)的組合是唯一的,從而適合作為主鍵,其定義為:
PRIMARY KEY ( order_num,order_item)
主鍵可以在創(chuàng)建表時(shí)定義(如這里所示),或者在創(chuàng)建表之后定義。
主鍵和 NULL 值 主鍵為其值唯一標(biāo)識(shí)表中每個(gè)行的列。主鍵中只能使用不允許 NULL 值的列。允許 NULL 值的列不能作為唯一標(biāo)識(shí)。
關(guān)于主鍵自增長,我們會(huì)在mysql創(chuàng)建數(shù)據(jù)表中使用AUTO_INCREMENT的詳解中會(huì)詳細(xì)講解到。
【相關(guān)推薦】
php中文網(wǎng)特別推薦:php程序員工具箱下載(一鍵搭建php環(huán)境)
mysql自增長AUTO_INCREMENT實(shí)例用法
以上就是詳解mysql數(shù)據(jù)庫中的主鍵的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。