資料庫完整性 MySQL新增約束

2021-10-13 21:00:10 字數 2330 閱讀 7730

1、 作業系統:window10

2、 mysql 5.7

1.建立乙個教工表teacher(tno,tname,tadd,telphone,t***,id),將教工號tno設為主鍵,性別預設值為「男」:

create

table teacher(

tno char(7

)primary

key,

tname char(10

),tadd char(10

),telphone char(10

),t*** char(2

)default

'男',

2.根據教工表teacher完成以下任務。

設定telphone預設值為00000000:

2) 設定t***的check檢查約束為:輸入值只能為「男」或「女」:

alter

table teacher modify t*** enum

('男'

,'女'

)default

'男';

3) 設定id的位數為15位或18位,每位都是數字:

先建立乙個判斷數字的函式isnum:

delimiter $$

drop

function

ifexists isnum $$

create

function isnum(str varchar(25

))returns

intbegin

declare iresult int

default0;

if isnull(str)

then

return0;

endif

;if str=

''then

return0;

endif

;select str regexp

'^[0-9]*$'

into iresult;

if iresult=

1then

return1;

else

return0;

endif

;end $$

alter

table teacher modify id char(20

);delimiter

//create

trigger tr_id_in after

insert

on teacher

for each row

begin

if(length(new.id)

!=15

and length(new.id)

!=18)or

(isnum(new.id)!=1

)then

signal sqlstate '45000'

set message_text=

'insert error'

;endif;

end;

//delimiter

;delimiter

//create

trigger tr_id_up after

update

on teacher

for each row

begin

if(length(new.id)

!=15

and length(new.id)

!=18)or

(isnum(new.id)!=1

)then

signal sqlstate '45000'

set message_text=

'update error'

;endif;

end;

//delimiter

;

資料庫完整性 MySQL新增約束

1 作業系統 window10 2 mysql 5.7 1.建立乙個教工表teacher tno,tname,tadd,telphone,t id 將教工號tno設為主鍵,性別預設值為 男 create table teacher tno char 7 primary key,tname char ...

資料庫 完整性約束

問題描述 現有乙個商店的資料庫 shopping 記錄客戶及其購物情況,由以下四個關係組成 a 客戶表customer 儲存客戶資訊,包括客戶號customerid 客戶姓名cname 位址address 電子郵件email 性別gender 身份證號cardid 號碼telcode。b 商品表go...

資料庫 資料完整性約束

資料完整性 儲存在資料庫中的所有資料值均正確的狀態。完整性約束 防止不符合規範的資料進入資料庫,在使用者對資料進行插入 修改 刪除等操作時,dbms自動按照一定的約束條件對資料進行監測,使不符合規範的資料不能進入資料庫,以確保資料庫中儲存的資料正確 有效 相容。1.實體完整性 實體完整性是對主鍵的約...