主鍵是一個(gè)在一個(gè)數(shù)據(jù)庫(kù)表中唯一標(biāo)識(shí)每個(gè)行/記錄表中的一個(gè)字段。主鍵必須包含唯一值。主鍵列不能有NULL值。
一個(gè)表只能有一個(gè)主鍵,它可以由單個(gè)或多個(gè)字段組成。當(dāng)多個(gè)字段被用來作為主鍵,它們被稱為復(fù)合鍵。
如果一個(gè)表有任何字段定義為主鍵,那么就不能有兩個(gè)記錄具有字段的值相同。
注:在創(chuàng)建數(shù)據(jù)庫(kù)表,需要使用這些概念。
這里是定義ID屬性為CUSTOMERS表的主鍵的語(yǔ)法。
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
要在“ID”列創(chuàng)建PRIMARY KEY約束,假設(shè)CUSTOMERS表已經(jīng)存在,使用下面的SQL語(yǔ)法:
ALTER TABLE CUSTOMER ADD PRIMARY KEY (ID);
注:如果您使用ALTER TABLE語(yǔ)句添加主鍵,主鍵列必須已經(jīng)被聲明為不包含NULL值(要?jiǎng)?chuàng)建表時(shí))。
對(duì)于多個(gè)列定義PRIMARY KEY約束,使用下面的SQL語(yǔ)法:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID, NAME) );
當(dāng)CUSTOMERS表已經(jīng)存在,要在“ID”和“NAMES”列創(chuàng)建PRIMARY KEY約束,可以使用下面的SQL語(yǔ)法:
ALTER TABLE CUSTOMERS ADD CONSTRAINT PK_CUSTID PRIMARY KEY (ID, NAME);
您可以清除表主鍵約束,使用語(yǔ)法:
ALTER TABLE CUSTOMERS DROP PRIMARY KEY ;