完整性約束,請看下面分解(1)

2021-10-09 19:20:36 字數 1300 閱讀 5307

背景:

為了防止不符合規範的資料進入資料庫,在使用者對資料進行插入,修改,刪除等操作時,dbms自動按照一定的約束條件對資料進行監測,使不符合規範的資料不能進入資料庫,以確保資料庫中儲存的資料正確,有效。

約束的目的:確保表資料的完整性

主鍵約束:要求主鍵列數唯一,並且不允許為空;

唯一約束:要求該列唯一,允許為空

檢查約束:某列取值範圍,格式限制,年齡約束;

外來鍵約束:用於兩表建立關係,需要指引主鍵

oracle資料庫的完整性約束

非空約束 not null

預設值約束 default

唯一鍵約束 unique

主鍵約束 primary key

外來鍵約束 foreign key

檢查約束 check

非空約束

非空約束修飾的字段不能為空

建立表的時候新增非空約束

create table 表名(…

欄位名 資料型別 not null,…);

現有的表上新增非空約束

語法:alter table 表名 modify 欄位名 [資料型別] not null

預設值約束

指定某列資料的預設值

在建立表時新增預設值約束

create table 表名

(欄位名 資料型別 default 預設值

);在已有的表上新增預設值約束

alter table 表名 modify 欄位名 [資料型別] default 預設值;

唯一鍵約束unique

定義:用於指定乙個或者多個列的組合值具有唯一性,以防止在列中輸入重複的值

注意:唯一鍵約束修飾的字段可以為null,如果有值必須唯一

建立表時定義唯一鍵約束

列級約束

create table 表名

(列名 資料型別 unique,

);表級約束

create table 表名

(列名 資料型別,

constraint 約束名 unique(列1…)

)啟用和禁用唯一鍵約束

alter table 表名 enable constraint 約束名;

alter table 表名 disable constraint 約束名;

刪除唯一鍵約束

alter table 表名 drop constraint 約束名

在建立表時定義主鍵約束

列級約束

create table 表名

(列名 資料型別 primary key,

)

完整性約束,請看下面分解(2)

在已有的表上新增主鍵約束 alter table 表名 add constraint 約束名 primary key 欄位1,欄位2 定義復合主鍵 create talbe score stu name varchar2 30 course varchar2 30 score number 5,2 ...

完整性約束

create table student tb id int notnull 非空約束 資料不允許為空 name varchar 255 null 顯式指定允許為空 新增非空約束 alter table 表名 modify column 屬性名 屬性型別 not null alter table s...

完整性約束

資料庫的完整性是指保護資料庫的有效性和正確性,防止資料庫中存在不符合語義的 不正確的資料。sql語言提供了相應的完整性約束機制,以確保將正確的資料儲存到資料庫中。完整性約束的型別 唯一約束 unique 用於表中的非主鍵字段,確保字段不會輸入重複的值,為其創造唯一索引 唯一鍵的值可以是null,但只...