SQL學習之primary key約束

2021-10-01 10:32:50 字數 2527 閱讀 1601

alter table 時的 sql primary key 約束

刪除 primary key 約束

菜鳥教程

sqlprimary key又稱 主鍵 , 用於約束唯一標識資料庫表中的每條記錄

主鍵必須包含唯一的值

主鍵列不能包含 null 值

每個表都應該有乙個主鍵,並且每個表只能有乙個主鍵

如果想要唯一標識某一條記錄,或者阻止乙個表中存在相同的兩條記錄,或者阻止乙個表中的某個字段存在相同的記錄,我們要怎麼做?

當然是在插入或者更新的時候檢查表或者字段是否存在,如果存在可以刪除或者修改,不存在則插入

有沒有更簡單的方法呢? 有的,就是給表新增乙個唯一索引,這樣資料庫系統會自己主動檢查是否存在重覆記錄

如果這個唯一索引加在唯一標識一條記錄的列 (字段) 上,那麼它有乙個好聽的名字,叫做 主鍵

當然了,主鍵 的功能遠遠不止這些,它還是表儲存資料時的物理索引

—簡單教程

建立表時可以使用primary key關鍵字給表新增primary約束

但要注意,新增的列必須設定為not null;

create

table lesson (

id int(11

)not

null

primary

keyauto_increment

, name varchar(32

)default'',

views int(11

)not

null

default

'0',

created_at datetime

);

雖然乙個表只能有乙個primary key,但乙個primary key可以包含多個列

新增多個列可以使用primary key關鍵字,括號內新增多個列,多列之間用逗號分隔

create

table lesson (

id int(11

)not

null

auto_increment

, name varchar(32

)default'',

views int(11

)not

null

default

'0',

created_at datetime

,primary

key(id,name)

);

如果需要給primary key約束命名,可以使用constraint關鍵字

create

table lesson (

id int(11

)not

null

auto_increment

, name varchar(32

)default'',

views int(11

)not

null

default

'0',

created_at datetime

,constraint pk_lession_id primary

key(id,name)

);

如果乙個表已經建立,而又想給表新增primary key約束,可以使用alter table命令

alter

table lesson add

primary

key(id)

;

乙個 primary key 包含多列

alter

table lesson add

constraint pk_lesson primary

key(id,name)

;

給 primary key 約束命名

alter

table lesson add

constraint pk_lesson_id primary

key(id)

;

如果想要刪除primary key約束,可以使用下面的 sql 語句

alter

table lessson drop

primary

key

alter

table lesson drop

constraint pk_lesson_id

SQL學習之SQL語法

sql語句 最重要也是最常用的的 sql 命令 菜鳥教程 mysql oracle sqlite access ms sql server等 其中又分為兩大陣營 非關係型資料庫 key value的形式,沒有表結構 由來 資料庫管理軟體的由來 資料想要永久儲存,都是儲存在檔案中的,毋庸置疑,乙個檔案...

SQL學習之案例

乙個班級資料庫classbase,需要記錄班級裡的學生 學生屬性為 sid,sname,phone 表應該如下 建立資料庫 use classbase 使用資料庫 drop table ifexists students create table students 建立學生 sid int,snam...

學習總結 SQL學習總結之SQL語法

選取所有列即原表返回 select from table name 例如 select distinct country from websites 例如 從 websites 表中選取國家為 cn 的所有 例如 從 websites 表中選取id為1的所有 文字字段 vs.數值字段 where 子...