日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 查看表结构约束,oracle 约束

發布時間:2025/3/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 查看表结构约束,oracle 约束 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

約束是表中列的屬性,用來維護數據結構完整性的一種手段

約束的種類:

NOT NULL

UNIQUE

PARIAMRY KEY

FOREIGN KEY

CHECK

enble validate 檢查現有數據和新數據是否符合約束

enable novlidate 檢查新數據是否符合約束

disable validate 給表加鎖

disable novalidate

創建表的時候帶有約束信息:

create table e (empno number(4) constraint pk_e_empno(約束名) primary key,

ename varchar2(10) not null, not null只能在列級別

email varchar2(30),

constraint uk_e_email unique (email)); 約束寫在后面為表級別約束,要指定列名

查看約束信息:

select constraint_name,

constraint_type,

SEARCH_CONDITION,

R_CONSTRAINT_NAME

from user_constraints

where table_name='E';

select constraint_name,column_name from user_cons_columns

where table_name='E';

添加約束:

alter table e add (sal number(7,2),deptno number(2));

alter table e add constraint ck_e_sal check (sal>999 and sal is not null);

alter table e add constraint fk_e_deptno foreign key(deptno) references dept (deptno);

注意:not null 約束只能在列級別指定不能在表級別指定!

alter table e modify (ename varchar2(10) constraint nn_e_ename not null);

select table_name,constraint_type from user_constraints where constraint_name='PK_DEPT';

select table_name,column_name from user_cons_columns

where constraint_name='PK_DEPT';

insert into e values (1,'X1','x1@uplooking.com',1000,10);

insert into e values (2,'X2','x2@uplooking.com',2000,20);

insert into e values (3,'X3','x3@uplooking.com',2000,40);

commit;

測試數據依賴關系:

delete dept where deptno=40;

刪除約束:

alter table e drop constraint fk_e_deptno;

外鍵約束的兩種特殊情況(主鍵刪除有級聯)

alter table e add constraint fk_e_deptno foreign key(deptno) references dept (deptno) on delete set null;

alter table e add constraint fk_e_deptno foreign key(deptno) references dept (deptno) on delete cascade;

約束的狀態:

select constraint_name,

status

from user_constraints

where table_name='E';

禁止約束:

alter table e modify constraint UK_E_EMAIL disable;

啟用約束:

alter table e modify constraint UK_E_EMAIL enable;

刪除外鍵,重新建立父子關系(子表為e,父表為d,d表拷貝dept表數據):

alter table e drop constraint fk_e_deptno;

create table d as select * from dept;

alter table d add constraint pk_d_deptno primary key (deptno);

alter table e add constraint fk_e_deptno foreign key(deptno) references d (deptno);

父子關系建立后對父表結構修改的影響:

alter table d drop (deptno);

ORA-12992: cannot drop parent key column

強制刪除父表主鍵:

alter table d drop (deptno) cascade constraints;

總結

以上是生活随笔為你收集整理的oracle 查看表结构约束,oracle 约束的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。