--unique可作用於列級和表級;
--primary key 可作用於列級和表級,相當於同時宣告了not null 和unique;
--foreign key 可作用於列級和表級,一般作用於表級
--check() 可作用於列級和表級
--建立表的時候建立約束,兩種不同的形式(自定義名和系統預設)
/*create table emp2(
idnumber(10) constraint emp2_id_nn not null,
name varchar2(20) not null,
salary number(10,2)
)*/--同時為一列建立非空約束和唯一約束
/*create table emp4(
--列級約束
idnumber(10) constraint emp4_id_nn not null ,
name varchar2(20) constraint emp4_name_nn not null,
email varchar2(20),
salary number(10,2),
--表級約束
constraint emp4_id_uk unique(id),
constraint emp4_email_uk unique(email)
)*/--constraint primary key
/*create table emp4(
--定義在列級
idnumber(10) constraint emp4_id_pk primary key,
name varchar2(20) not null,
salary number(10,2),
email varchar2(20),
constraint emp4_email_uk unique(email)
--定義在表級
--constraint emp4_id_pk primary key(id)
)*/--定義外來鍵約束
/*create table emp5(
idnumber(10) constraint emp5_id_pk primary key,
name varchar2(20) not null,
salary number(10,2),
email varchar2(20),
department_id number(20),
constraint emp5_email_uk unique(email),
--定義在表級
constraint emp5_dept_id_fk foreign key(department_id) references departments(department_id) on
delete set null
)/*departments 為父表,emp5為子表*/
/*on
delete cascade 級聯刪除,當父表中的列被刪除時,子表中相對應的列也被刪除*/
/*on
delete set null 級聯置空 ,。。。子表中相應的列置空*/
-- check約束
create table emp7(
idnumber(10) constraint emp7_id_pk primary key,
name varchar2(20) constraint emp7_name_nn not null,
salary number(10,2) constraint emp7_salary_ck check(salary>1500),
email varchar2(20),
constraint emp7_email_uk unique(email),
--定義在表級,不用再在後面額外追加列名,已經寫在了check(裡面)
--constraint emp7_salary_ck check(salary>1500)
)--新增修改刪除約束
alter table emp5
--add
add constraint emp5_name_uk unique
--modify
modify (salary number(10,2) not null)
--drop
drop constraint sys_c005484
--disable
disable constraint emp5_name_uk
--enable
enable constraint emp5_name_uk
--查詢約束
select constraint_name,constraint_type,search_condition,column_name
from user_constraints where table_name = 'employees'
差分約束小結
感覺這玩意挺簡單的。出不了太難的題啊。這種奇怪的圖是可以跑最長路的,因為負環遲早要退出。一般來說要先判圖中是否存在正 負環,可以用spfa記錄每個點鬆弛次數判斷。每個點在一開始都扔進佇列,或者新建超源與點連邊均可。第二種更加有邏輯,且能處理點有初始值的情況,方式為將超源到點的邊權賦為點權,點到超源的...
Oracle建立約束 刪除約束
1.定義not null 約束not null 約束只能在列級定義,不能在表級定義 例 create table emp01 eno int not null,name varchar2 10 constraint nn name2 not null,salary number 6,2 2.定義un...
oracle 約束之主鍵約束
1 主鍵約束作用 確保表中每一行資料是唯一的,要求非空且唯一 2 一張表中只能設定乙個主鍵約束 主鍵約束可以由多個字段構成 聯合主鍵或復合主鍵 1 在建立表時設定主鍵約束 建立聯合主鍵 通過user constraints資料字典查詢表中主鍵的名稱 2 修改表時新增主鍵約束 alter table ...