約束用于限制加入表數(shù)據(jù)的類型,目的是保證數(shù)據(jù)的一致性和完整性
成都創(chuàng)新互聯(lián)是一家網(wǎng)站制作、網(wǎng)站設(shè)計,提供網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,建網(wǎng)站,按需規(guī)劃網(wǎng)站,網(wǎng)站開發(fā)公司,從2013年成立是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計制作,前端開發(fā),后臺程序制作以及后期項(xiàng)目運(yùn)營并提出專業(yè)建議和思路。
創(chuàng)建格式:在創(chuàng)建表時規(guī)定約束(在Create添加),也可以在創(chuàng)建之后添加(Alter table)。
約束類型:NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT。
非空約束就是限制必須為某個列提供值,不允許有空值的存在。
空值(NULL)是不存在的值,它既不是數(shù)字0也不是空字符串,而是不存在未知的情況,即:該列的所有值不能為空,但可以為空字符或者0。
結(jié)果:通過desc查看會發(fā)現(xiàn)Nullable那一列的Y消失,表示此列不能為空。且在插入數(shù)值的時候此列必須添加數(shù)值,否則會報錯。
取消非空約束使用alter方法:alter table test1 modify Author null; 設(shè)置test1的Author可以
唯一性約束強(qiáng)調(diào)所在的列不允許有相同的值,但可以有多個Null。
其定義比主鍵約束弱,即他的列允許有空值(主鍵不允許有空值),唯一性約束的主要作用是保證在除主鍵外,其他列值得唯一性。
即:直接在列后面添加unique,
或在列后面添加 constraint 約束名 unique,
或在最后添加constraint 約束 unique(列名),
或者alter table 表名 add constraint 約束名 unique(列名);
建議使用的方法為alter和在最后添加最后添加constraint 約束 unique(列名)。
注:添加約束名的好處為:便于刪除操作,在刪除時需要通過約束名來完成操作。同時如果不添加約束名則系統(tǒng)會自動生成約束名,在表移動等操作時,約束名也會更改,會造成后期操作的麻煩。
取消唯一性約束:alter table test3 drop constraint QQ_UK2;
主鍵約束唯一地標(biāo)識了每一行記錄(非空+唯一),在一個表中,最多只能有一個主鍵約束,主鍵約束既可以由一個列組成,也可以由兩個或兩個以上列組成(這種稱聯(lián)合主鍵)。
具體的方法和添加唯一約束相同,建議使用的方法為alter和在最后添加最后添加constraint 約束 unique(列名)。
刪除主鍵:alter table 表名 drop constraint 約束名
外鍵約束主要是在B表中的某一列受到A表的制約,B的那一列的值只能是A內(nèi)的值,比如工資表的員工號必須受員工表的員工號限制一樣,工資表不能有不存在的員工號。
一般外鍵約束會使用兩個表進(jìn)行關(guān)聯(lián),外鍵是指"當(dāng)前表"引用"另一個表"的某一列或某幾列。在另一個表中,被引用的列必須具有主鍵約束或者唯一性約束,不存在的數(shù)據(jù)不能出現(xiàn)在當(dāng)前表的對應(yīng)列中。一般情況下當(dāng)刪除被引用表中數(shù)據(jù)時,該數(shù)據(jù)也不能出現(xiàn)在外鍵列中,如果存在則刪除失敗。
刪除外鍵約束:alter table test5_1 drop constraint FK_test_5_1;
check約束是為了讓表中某字段值只能輸入固定的值。
check設(shè)置數(shù)值范圍:constraint check 表名 check (列名 between 小范圍 and 大范圍);
設(shè)置為大寫:constraint check 表名 check (列名 = upper(列名));
取消 alter table test6_2 drop constraint check_test_6_2;
默認(rèn)約束是設(shè)置列的默認(rèn)值,即當(dāng)插入一行時,若不給出該列的值,就用默認(rèn)值代替。
結(jié)果:在添加數(shù)據(jù)的時候,如果在設(shè)置有默認(rèn)值的列沒有添加數(shù)據(jù)則會把默認(rèn)值添加進(jìn)去。
取消默認(rèn)約束 alter table test2 modify BOOKNAME default null;
注:
add用于修改字段類型和長度的(即修改字段的屬性)
modify修改表的數(shù)據(jù)結(jié)構(gòu)。
update是修改數(shù)據(jù)內(nèi)容的。
drop是刪除數(shù)據(jù)內(nèi)容。
1、ORACLE數(shù)據(jù)庫中的外鍵約束名都在表user_constraints中可以查到。其中constraint_type='R'表示是外鍵約束。
2、啟用外鍵約束的命令為:alter table table_name enable constraint constraint_name
3、禁用外鍵約束的命令為:alter table table_name disable constraint constraint_name
4、然后再用SQL查出數(shù)據(jù)庫中所以外鍵的約束名:
select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
可用sql語句刪除外鍵約束,也可以用其他工具操作(如PL/SQL)。
一、語句刪除:
alter?table?表名?drop?constraint?外鍵名;
二、工具刪除:
1、登錄PL/SQL到指定數(shù)據(jù)庫。
2、左側(cè)找到Tables選項(xiàng)。
3、找到相應(yīng)的表,如emp,然后找到Foreign keys選項(xiàng)。
4、右鍵顯示出來的外鍵,點(diǎn)擊“刪掉”即可。
分享名稱:oracle怎么關(guān)閉約束,oracle怎么修改約束
當(dāng)前URL:http://chinadenli.net/article8/hddiip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站策劃、搜索引擎優(yōu)化、、軟件開發(fā)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)