原創(chuàng )作品,轉自請在文章明顯位置注明出處:https://www.cnblogs.com/sunshine5683/p/10167717.html
oracle中的約束主要有非空約束(not null)、唯一性約束(unique)、主鍵約束(primary key)和檢查約束(check)。
一、not null:指定在該列的數據不能為null,插入數據時(shí),必須有數據,否則不容許插入
二、unique:指定在該列的數據不能重復,是唯一值,但是容許為null
三、primary key :指定該列的數據不能重復,同時(shí)其數據也不能為null,一張表只能有一個(gè)primary key,但是可以有多個(gè)unique
四、check:指定在該列的數據必須在check所設定的范圍或者類(lèi)型,否則,不能保存數據
接下來(lái)根據一個(gè)案例,使用上面的所有約束,要求如下:
首先根據要求使用命令行建表:
其次,可以直接使用sqlplus建表(操作簡(jiǎn)單,此處略)
在以上要求得基礎上,增加限制,要求如下:
1、限定商品名不能為空
2、增加身份證號不能重復的約束
3、增加客戶(hù)住址限定,只能在某幾個(gè)指定的地方
4、刪除約束
alter table 表名 drop constraint 約束名
5、顯示約束信息:查看數據字典視圖:user_constraints就可以(或者直接plsql查看)
此處注意區別表級定義和列級定義:
列級定義:在定義列的同事定義約束
表級定義:在定義了所有列后,再定義約束,注意:not null 只能在列級定義上。
約束就先總結到這里,下次接著(zhù)總結索引!
聯(lián)系客服