試驗(yàn)6 數(shù)據(jù)完整性_第1頁
試驗(yàn)6 數(shù)據(jù)完整性_第2頁
試驗(yàn)6 數(shù)據(jù)完整性_第3頁
試驗(yàn)6 數(shù)據(jù)完整性_第4頁
試驗(yàn)6 數(shù)據(jù)完整性_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——試驗(yàn)6數(shù)據(jù)完整性試驗(yàn)6數(shù)據(jù)完整性

一、試驗(yàn)?zāi)康?/p>

1.把握企業(yè)管理器和Transact-SQL語句(CREATERULE、DROPRULE)創(chuàng)立和刪除規(guī)則的方法。

2.把握系統(tǒng)存儲(chǔ)過程sp_bindrule、sp_unbindrule綁定和解除綁定規(guī)則的操作方法,以及sp_help、sp_helptext查詢規(guī)則信息,sp_rename更名規(guī)則的方法。

3.把握企業(yè)管理器和Transact-SQL語句(CREATEDEFAULT、DROPDEFAULT)創(chuàng)立和刪除默認(rèn)對(duì)象的方法。

4.把握系統(tǒng)存儲(chǔ)過程sp_bindefault、sp_unbindefault綁定和解除綁定默認(rèn)對(duì)象的操作方法,以及sp_help、sp_helptext查詢規(guī)則信息,sp_rename更名規(guī)則的方法。

5.把握企業(yè)管理器和Transact-SQL語句(CREATETABLE、AKTERTABLE)定義和刪除約束的方法,并了解約束的類型。

二、試驗(yàn)準(zhǔn)備

1.2.3.4.

了解數(shù)據(jù)完整性概念。

了解創(chuàng)立規(guī)則和刪除規(guī)則的語法,了解綁定規(guī)則和解除綁定規(guī)則的語法。

了解創(chuàng)立默認(rèn)對(duì)象和刪除默認(rèn)對(duì)象的語法,了解綁定和刪除綁定默認(rèn)對(duì)象的語法。了解約束的類型,創(chuàng)立約束和刪除約束的語法。

三、試驗(yàn)內(nèi)容和步驟

1.為sutdentsdb數(shù)據(jù)庫創(chuàng)立一個(gè)規(guī)則,限制所輸入的數(shù)據(jù)為7位0-9的數(shù)字。

(1)復(fù)制student_info表命名為stu_phone,在stu_phone表中插入一列,列名為“電話號(hào)碼〞。完成以下代碼實(shí)現(xiàn)該操作。

SELECT*INTOstu_phoneFROMstudent_info

ALTERTABLEstu_phoneADD__colomn電話號(hào)碼__CHAR(7)NULL

Stu_phone表結(jié)構(gòu)如圖1-10所示。12學(xué)號(hào)00010002姓名劉衛(wèi)平張為民性別男男出生日期1980-10-0100:00:00.000家庭住址衡山市東風(fēng)路78號(hào)備注NULLNULL電話號(hào)碼NULLNULL1980-12-0200:00:00.000東陽市八一北路25號(hào)圖1-10stu_phone表結(jié)構(gòu)

(2)創(chuàng)立一個(gè)規(guī)則phone_rule,限制所輸入的數(shù)據(jù)為7位0~9的數(shù)字。實(shí)現(xiàn)該規(guī)則的代碼為

CREATE___RULE___phone_ruleAS

@phoneLIKE`[0-9][0-9][0-9][0-9][0-9][0-9][0-9]

(3)使用系統(tǒng)存儲(chǔ)過程sp_bindrule將phone_rule規(guī)則綁定到stu_phone表的“電話號(hào)碼〞列上。實(shí)現(xiàn)該操作的代碼為

sp_bindrule__phone_rule___,`stu_phone.電話號(hào)碼`

(4)輸入以下代碼,進(jìn)行一次插入操作:

INSERTINTOstu_phone(學(xué)號(hào),姓名,電話號(hào)碼)VALUES(`0009`,`王國(guó)強(qiáng)`,`1234yyy`)

產(chǎn)生以下出錯(cuò)信息:

服務(wù)器:消息513,級(jí)別16,狀態(tài)1,行1

列的插入或更新與從前的CREATERULE語句所強(qiáng)制的規(guī)則沖突。改語句已終止。沖突發(fā)生于數(shù)據(jù)庫`studentsdb`,表`stu_phone`,列`電話號(hào)碼`

試分析:為什么會(huì)產(chǎn)生該出錯(cuò)信息?假使要實(shí)現(xiàn)插入操作,應(yīng)修改INSERTINTO語句中的哪個(gè)值?phone_rule規(guī)則能否對(duì)其他操作(如DELETE)進(jìn)行規(guī)則檢查?

INSERTINTOstu_phone(學(xué)號(hào),姓名,電話號(hào)碼)VALUES('0009','王國(guó)強(qiáng)','1234yyy')

插入不成功,錯(cuò)誤原因在于違反前述的規(guī)則約束(即'y'不在'0-9'之內(nèi));應(yīng)修改'1234yyy'中的'yyy',使之均在0-9范圍之內(nèi);phone_rule規(guī)則只對(duì)插入和修改進(jìn)行規(guī)則檢查,而刪除不進(jìn)行規(guī)則檢查.

2.使用企業(yè)管理器實(shí)現(xiàn)試驗(yàn)內(nèi)容1的每個(gè)操作。

3.創(chuàng)立一個(gè)規(guī)則stusex_rule,將其綁定到stu_phone表的“性別〞列上,保證輸入的性別值只能是“男〞或“女〞。

CREATERULEstusex_rule

AS

@性別in(‘男’,’女’)

sp_bindrulestusex_rule‘stu_phone.性別’

4.使用系統(tǒng)存儲(chǔ)過程sp_help查詢stusex_rule規(guī)則列表,使用sp_helptext查詢stusex_rule規(guī)則的文本,使用sp_rename將stusex_rule規(guī)則更名為stu_s_rule。

EXCUTEsp_helpstusex_rule

EXCUTEsp_helptextstusex_rule

EXCUTEsp_renamestusex_rule,stu_s_rule

5.刪除stu_s_rule規(guī)則。答:應(yīng)率先解除綁定再刪除

EXCUTEsp_unbindrule‘stu_phone.性別’DROPstu_s_rule

6.在stuedentdb數(shù)據(jù)庫中,建立日期、貨幣和字符等數(shù)據(jù)類型的默認(rèn)對(duì)象。

(1)在查詢分析其中,完成以下代碼,創(chuàng)立默認(rèn)對(duì)象df_date、df_char、df_money。

--創(chuàng)立日期型默認(rèn)對(duì)象df_dateCREATEDEFAULTdf_dateAS`2023-4-12`GO

創(chuàng)立字符型默認(rèn)對(duì)象df_charCREATEDEFAULTdf_charAS`unknown`GO

--創(chuàng)立貨幣型默認(rèn)對(duì)象df_moneyCREATEDEFAULTdf_moneyAS$100GO

(2)輸入以下代碼,在studentdb數(shù)據(jù)庫中創(chuàng)立stu_fee數(shù)據(jù)表。

CREATETABLEstu_fee(學(xué)號(hào)char(10)NOTNULL,姓名char(8)NOTNULL,學(xué)費(fèi)money,

交費(fèi)日期datetime,電話號(hào)碼char(7))

表stu_fee的數(shù)據(jù)結(jié)構(gòu)如圖1-11所示。學(xué)號(hào)

姓名學(xué)費(fèi)交費(fèi)日期電話號(hào)碼圖1-11stu_fee.的數(shù)據(jù)結(jié)構(gòu)

(3)使用系統(tǒng)存儲(chǔ)過程sp-bindefault將默認(rèn)對(duì)象df_date、df_char、df_money分別綁定在stu_fee表的“學(xué)費(fèi)〞、“交費(fèi)日期〞、“電話號(hào)碼〞列上。

Sp_bindefaultdf_money,'stu_fee.學(xué)費(fèi)'GO

sp_bindefaultdf_date,'stu_fee.交費(fèi)日期'

GO

Sp_bindefaultdf_char,'stu_fee.電話號(hào)碼'GO

(4)輸入以下代碼,在stu_fee表進(jìn)行插入操作:

INSERTINTOstu_fee(學(xué)號(hào),姓名)values('0001','劉衛(wèi)平')

INSERTINTOstu_fee(學(xué)號(hào),姓名,學(xué)費(fèi))values('0001',張衛(wèi)民',$120)INSERTINTOstu_fee(學(xué)號(hào),姓名,學(xué)費(fèi),交費(fèi)日期)VALUES('0001','馬東',$110,'2023-5-12')分析stu_fee表中插入記錄的各列的值是什么?0001劉衛(wèi)平$1002023-4-120001張衛(wèi)民$1202023-4-120001馬東$1102023-5-12

(5)完成以下代碼解除默認(rèn)對(duì)象df_char的綁定,并刪除之。按同樣的方式,刪除默認(rèn)對(duì)象df_date/df_money。EXCUTEunbindefault'stu_fee.電話號(hào)碼'DROPDEFAULTdf_char

EXCUTEunbindefault'stu_fee.交費(fèi)日期'DROPDEFAULTdf_date

EXCUTEunbindefault'stu_fee.學(xué)費(fèi)'DROPDEFAULTdf_money

7.使用企業(yè)管理器創(chuàng)立默認(rèn)對(duì)象df_date、df_money,并將它們分別綁定到stu_fee表的“學(xué)費(fèi)〞、“交費(fèi)日期〞、“電話號(hào)碼〞列上,在插入操作中觀測(cè)stu_fee表的數(shù)據(jù)變化狀況,完成操作后,刪除這些默認(rèn)對(duì)象。

具體操作。

8.為student_info表添加一頁,命名為“院系〞,創(chuàng)立一個(gè)默認(rèn)對(duì)象stu_d_df,將其綁定到student_info表的“院系〞列上,時(shí)期默認(rèn)值為“信息院〞,對(duì)student_info表進(jìn)行插入操作,操作完成后,刪除該默認(rèn)對(duì)象。分別使用企業(yè)管理器和查詢分析器實(shí)現(xiàn)。

ALTERTABLEstudent_info

ADD院系GO

CREATEDEFAULTstu_d_dfAS‘信息院’GO

sp_bindefaultstu_d_df‘student_info.院系’

GO

EXCUTEunbindefault'stu_info.院系'DROPDEFAULTstu_d_df

9.在studentsdb數(shù)據(jù)庫中用CREATETABLE語句創(chuàng)立表stu_con,并同時(shí)創(chuàng)立約束。(1)創(chuàng)立表的同時(shí)創(chuàng)立約束。表結(jié)構(gòu)如圖1-12所示列名學(xué)號(hào)姓名性別出生日期家庭住址數(shù)據(jù)類型charcharchardatetimevarchar長(zhǎng)度482850圖1-12要?jiǎng)?chuàng)立的表的結(jié)構(gòu)約束要求如下:

①將學(xué)號(hào)設(shè)置為主鍵(PRIMARYKEY),主鍵名為pk_sid。②為姓名添加唯一約束(UNIQUE),約束名為uk_name。③為性別添加默認(rèn)約束(DEFAULT),默認(rèn)名稱為df_sex,其值為“男〞。④為出生日期添加屬性值約束(CHECK),約束名為ck_beday,其檢查條件為:出生日期>’1988-1-1’。

CREATETABLEstu_con學(xué)號(hào)char(4)

CONSTRAINTpk_sidPRIMARYKEY姓名char(8)

CONSTRAINTuk_nameUNIQUE性別char(2)

CONSTRAINTdf_sexDEFAULT‘男’出生日期datetime(8)

CONSTRAINTck_be

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論