--2、實驗內容
--2.1 掌握實體完整性約束的建立和使用方法
--(1)建立表時定義由乙個屬性組成的主鍵(給約束命名)。
create table s
(sname char(8) not null,
constraint pk_sname primary key(sname)
)--(2)建立表時定義由兩個或兩個以上屬性組成的主鍵(給約束命名)。
create table s2
(sname char(8) not null,
cid char(8) not null,
constraint pk_s_c primary key(sname,cid)
)--(3)然後插入和更新資料,觀察違反實體完整性約束的情況。
--2.2 掌握參照完整性約束的建立和使用方法
--(4)建立表時定義乙個列級參照完整性約束(給約束命名)。
create table s3
(sname char(8) not null constraint fk_sn foreign key references s(sname)
)--(5)建立表時定義乙個表級的由兩個屬性組成的參照完整性約束(給約束命名)。
create table s4
(sname char(8) not null,
cid char(8) not null,
constraint pk_sc primary key (sname,cid),
constraint fk_sc foreign key (sname,cid)references s2(sname,cid)
)--(6)設計資料更新語句檢查參照完整性約束是否起作用。
update s4 set sname='aa'
--(7)設計資料插入或者更新語句檢查參照完整性約束及其相應的級聯動作是否起作用。
--on update cascade
--on delete cascade
--on delete set null
--設定在被參照表中
insert into s2 values('aa','0001')
insert into s2 values('bb','0002')
insert into s4 values('aa','0002')
--2.3掌握使用者自定完整性約束的建立和使用方法
--(8)定義乙個檢查約束,檢查其值在某個取值範圍內,
--並設計相應的更新語句檢查該約束是否起作用?
alter table s add check(sname>'aa' and sname<'cc')
insert into s values('bb')
update s set sname='ab'
--(9)定義乙個檢查其值符合某個匹配模式的檢查約束(使用like),
--並設計相應的更新語句檢查該約束是否起作用?
alter table s2 add check(cid like'000%')
insert into s2 values('aa','0002')
insert into s2 values('aa','0012')
--(10)定義乙個檢查非空約束,並設計相應的插入或者更新語句檢查該約束是否起作用?
alter table s2 add born char(8)
alter table s2 add check(born is not null)
select *from s2
insert into s2 values('ac','0004',null)
insert into s2 values('ac','0004','6.18')
--(14)定義乙個unique約束,並設計相應的更新語句檢查該約束是否起作用?
alter table s2 add unique(sname)
insert into s2 values('ac','0005','6.18')
--違反了 unique key 約束 'uq__s2__0f1ed5835be2a6f2'。不能在物件 'dbo.s2' 中插入重複鍵。
--(15)定義乙個default約束,設計乙個insert語句檢查該約束是否起作用。
alter table s2 add constraint df_b default'9.1' for born
insert into s2 values('ae','0006',null)
--3 實驗要求
--(1)深入複習教材第五章資料庫完整性約束內容。
--(2)針對studentmanager資料庫模式設計各種完整性約束,
--每種型別完整性約束至少要設計乙個,描述清楚完整性約束要求,
--設計和執行觸發完整性約束檢查的資料更新語句。
資料庫作業
inserted表和deleted表的結構 inserted 表用於儲存 insert 和 update 語句所影響的行的副本。在乙個插入或更新事務處理中,新建行被同時新增到 inserted 表和觸發器表中。inserted 表中的行是觸發器表中新行的副本。deleted 表用於儲存 delete...
資料庫作業
設有乙個spj資料庫,包括s,p,j,spj四個關係模式 s sno,sname,status,city p pno,pname,color,weight j jno,jname,city spj sno,pno,jno,qty 商表s由 商 sno 商姓名 sname 商狀態 status 商所在...
作業14 資料庫
本次作業參考檔案 答 我用的是乙個簡單粗暴的方法 直接重寫儲存資料的那部分方法。分別在library 和userunit類裡面新增connection prestatement resultset屬性,理由jdbcunit類簡化 在main函式開始執行時獲得資料庫連線。books表 users表 借...