資料庫應用 資料完整性實驗答案

2022-11-12 19:45:03 字數 2812 閱讀 7672

1.實驗目的

(1)掌握transact-sql語句(create rule、drop rule)建立和刪除規則的方法。

(2)掌握系統儲存過程sp_bindrule、sp_unbindrule繫結和解除繫結規則的操作方法,以及sp_helptext查詢規則資訊、sp_rename更名規則的方法。

(3)掌握transact-sql語句(create default、drop default)建立和刪除預設物件的方法。

(4)掌握系統儲存過程sp_bindefault、sp_unbindefault繫結和解除繫結預設物件的操作方法,以及sp_helptext查詢預設物件資訊。

(5)掌握sql server管理平台和transact-sql語句(create table、alter table)定義和刪除約束的方法,並了解約束的型別。

2.實驗內容及步驟

請先附加studentsdb資料庫,然後完成以下實驗。

(1)主要講解規則

為studentsdb資料庫建立乙個規則,限制所輸入的資料為7位0~9的數字。

1. 複製student_info表命名為stu_phone,在stu_phone表中插入一列,列名為'**號碼' char(7)。完成以下**實現該操作。

stu_phone表結構如圖1-10所示。

答:select*intostu_phonefromstudent_info

altertablestu_phoneadd**號碼 char(7)null

建立乙個規則phone_rule,限制所輸入的資料為7位0~9的數字。實現該規則的**為

答:createrulephone_rule

as@**號碼like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

2. 使用系統儲存過程sp_bindrule將phone_rule規則繫結到stu_phone表的「**號碼」列上。實現該操作的**為

答:sp_bindrulephone_rule,'stu_phone.**號碼'

3. 輸入以下**,進行一次插入操作,要求符合規則:

--select * from stu_phone

--insert into stu_phone(學號,姓名,**號碼) values('0009','王國強','1234yyy')

答:insertintostu_phone(學號,姓名,**號碼)values('0009','王國強','1234yyy')

4. 使用系統儲存過程sp_unbindrule解除stu_phone表的'**號碼'列phone_rule規則繫結

答:5. drop rule 刪除規則phone_rule

答:exe sp_unbindrule』stu_phone.性別』

drop rule stu_s_rule

(2)如下圖,在管理台建各表的主、外來鍵,同時對成績表中的學號,課程號建級聯更新和級聯刪除。

請截圖1. 為成績表的建立外來鍵,如下圖

2. 成績表的學號、課程號級聯更新和級聯刪除的建立圖

圖 1圖 2

圖 3以下各題,請參照上圖2與圖3

課程號外來鍵截圖

答:學號外來鍵截圖

答:學號級聯更新、級聯刪除圖

答:課程號級聯更新、級聯刪除圖

答:(3)、資料其它約束

1. 建立乙個表employees5,只含employeeid,name,***和education列。將name設為主鍵,作為列name的約束。

對employeeid列進行unique約束,並作為表的約束

create table employees5

(employeeid char(6) not null,

name char(10)not null primary key,

*** tinyint,

education char(4),

constraint uk_id unique(employeeid)

)2. 刪除上題中的建立unique約束

alter table employees5

drop constraint uk_id

3. 建立新錶student,只考慮「號碼」和「性別」兩列,性別只能包含男或女

create table student

(號碼 char(6) not null,

性別 char(2) not null

check(性別 in('男','女'))

)建立新錶salary2,結構與salary相同,但salary2表不允許outcome列大於income列 create table salary2

(employeeid char(6) not null,

income float not null,

outcome float not null,

check(income>=outcome)

)4.5. 建立乙個表salary3,要求所有salary3表上employeeid列的值都要出現在salary2表中,利用參照完整性約束實現, 要求當刪除或修改salary2表上的employeeid列時,salary3表中的employeeid值也會隨之變化

create table salary3

(employeeid char(6) not null primary key,

income float not null,

outcome float(8) not null,

foreign key(employeeid)

references salary(employeeid)

on update cascade

on delete cascade)

SQL實驗六資料完整性

實驗6 資料完整性 一 實驗目的 1 掌握transact sql語句 create rule drop rule 建立和刪除規則的方法。2 掌握系統儲存過程sp bindrule sp unbindrule繫結和解除繫結規則的操作方法,以及sp help sp helptext查詢規則資訊 sp ...

資料完整性概述及提高資料完整性的辦法

儲存是計算機中的資料可以說每天都在增加,與此同時,需要訪問這些資料的人數也在增長,這樣,無疑對資料的完整性的潛在需求也隨之而增長。資料完整性這一術語用來泛指與損壞和丟失相對的資料的狀態,它通常表明資料的可靠與準確性是可以信賴的,同時,在不好的情況下,意味著資料有可能是無效的,或不完整的。資料完整性方...

資料庫實驗

實驗名稱 關係查詢與連線 一 實驗目的 1 理解select語句的操作和基本使用方法,熟練掌握簡單查詢。2 掌握select語句的巢狀使用,實現表的複雜查詢,進一步理解select語句的高階使用方法。3 理解join語句的操作和基本使用方法,掌握內連線 外連線 自連線的概念和使用。二 實驗環境 使用...