Oracle課堂筆記FOUR

約束:保證數(shù)據(jù)庫(kù)有某些特定的商業(yè)邏輯,維護(hù)數(shù)據(jù)的完整性:約束、觸發(fā)器、應(yīng)用程序(過(guò)程、函數(shù))

Oracle中,約束分為5種

1、非空約束:如果給某個(gè)字段定義了not null,name在插入數(shù)據(jù)的時(shí)候,就必須為給字段提供數(shù)據(jù)。

--創(chuàng)建表的時(shí)候添加非空約束

create table user_table(

username varchar2(20) not null,

password varchar2(20)

);

--修改表的時(shí)候添加非空約束

alter table table_name modify 字段名 字段類型 not null;

--刪除非空約束

alter table table_name modify 字段名 字段類型 null;

主鍵約束(primary key):主鍵是定位表中單個(gè)行的方式,可以唯一標(biāo)識(shí)表中的數(shù)據(jù),關(guān)系型數(shù)據(jù)庫(kù)每一張表都應(yīng)該有主鍵,主鍵可以是一個(gè)字段也可以是多個(gè)字段

1、主鍵列必須非空且唯一

2、每張表只能有一個(gè)主鍵,不過(guò)這個(gè)主鍵可以由多個(gè)字段共同組成(聯(lián)合主鍵)

--在創(chuàng)建表的時(shí)候添加主鍵約束

--列級(jí)約束

create table student_table(

student_id number(10) primary key,

student_name varchar2(20)

);

表級(jí)約束

create table student_table(

student_id number(10),

student_name varchar2(20),

constraint pk_student_id primarykey(student_id)?

);

user_constraints?

sql developer

--修改表的時(shí)候添加主鍵約束

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)建表的時(shí)候設(shè)置外鍵約束

列級(jí)約束:

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)

);

表級(jí)約束:

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)建表的時(shí)候添加唯一約束

create table test(

username varchar2(20) unique

);

create table test(

username varchar2(20),

constraint 約束的名字 unique(字段);

);

--在修改的時(shí)候

alter table table_name add constraint 約束的名字 unique(.....);

--刪除唯一約束

alter table tablename drop constraint 約束的名字 alter table tablename disable|enable constraint 約束的名字;

5、檢查約束

--在創(chuàng)建的時(shí)候添加檢查約束

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 約束的名字;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORACLE自學(xué)教程 --create tabletestone ( id number, --序號(hào)usernam...
    落葉寂聊閱讀 1,252評(píng)論 0 0
  • 系統(tǒng)用戶: 1.sys system(sys權(quán)限最高) 2.sysman(操作企業(yè)管理器) 密碼是安裝的時(shí)候輸入的...
    3hours閱讀 1,709評(píng)論 0 0
  • 查詢某一個(gè)表中的前幾條數(shù)據(jù) 在mysql中:limit 1、查詢第1000條到1005條 select * fro...
    姜茶無(wú)糖閱讀 437評(píng)論 0 0
  • 上傳中,請(qǐng)稍候... 今天,我收到一瓶很漂亮的綠蘿。它是樓下花店女孩送我的節(jié)日禮物。漂亮極了。 無(wú)花綠植是我喜歡的...
    藍(lán)焰行動(dòng)閱讀 557評(píng)論 10 7
  • 生活節(jié)奏,給心里堆積了不少的毒素,今天拿我?guī)Т蠹?。心理上排毒,講到這里,不知道大家有沒(méi)有收獲。所以我就出來(lái)再講一個(gè)...
    02013a078b2b閱讀 223評(píng)論 0 4

友情鏈接更多精彩內(nèi)容