在MySQL數(shù)據(jù)庫(kù)中,主鍵(Primary Key)被定義為表中一列或多列的唯一標(biāo)識(shí)符。主鍵列中的數(shù)據(jù)值不能重復(fù),并且不允許在表中存在任何空值(NULL)。在MySQL中,可以使用CREATE TABLE語(yǔ)句為表設(shè)置主鍵。
CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(50) );
上述語(yǔ)句創(chuàng)建了一個(gè)名為student的表,其中包含兩個(gè)列:id和name。使用INT類(lèi)型的id列作為主鍵。
另一種設(shè)置主鍵的方法是在CREATE TABLE語(yǔ)句中使用CONSTRAINT子句。
CREATE TABLE student ( id INT, name VARCHAR(50), CONSTRAINT pk_student PRIMARY KEY (id) );
在上例中,首先創(chuàng)建了一個(gè)名為student的表,然后使用CONSTRAINT子句為該表設(shè)置了主鍵,其中約束名為pk_student,它指定了列id作為主鍵列。
用ALTER TABLE語(yǔ)句向已存在的表添加主鍵也是可行的:
ALTER TABLE student ADD PRIMARY KEY (id);
此語(yǔ)句在名為student的表上創(chuàng)建一個(gè)新的主鍵約束,并將列id指定為主鍵列。
在MySQL中,還支持使用多列作為主鍵。這可以通過(guò)在CREATE TABLE語(yǔ)句中多次使用PRIMARY KEY關(guān)鍵字來(lái)實(shí)現(xiàn)。
CREATE TABLE orders ( order_id INT, customer_id INT, order_date DATE, PRIMARY KEY (order_id, customer_id) );
在以上語(yǔ)句中,名為orders的表包含三個(gè)列:order_id、customer_id和order_date。使用PRIMARY KEY關(guān)鍵字分別將order_id和customer_id列指定為主鍵列。