資料庫實驗報告四 完整性控制

2021-09-02 01:49:55 字數 2463 閱讀 2678

1.假設有下面兩個關係模式: 

職工(職工號,姓名,年齡,職務,工資,部門號),其中職工號為主碼;

部門(部門號,名稱,經理名,**),其中部門號為主碼;

用sql語言定義這兩個關係模式,要求在模式中完成以下完整性約束條件的定義:

定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過60歲。

答 create table dept

(deptno number(2),

deptname varchar(10),

manager varchar(10),

phonenumber char(12)

constraint pk_sc primary key (deptno));

create table emp

(empno number(4),

ename varchar(10),

age number(2),

constraint c1 check (age《=60),

job varchar(9),

sal number(7,2),

deptno number(2),

constraint fk_deptno

foreign key (deptno)

references dept(deptno));

2.建立乙個名為tr_agede1的觸發器,要求在插入和更新時檢查student表中sage是否在15至60之中,如果不在提示「年齡不合法」。輸入語句:

create database students

use students

create table student

( sno char(10) primary key,

sname char(10),

*** char(10),

age int,

)----------

建立觸發器要求在插入和更新學生年齡時

檢查age是否在15到60之間,如不在15到60,

則彈出「年齡不合法」提示資訊

create trigger s1

on student

for insert,update

asdeclare @newage int

select @newage=age

from student

if(@newage>=15 and @newage<=60)

begin

update student set @newage=@newage

print '更新成功'

endelse

begin

print '年齡不合法'

rollback transaction

end----------------

insert

into student(sno,age)

values(7,5)

年齡不合法

訊息 3609,級別 16,狀態 1,第 1 行

事務在觸發器中結束。批處理已中止。

-------------------

insert

into student(sno,age)

values(1,15)

(1 行受影響)

更新成功

(1 行受影響)

建立觸發器實現刪除學生資訊時,要求自動

備份被刪除的資料到表backuptable中。

create table backuptable

(sno char(10) primary key,

sname char(10),

*** char(10),

age int,

)create trigger s2

on student

for delete

as print '開始備份資料,請稍後......'

insert into backuptable(sno,sname,***,age)

select sno,sname,***,age from deleted

if (@@error = 0)

begin

print '備份資料成功,備份表中的資料為:'

select * from backuptable

print '備份資料成功,交易表中的資料為:'

select * from student

enddelete

from student

where sno='1'

開始備份資料,請稍後......

(1 行受影響)

備份資料成功,備份表中的資料為:

(1 行受影響)

備份資料成功,交易表中的資料為:

(1 行受影響)

(1 行受影響)

資料庫完整性實驗報告

一 實驗學時 2學時二 實驗目的 1 實現資料完整性的概念及實施資料完整性的重要性。2 掌握資料完整性的分類。3 掌握完整性約束的新增 刪除方法。4 掌握通用預設值的建立 實施與刪除方法。5 掌握規則的建立 實施與刪除方法。6 掌握級聯刪除 級聯修改方法。三 實驗要求 刪除預設約束的操作步驟 2 若...

Oracle資料庫實驗報告三 表及完整性定義

by qqc from btbu 實驗目的 1 掌握oracle建立表的方法,包括主鍵 外來鍵的新增等。2 熟悉oracle對完整性約束的定義。實驗內容 開啟命令列啟動oracle服務連線hr使用者 1.表book的結構如下,請在hr使用者下建立該錶 欄位名 中文釋義 資料型別 isbn 圖書編號 ...

資料庫實驗五 完整性

一 實驗目的 1 掌握資料庫約束的概念 2 熟悉 sql server 的完整性約束技術。3 了解 sql server 的違反完整性處理措施。二 實驗環境 windows下的sql 三 實驗內容 1.在前幾次實驗所使用的資料庫中新建乙個教師資訊表,表名為 teacher 字段包括 tno 教師編號...