ORACLE 約束(主鍵 唯一鍵 )

2021-08-28 13:20:30 字數 2547 閱讀 4374

一.主鍵約束 //alter table * add constraint * primary key (*)

1.外部定義:

alter tablestudentadd constraintpk_idprimary key(st_id);

2.行級定義

create table student(

st_id number(4)primary key,

3.表級定義:

create table student(

st_id number(4)  ,

constraint pk_id parimary key (st_id)

二.unique 唯一約束  //約束此欄位內容不可以相同,但允許為空。 alter table * add constraint * unique(*)

1.外部定義

alter table student add constraint un_name unique(st_name); 

2.表級定義

create table student(

st_id  number(4) ,

st_name varchar2(20)constraint un_st_name unique,

3.行級定義

create table student(

st_id  number(4) ,

st_name varchar2(20),

constraint un_st_name unique (st_name)

三.刪除約束  alter table * drop constraint *

alter tablestudentdrop constraintpk_st_id;

四.非空約束  not null   //alter table * modify *  *

alter tablestudentmodifyst_namenot null

表級定義:

create table student(

st_name varchar2(20)  not null,

)

五.檢查約束  check //檢查的內容允許為空

外部定義:alter table * add constraint * check(*=*)

alter tablestudentadd constraintcheck_st_namecheck(st_name='tom' and st_name is not null)

表級定義:

create table student(

st_name varchar2(20)  check(st_name='tom'),

六.外來鍵約束  foreign key  //用來強制兩個表的關係

外來鍵:將要引用父表列中的列

引用鍵:被外來鍵引用的子表中的主鍵或唯一鍵

create table c_class(

c_id number(4) primary key,

c_no number(4) unique,

c_teacher varchar2(20)

create table t_student(

s_id number(4),

s_no number(4),

c_no number(4),

s_name varchar2(20)

外部定義:alter table * add constraint * foreign key() references  *(*)

alter table t_student add constraint fk_st_no foreign key(c_no) references c_class(c_no)

定義外來鍵:級聯刪除

on delete cascade //刪除主表資料時順帶刪除所對應的從表資料

alter table  t_student add constarint fk_st_no foreign key(c_no) references c_class(c_no)on delete cascade

on delete set null //刪除主表資料時將從表對應的外來鍵的值設定為空

alter table t_student add constraint fk_st_no foreign key(c_no) references c_class(c_no)on  delete set null

oracle主鍵約束 唯一鍵約束和唯一索引的區別

1 主鍵約束和唯一鍵約束均會隱式建立同名的唯一索引,當主鍵約束或者唯一鍵約束失效時,隱式建立的唯一索引會被刪除 2 主鍵約束要求列值非空,而唯一鍵約束和唯一索引不要求列值非空 3 相同字段序列不允許重複建立索引 檢視約束名稱,約束型別 select constraint name,constrain...

Mysql 唯一鍵約束

3 唯一鍵約束也是分為兩種 4 刪除唯一鍵約束 乙個表中可以有多個唯一鍵約束 唯一鍵約束意味著,唯一,可以為null 唯一鍵的約束名可以自己指定,也可以預設 建立唯一鍵約束,也會在對應列上建立索引。而且刪除唯一鍵約束的方式是通過刪除對應索引來實現的。create table 資料庫名.表名 欄位名1...

主鍵 唯一鍵 唯一索引區別

主鍵 1.可以定義一列或多列為主鍵。不允許空 null 主健可作外健,唯一索引不可 2.定義乙個主鍵將自動建立主鍵索引,主鍵索引是唯一索引的特殊型別。唯一鍵 唯一性約束 1.唯一性約束用來限制不受主鍵約束的列上的資料的唯一性,用於作為訪問某行的可選手段,指定列上都不允許有相同的值,允許空 null ...