約束:保證數(shù)據(jù)庫有某些特定的商業(yè)邏輯笙蒙,維護數(shù)據(jù)的完整性:約束抵屿、觸發(fā)器、應用程序(過程捅位、函數(shù))
Oracle中轧葛,約束分為5種
1、非空約束:如果給某個字段定義了not null艇搀,name在插入數(shù)據(jù)的時候尿扯,就必須為給字段提供數(shù)據(jù)。
--創(chuàng)建表的時候添加非空約束
create table user_table(
username varchar2(20) not null,
password varchar2(20)
);
--修改表的時候添加非空約束
alter table table_name modify 字段名 字段類型 not null;
--刪除非空約束
alter table table_name modify 字段名 字段類型 null;
主鍵約束(primary key):主鍵是定位表中單個行的方式焰雕,可以唯一標識表中的數(shù)據(jù)衷笋,關(guān)系型數(shù)據(jù)庫每一張表都應該有主鍵,主鍵可以是一個字段也可以是多個字段
1矩屁、主鍵列必須非空且唯一
2辟宗、每張表只能有一個主鍵,不過這個主鍵可以由多個字段共同組成(聯(lián)合主鍵)
--在創(chuàng)建表的時候添加主鍵約束
--列級約束
create table student_table(
student_id number(10) primary key,
student_name varchar2(20)
);
表級約束
create table student_table(
student_id number(10),
student_name varchar2(20),
constraint pk_student_id primarykey(student_id)?
);
user_constraints?
sql developer
--修改表的時候添加主鍵約束
alter table table_name add constraint 約束的名字 primary key(.....);
--刪除主鍵約束
alter table tablename drop constraint 約束的名字 alter table tablename drop primary key;
alter table tablename disable|enable constraint 約束的名字吝秕;
外鍵(foreign key):
用于聯(lián)系主表和從表之間的關(guān)系泊脐,外鍵定義在從表上的,
要求外鍵數(shù)據(jù)必須在主表的主鍵列中存在或者為null烁峭;
--在創(chuàng)建表的時候設置外鍵約束
列級約束:
create tablebriup_dept(? --主表
deptno number(2) primary key,
dname varchar2(20),
loc varchar2(20)
);
create tablebriup_emp(??? --從表
ename varchar2(20) constraint 約束的名字 not null,
deptno number(2) references briup_dept(deptno)
);
表級約束:
create tablebriup_emp(??? --從表
ename varchar2(20) not null,
deptno number(2),
constraint fk_emp_deptno_dept_deptno foreign key references briup_dept(deptno) [on delete cascade];
);
--刪除外鍵約束
alter table tablename drop constraint 約束的名字 alter table tablename disable|enable constraint 約束的名字容客;
4、唯一約束
unique
--創(chuàng)建表的時候添加唯一約束
create table test(
username varchar2(20) unique
);
create table test(
username varchar2(20),
constraint 約束的名字 unique(字段);
);
--在修改的時候
alter table table_name add constraint 約束的名字 unique(.....);
--刪除唯一約束
alter table tablename drop constraint 約束的名字 alter table tablename disable|enable constraint 約束的名字约郁;
5缩挑、檢查約束
--在創(chuàng)建的時候添加檢查約束
create table emp(
sex varchar2(20) default '男' check(sex in ('男' ,'女')),?
sal number(5) check(sal>0)
);
--修改
alter table table_name add constraint 約束的名字 check(條件);
--刪除
alter table tablename drop constraint 約束的名字 alter table tablename disable|enable constraint 約束的名字;