更新時(shí)間:2022-08-10 來源:黑馬程序員 瀏覽量:
MySQL主鍵約束是一個(gè)列或者多個(gè)列的組合,其值能唯一地標(biāo)識(shí)表中的每一行,方便在RDBMS中盡快的找到某一行。主鍵約束相當(dāng)于唯一約束+非空約束的組合,主鍵約束列不允許重復(fù),也不允許出現(xiàn)空值。但每個(gè)表最多只允許一個(gè)主鍵。主鍵約束的關(guān)鍵字是primary
key,當(dāng)創(chuàng)建主鍵的約束時(shí),系統(tǒng)默認(rèn)會(huì)在所在的列和列組合上建立對應(yīng)的唯一索引。
接下來將演示三種主鍵約束操作:
1.添加單列主鍵
2.添加多列聯(lián)合主鍵
3.刪除主鍵
方法(1):創(chuàng)建單列主鍵有兩種方式,一種是在定義字段的同時(shí)指定主鍵,一種是定義完字段之后指定主鍵。添加單列主鍵的語法格式如下:
-- 在 create table 語句中,通過 PRIMARY KEY 關(guān)鍵字來指定主鍵。 --在定義字段的同時(shí)指定主鍵,語法格式如下: create table 表名( ... <字段名> <數(shù)據(jù)類型> primary key ... )
實(shí)現(xiàn)代碼如下:
create table emp1( eid int primay key, name VARCHAR(20), deptId int, salary double );
方法(2):在定義字段之后再指定主鍵,語法格式如下:
create table 表名( ... [constraint <約束名>] primary key [字段名] );實(shí)現(xiàn)代碼如下:
create table emp2( eid INT, name VARCHAR(20), deptId INT, salary double, constraint pk1 primary key(id) );
所謂的聯(lián)合主鍵,就是這個(gè)主鍵是由一張表中多個(gè)字段組成的。若主鍵是由多個(gè)字段組成時(shí),不能直接在字段名后面聲明主鍵約束。一張表只能有一個(gè)主鍵,聯(lián)合主鍵也是一個(gè)主鍵。
添加多列主鍵的語法格式如下:
create table 表名( ... primary key (字段1,字段2,…,字段n) );
實(shí)現(xiàn)代碼如下:
create table emp3( name varchar(20), deptId int, salary double, primary key(name,deptId) );
主鍵約束不僅可以在創(chuàng)建表的同時(shí)創(chuàng)建,也可以在修改表時(shí)添加,語法格式如下:
create table 表名( ... ); alter table <表名> add primary key(字段列表);
實(shí)現(xiàn)代碼如下:
-- 添加單列主鍵 create table emp4( eid int, name varchar(20), deptId int, salary double, ); alter table emp4 add primary key(eid);
一個(gè)表中不需要主鍵約束時(shí),就需要從表中將其刪除。刪除主鍵約束的方法要比創(chuàng)建主鍵約束容易的多。刪除主鍵約束的語法格式如下:
alter table <數(shù)據(jù)表名> drop primary key;
實(shí)現(xiàn)代碼如下:
-- 刪除單列主鍵 alter table emp1 drop primary key; -- 刪除聯(lián)合主鍵 alter table emp5 drop primary key;