SQL實驗六資料完整性

2022-11-28 14:27:02 字數 3082 閱讀 1171

實驗6 資料完整性

一、實驗目的

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

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

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

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

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

二、實驗內容和步驟

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

(1)複製學生表命名為stu_phone,在stu_phone表中插入一列,列名為「**號碼」。完成以下**實現該操作。

select * into stu_phone from 學生表

alter table stu_phone addchar(7)null

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

圖1-10 stu_phone表結構

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

(3)使用系統儲存過程sp_hndrule將phone_rule規則繫結到stu_phone表的「**號碼」列上。

(4)插入操作輸入以下資料:

學號姓名**號碼

0009 王國強 1234yyy

是否可以成果插入?

不可以如果出現錯誤,請列出錯誤資訊,為什麼會產生該出錯資訊?

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

插入錯誤: 列名或所提供值的數目與表定義不匹配。

如果要實現插入操作,應修改insert into語句中的哪個值?phone_rule規則能否對其他操作(如delete)進行規則檢查?

2.建立乙個規則stu***_rule,將其繫結到stu_phone表的「性別」列上,保證輸入的性別值只能是「男」或「女」。

3.使用系統儲存過程sp_help查詢stu***_rule規則列表,使用sp_helptext查詢stu***_rule規則的文字,使用sp_rename將stu***_rule規則更名為stu_s_rule。

4.刪除stu_s_rule規則。

注意:stu_s_ rule為stu***_ rule更名後規則名,是否仍然繫結在stu_phone表的「性別」列上,應如何操作才能刪除它。

5.在studentdb資料庫中,建立日期、貨幣和字元等資料型別的預設物件。

(1)建立預設物件df_date、df_char、df_money。

● 建立日期型預設物件df_date,預設日期為2006-4-12。

● 建立字元型預設物件df_char,預設字元為「unknown」

● 建立貨幣型預設物件df_money,預設為100元

(2)在studentsdb資料庫中建立stu_fee資料表。

學號 char(10) not null

姓名 char(8) not null,

學費 money

交費日期 datetime

**號碼 char(7)

表stu_fee的資料結構如圖1-11所示。

圖l-11 stu_fee的資料結構

(3)使用系統儲存過程sp_bindehult將預設物件df_date、df_char、df_money分別繫結在stu_fee表的「學費」、「交費日期」、「**號碼」列上。

(4)輸入命令,在stu_fee表進行插入操作:

(學號,姓名) values ('0001',』劉衛平』)

(學號,姓名,學費) values ('0001',』張衛民』,$120)

(學號,姓名,學費,交費日期) values ('0001',『馬東『,$110,』2006-5-12『)

分析stu_fee表中插入記錄的各列的值是什麼?

(5)完成以下**解除預設物件df_char、df_date、df_money的繫結,並刪除之。

6.為學生表新增一列,命名為「院系」,建立乙個預設物件stu_d_df,將其繫結到學生表的「院系」列上,使其預設值為「資訊院」,對學生表進行插入操作,操作完成後,刪除該預設物件。

7.在studentsdb資料庫中用create table語句建立表stu_con,並同時建立約束。

(1)建立表的同時建立約束。表結構如圖1-12所示。

圖1-12 要建立的表的結構

約束要求如下:

①將學號設定為主鍵(primary key),主鍵名為pk_sid。

②為姓名新增唯一約束(unique),約束名為uk_name。

③為性別新增預設約束(default),預設名稱為df_***,其值為「男」

④為出生日期新增屬性值約束(check),約束名為ck_bday,其檢查條件為:出生日期》'1988-1-1』。

(2)在stu_con表中插入如表1-1所示的資料記錄。

表1-1 在stu_con表中插入的資料

分析各約束在插入記錄時所起的作用,檢視插入記錄後表中資料與所插入的資料是否一致?

(3)使用alter table語句的drop constraint引數項在查詢分析器中刪除為stu_con表所建的約束。

8.用物件資源管理器中資料庫關係圖為studentsdb資料庫的成績表新增外來鍵約束(foreign key),要求將「學號」設定為外來鍵,參照表為學生表,外鍵名稱為fk_sid。

⑴使用系統儲存過程sp_help檢視成績表的外來鍵資訊。

⑵在成績表中插入表1-2所示記錄,觀察sqlserver會做何處理,為什麼?如何解決所產生的問題?

表1-2

四、實驗思考

1.在sqlserver 2005中,可採用哪些方法實現資料完整性?

2,比較預設物件和預設約束的異同。

3.在資料庫中建立的規則不繫結到到資料表的字段上會起作用嗎?為什麼?

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

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

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

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

完整性說明

雲霄縣教育局的單位資訊完整性檢查結果如下 單位資訊 的批准成立文號為空,請填寫。單位資訊 的成立時間為空,請填寫。吳思敏的人員資訊完整性檢查結果如下 基本情況 的 相片 為空,請修改。吳安山的人員資訊完整性檢查結果如下 基本情況 的 相片 為空,請修改。林化的人員資訊完整性檢查結果如下 基本情況 的...