本文出自:http://blog.csdn.net/svittersql
實驗目標:熟悉實體完整性,參照完整性,事務的處理;數據庫
/*1.在數據庫school表中創建表Stu_uion,進行主鍵約束,在沒有違反實體完整性的前提下插入並更新一條記錄*/ Use school create table stu_uion ( sno char(5) not null unique, sname char(8), ssex char(1), sage int, sdept char(20), constraint pk_stu_uion primary key (sno) ); insert stu_uion values('10000', 'Wangmin', '1', 23, 'CS'); update stu_uion set sno = ' ' where sdept = 'CS'; update stu_uion set sno = '92002' where sname = 'Wangmin'; select * from stu_uion; /*2.3.演示違反實體完整性的插入,更新操做*/ Use school insert stu_uion values('10000', 'Li hua', '1', 23, 'CS');/*unique*/ update stu_uion set sno = NULL where sno = '10000'; /*not null*/ /*4.演示事務的處理,包括事務的創建,處理,以及出錯事務的回退*/ Use school set xact_abort on /*設置xact_abort 爲on時,若是transaction(事務)語句出現錯誤,那麼整個事務都會回滾 *若是設置其爲off時,只回滾出錯的語句*/ begin transaction t1 insert into stu_uion values('95009', 'Li yong', 'M', 25, 'EE'); insert into stu_uion values('95003', 'wang hao', '0', 25, 'EE'); insert into stu_uion values('95005', 'wang hao', '0', 25, 'EE'); select * from stu_uion ; commit transaction t1 /*5.經過創建scholarship表 ,插入數據,演示當前與現有的數據環境不等時,沒法創建實體完整性以及參照完整性*/ Use school Create table Scholarship ( M_ID varchar(10), Stu_id char(10), R_money int ); insert into scholarship values('0001', '700000', 5000); insert into scholarship values('0001', '800000', 5000); select * from scholarship; /*constraint*/ Use school alter table scholarship add constraint pk_scholarship primary key(M_ID);/*pk: primary key*/ /*存在兩個0001,沒法創建主鍵約束*/ /**scholarship中的數據,不知足stu_id和students表中的sid對應性,建立參照完整性失敗*/ Use school alter table scholarship add constraint fk_scholarship foreign key (Stu_id) references students(sid);
做者:svitter 發表於2014-5-5 15:12:29
原文連接
閱讀:142 評論:0
查看評論