1實體完整性(主鍵)
1.1實體完整性檢查
1.2實體完整性定義
1.3實體完整性刪除
2.參照完整性(外來鍵)
2.1參照完整性檢查
2.2參照完整性定義
2.2參照完整性刪除
3.使用者定義的完整性
3.1屬性上的約束條件(列級完整性約束)
3.2元組上的約束條件(表級完整性約束)
4斷言(mysql已淘汰)
4.1建立斷言
4.2刪除斷言
5.觸發器
5.1建立觸發器
5.2刪除觸發器
5.3顯示觸發器
資料庫完整性:資料庫完整性約束指資料的正確性和相容性
主碼唯一且其各屬性不為空
主碼定義時自動建立索引,提高實體完整性檢查速度
列級約束條件定義
create table 表名(
列名 int primary key,
…);
表級約束條件定義
create table 表名(
…primary key(列名1,[列名2,...])
);
多個屬性作為主鍵時,只能使用表級約束條件定義方法
alter table語句定義
alter table 表名 add primary key(列名1,[列名2,...]);
alter table 表名 drop primary key;
r(kr,f,…)----->s(ks,…)
f是ks的外碼,f不是基本關係r的主碼,ks是基本關係的s的主碼
基本關係r稱為參照關係,基本關係s稱為被參照關係或目標關係
f與ks需定義在同乙個域上,f上的值為空值或ks上的某個取值
對目標關係s中的某一元組進行更新操作時,參照關係r中的外碼存在對欲更新元組中被引用屬性值的引用時,會出現參照不一致問題,解決策略如下:
拒絕操縱:拒絕該更新操作
表級約束條件定義
create table 表名(
…constraint foreign key 外鍵名(列名1,[列名2,...])
references 被參照表名(列名1,[列名2,...])
[ on delete cascade //級聯操作
on update no action ] //拒絕執行,預設
);
alter table語句定義
alter table 表名 add foreign key 外鍵名(列名1,[列名2,...]) references 被參照表名(列名1,[列名2,...]);
alter table 表名 drop foreign key 外鍵名;
列值非空:not null
列值唯一:unique
列值預設值:default 值
列值自增:auto_increment
列值檢查:check (條件表示式)(mysql已淘汰)
create table 表名(
…constraint 約束名 check(條件表示式)(mysql基本已淘汰)
);
create assertion 斷言名 check(條件判斷句);
drop assertion 斷言名;
create trigger 觸發器名
before|after insert | update | delete on 表名
for each row | statement
語句;
eg:
delimiter $$
create trigger tri_test
before insert on table_a
for each row
begin
declare msg varchar(200);
if new.a >10 then
set @sum = new.a;
elseif new.a <10 then
set msg = "插入數值需大於或等於10,請重試!";
signal sqlstate 'hy000' set message_text = msg;
end if;
end $$
delimiter ;
drop trigger 觸發器名;
show trigger \g;
1.mysql資料庫學習--模式及基本表操作
2.mysql資料庫學習--索引及檢視操作
3.mysql資料庫學習--使用者及許可權操作
4.mysql資料庫學習--資料庫完整性
5.mysql資料庫學習--資料庫系統概述
6.mysql資料庫學習--關聯式資料庫
資料庫MySQL 資料完整性
1.5.1 資料完整性包括 1 實體完整性 1 主鍵約束 2 唯一約束 3 標識列 2 域完整性 1 資料型別約束 2 非空約束 3 預設值約束 3 引用完整性 外來鍵約束4 自定義完整性 1 儲存過程 2 觸發器 1.5.2 主表和從表 主表中沒有的記錄,從表不允許插入 從表中有的記錄,主表中不允...
資料庫五(資料庫完整性)
一 實體完整性 實體完整性規則 主屬性不能取空值 關係模型中 primary key 單屬性碼可以定義為列級約束條件或者表級約束條件 多屬性碼則只能定義為表級約束條件 實體完整性檢查和違約處理 檢查主碼是否唯一,不唯一則拒絕插入或者修改 檢查主碼各屬性是否為空,只要有乙個為空就拒絕插入 修改 二 參...
Mysql資料庫完整性
一 資料完整性的概念 1 目的 為了防止不符合規範的資料進入資料庫,在使用者對資料進行插入 修改 刪除等操作時,dbms自動按照一定的約束條件對資料進行監測,使不符合規範的資料不能進入資料庫,以確保資料庫中儲存的資料正確 有效 相容。2 概念 約束是用來確保資料的準確性和一致性。資料的完整性就是對資...