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.實體完整性 實體完整性是對主鍵的約...