約束的名稱

2021-09-23 10:25:14 字數 2150 閱讀 4919

唯一約束、非空約束、主鍵約束都有自己的名字,只不過是系統自動給定的預設名稱,我們也可以在建立約束的時候指定名稱,這個需要使用constraint來建立。

demo:觀察預設的約束名稱

--刪除資料表

drop table teacher purge; 

--建立資料表

create table teacher(

tno number(4) primary key,--主鍵約束

tname varchar2(10) unique,--唯一約束

tage number(3),

tdate date );

--插入資料

insert into teacher values(1001,『x老師』,100,sysdate);

insert into teacher values(1002,『y老師』,100,sysdate);

insert into teacher values(1003,『z老師』,100,sysdate);

demo:指定自定義的約束名稱

--刪除列表

drop table teacher purge;

--建立資料表

create table teacher(

tno number(4),

tname varchar(10),

tage number(3),

tdate date,

--建立主鍵約束(使用constraint關鍵字引導建立)

constraint pk_tno primary key(tno),

--建立唯一約束(使用constraint關鍵字引導建立)

constraint uk_tname unique(tname) );

--插入資料

insert into teacher values(1001,『x老師』,100,sysdate);

insert into teacher values(1002,『y老師』,100,sysdate);

insert into teacher values(1003,『z老師』,100,sysdate);

除了以上三種約束之外還有其他約束比如檢查約束,檢查約束是可以為字段值進行簡單的驗證,比如要讓年齡的範圍是0~250歲,那麼可以使用檢查約束

demo:檢查約束(check)

--刪除資料

drop table teacher purge;

--建立資料表

create table teacher (

tno number(4),

tname varchar2(10),

tage number(3),

tdate date,

--建立主鍵約束

constraint pk_tno primary key(tno),

--建立唯一約束

constraint uk_tname unique(tname),

--建立檢查約束

constraint ck_tage check(tage between 0 and 250) );

--插入資料

insert into teacher values(1001,『x老師』,100,sysdate);

insert into teacher values(1002,『y老師』,100,sysdate);

insert into teacher values(1003,『z老師』,251,sysdate);

總結:

1、如果要指定約束的名稱,那麼需要使用constraint引導建立

2、檢查約束我們只是作為語法提出,在開發中不會去使用,因為很耗費效能,如果真有這樣的需求是交給程式去實現。

mysql 主鍵約束起名 MySQL名稱的主鍵約束

資料定義語句 create table persons p id int not null,lastname varchar 255 not null,firstname varchar 255 address varchar 255 city varchar 255 constraint pk p...

查詢出表中該列的約束名稱

1.查詢出表中該列的約束名稱 declare conname varchar 50 select conname b.name from sysobjects b join syscolumns a on b.id a.cdefault where a.id object id tbbrandsho...

資料表預設值約束名稱為隨機名稱的問題

預設值約束名稱變為隨機名稱的問題困擾我一年多了,今天在機緣巧合下終於發現原因,原來是因為sql語句書寫不規範引起的。比如新增乙個欄位test1 規範寫法為alter table fcy retailprice fxs add test1 int not null constraint df fcy ...