Mysql資料庫學習 資料庫完整性

2021-10-03 21:29:20 字數 2970 閱讀 4989

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 概念 約束是用來確保資料的準確性和一致性。資料的完整性就是對資...