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

下載本文檔

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

文檔簡介

1、實驗?zāi)康? 掌握 Transact-SQL語句(CREATE RULE DROP RULE創(chuàng)建和刪除規(guī)則的方法。2. 掌握系統(tǒng)存儲過程 sp_bindrule 、sp_unbindrule 綁定和解除綁定規(guī)則的操作方法,以及 sp_help、sp_helptext 查詢規(guī)則信息、sp_rename更名規(guī)則的方法。3. 掌握 Transact-SQL語句(CREATE DEFAULT DROPDEFAUL創(chuàng)建和刪除默認(rèn)對象的方法。4. 掌握系統(tǒng)存儲過程 sp_bindefault 、sp_unbindefault綁定和解除綁定默認(rèn)對象的操作方 法,以及sp_helptext 查詢規(guī)則信息。5.

2、掌握 SQLServer 管理平臺和 Transact-SQL 語句(CREATETABLE ALTERTABLE)定義和刪 除約束的方法,并了解約束的類型。二、實驗內(nèi)容及步驟(1 )為studentsdb數(shù)據(jù)庫創(chuàng)建一個規(guī)則,限制所輸入的數(shù)據(jù)為7位09的數(shù)字。 復(fù)制student_info表命名為stu_phone,在stu_phone表中插入一列,列名為“電話號碼”。完成以下代碼實現(xiàn)該操作。SELECT * INTO stu_pho ne FROM stude nt_infoALTER TABLE stu_phone ADDCHAR(7) NULLstu_phone表結(jié)構(gòu)如圖1-10所示。性

3、剤出生日期彖庭住址需注電話號碼| oooi ill衛(wèi)平 ?0002強衛(wèi)昆舅 I3SO-1D-01 00:00:00. 000藺山市琨鳳胳花號 男00:00t00*000 樂陽市八一,園25號KULL NULLKTJLL NULL圖 1-10 stu_pho ne表結(jié)構(gòu) 創(chuàng)建一個規(guī)則phone_rule,限制所輸入的數(shù)據(jù)為7位09的數(shù)字。實現(xiàn)該規(guī)則的代碼為CREATEpho ne_ruleASphone LIKE '0-90-90-90-90-90-90-9' 使用系統(tǒng)存儲過程sp_bindrule 將phone_rule規(guī)則綁定到stu_phone表的"電話號碼”列上

4、。實現(xiàn)該操作的代碼為sp_bindrule,stu_phone.電話號碼' 輸入以下代碼,進(jìn)行一次插入操作:INSERT INTO stu_phone(學(xué)號,姓名,電話號碼)VALUES('0009',' 王國強,'1234yyy')產(chǎn)生以下出錯信息:消息513,級別16,狀態(tài)0,第1行列的插入或更新與先前的CREATE RULE語句所指定的規(guī)則發(fā)生沖突。該語句已終止。沖突發(fā)生于數(shù)據(jù)庫'studentsdb', 表'dbo.stu_phone', 列電話號碼'。語句已終止。試分析:為什么會產(chǎn)生該出錯信息?如

5、果要實現(xiàn)插入操作,應(yīng)修改INSERT INTO語句中的哪個值? phone_rule規(guī)則能否對其他操作(如 DELETE進(jìn)行規(guī)則檢查?(2) 創(chuàng)建一個規(guī)則stusex_rule ,將其綁定到stu_phone表的"性別”列上,保證輸入 的性另M直只能是“男”或“女”。(3) 使用系統(tǒng)存儲過程 sp_help查詢stusex_rule規(guī)則列表,使用 sp_helptext 查詢 stusex_rule 規(guī)則的文本,使用 sp_rename 將 stusex_rule 規(guī)則更名為 stu_s_rule 。(4) 刪除 stu_s_rule 規(guī)則。HIf注煙:stu_s_rule (stu

6、sex_rule 更名后規(guī)則名)是否仍然綁定在stu_phone表的“性另列上?應(yīng)如何操作才能刪除它?(5) 在studentdb數(shù)據(jù)庫中,建立日期、貨幣和字符等數(shù)據(jù)類型的默認(rèn)對象。 在查詢設(shè)計器中,完成以下代碼,創(chuàng)建默認(rèn)對象 df_date、df_char、df_money。-創(chuàng)建日期型默認(rèn)對象 df_dateCREATE df_dateAS '2009-4-12'GO-創(chuàng)建字符型默認(rèn)對象 df_charCREATE DEFAULT df_char nown'GO-創(chuàng)建貨幣型默認(rèn)對象 df_moneyCREATE DEFAULTAS $100GO 輸入以下代碼,在 s

7、tudentsdb數(shù)據(jù)庫中創(chuàng)建stu_fee數(shù)據(jù)表。CREATE TABLE stu_fee(學(xué)號 char(10) NOT NULL,姓名 char(8) NOT NULL,學(xué)費mon ey,交費日期datetime,電話號碼char(7)表stu_fee的數(shù)據(jù)結(jié)構(gòu)如圖1-11所示。交貫日期電話號碼圖1-11 stu_fee 的數(shù)據(jù)結(jié)構(gòu) 使用系統(tǒng)存儲過程 sp_bindefault將默認(rèn)對象 df_money、df_date、df_char分別綁定在 stu_fee表的“學(xué)費”、“交費日期”、“電話號碼”列上。df money,'stu_fee.學(xué)費'GOsp_bindefa

8、ult ,stu fee.交費日期'GOsp_b in default df_char,'stu_fee.電話號碼'GO 輸入以下代碼,在 stu_fee表進(jìn)行插入操作:INSERT INTO stu_fee( 學(xué)號,姓名)VALUES('0001',' 劉衛(wèi)平')INSERT INTO stu_fee(學(xué)號,姓名,學(xué)費)VALUES('0001',' 張衛(wèi)民,$120)INSERT INTO stu_fee(學(xué)號,姓名,學(xué)費,交費日期) VALUES('0001','馬東',$11

9、0,'2006-5-12')分析stu_fee表中插入記錄的各列的值是什么? 完成以下代碼,解除默認(rèn)對象df_char的綁定,并刪除之。'stu_fee.電話號碼'DEFAULT df_char按同樣的方式,刪除默認(rèn)對象df_date、df_money。(6) 為student_info 表添加一列,命名為"院系”,創(chuàng)建一個默認(rèn)對象 stu_d_df,將 其綁定到student_info 表的"院系”列上,使其默認(rèn)值為“信息院”,對student_info 表 進(jìn)行插入操作,操作完成后,刪除該默認(rèn)對象。(7) 在studentsdb 數(shù)據(jù)庫中

10、用 CREATE TABLED句創(chuàng)建表 stu_con,并同時創(chuàng)建約束。 創(chuàng)建表的同時創(chuàng)建約束。表結(jié)構(gòu)如圖1-12所示。ME孚號4achar2卅主日期$r«r chu-so圖1-12 要創(chuàng)建的表的結(jié)構(gòu)約束要求如下:將學(xué)號設(shè)置為主鍵(PRIMARY KEY,主鍵名為pk_sid。為姓名添加唯一約束(UNIQUE,約束名為 uk_nameo為性別添加默認(rèn)約束(DEFAULT,默認(rèn)名稱為df_sex,其值為“男”。為出生日期添加屬性值約束( CHECK,約束名為 ck_bday,其檢查條件為:出生日 期 >'1988-1-1'。在stu_con表中插入如表1-1所示的

11、數(shù)據(jù)記錄。表1-1 在stu_con表中插入的數(shù)據(jù)學(xué)號姓名性別出生日期家庭住址0009張小東1989-4-60010李梅女1983-8-50011王強1988-9-100012王強1989-6-3分析各約束在插入記錄時所起的作用,查看插入記錄后表中數(shù)據(jù)與所插入的數(shù)據(jù)是否一致?使用 ALTER TABLE語句的DROP CONSTRAIN參數(shù)項在查詢設(shè)計器中刪除為stu_con表所建的約束。(8) 用SQL Server管理平臺完成實驗內(nèi)容 7的所有設(shè)置。(9) 在查詢設(shè)計器中, 為studentsdb 數(shù)據(jù)庫的grade表添加外鍵約束 (FOREIGNKEY),要求將“學(xué)號”設(shè)置為外鍵,參照表

12、為student_info,外鍵名稱為fk_sid 使用系統(tǒng)存儲過程 sp_help查看grade表的外鍵信息。 在grade表中插入一條記錄,學(xué)號為 0100,課程編號為0001,分?jǐn)?shù)為78。觀察SQL Server會做何處理,為什么?如何解決所產(chǎn)生的問題? 使用查詢設(shè)計器刪除 grade表的外鍵fk_sid 。三、實驗結(jié)果1. 為studentsdb數(shù)據(jù)庫創(chuàng)建一個規(guī)則,限制所輸入的數(shù)據(jù)為7位09的數(shù)字。(1)復(fù)制學(xué)生表命名為stu_phone,在stu_phone表中插入一列,列名為"電話號碼”。完 成以下代碼實現(xiàn)該操作。SELECT * INTO stu_pho ne FROM

13、 學(xué)生表ALTER TABLE stu_phone ADD 電話號碼 CHAR(7)NULL stu_phone表結(jié)構(gòu)如圖1-10所示。圖 1-10 stu_pho ne 表結(jié)構(gòu) 可口施+ _J dbo<. s±1 _J dbo.成績恙+dbo.課程表s學(xué)生表Uu*i r:atF X割I(lǐng)friHii»>EEEED凱1鼻J!f J Q3 tn輸r齊賂丁 冋NU月劇湎'1】匸+, 刪nw00afl.nix:1jofLtLNKK菇廬ifi中山瑋£ 側(cè)馳電舅Q:WWMQ7tt9»>150J»4nDatast壯raao-LaaL

14、OOtr東工市電山thjUjfj3MU刪3創(chuàng)建一個規(guī)則phone_rule,限制所輸入的數(shù)據(jù)為7位09的數(shù)字create rule phon e_ruleas 電話號碼 like '0-90-90-90-90-90-90-9'使用系統(tǒng)存儲過程 sp_bindrule 將phone_rule規(guī)則綁定到stu_phone表的"電話號碼” 列上。sp_b in drule phon e_rule ,'stu_ph one.電話號碼兩消息已規(guī)則綁定釗表的列.(4)輸入以下代碼,進(jìn)行一次插入操作:INSERT INTO stu_phone(學(xué)號,姓名,電話號碼)VALU

15、ES('0009',' 王國強,'1234yyy')產(chǎn)生以下出錯信息:消息513,級別16,狀態(tài)0,第1行列的插入或更新與先前的CREATE RULE語句所指定的規(guī)則發(fā)生沖突。該語句已終止。沖突發(fā)生于數(shù)據(jù)庫'studentsdb',表'dbo.stu_phone',列電話號碼'。語句已終止。試分析:為什么會產(chǎn)生該出錯信息?如果要實現(xiàn)插入操作,應(yīng)修改INSERT INTO語句中的哪個值? phone_rule規(guī)則能否對其他操作(如 DELETE進(jìn)行規(guī)則檢查?修改:INSERT INTO stu_phone(學(xué)號,姓名

16、,電話號碼)VALUES('0009',' 王國強 ','1234567')phone_rule規(guī)則可以對其他操作進(jìn)行規(guī)則檢查2. 創(chuàng)建一個規(guī)則 stusex_rule ,將其綁定到 stu_phone表的"性別”列上,保證輸入的性 別值只能是“男”或“女”。create rule stusex_rule as 性別in('男','女')a caBi_j dbo. atus3.使用系統(tǒng)存儲過程sp_help查詢stusex_rule規(guī)則列表,使用 sp_helptext 查詢stusex_rule 規(guī)則的

17、文本,使用sp_rename 將 stusex_rule規(guī)則更名為 stu_s_rule 。na結(jié)果匕消息fJan 已OwnrTy.,_l i itusM-|e irule2012-05-0710:46:12.637sp_help stusex_ruler n站果.j捎息Thi create lule stusex ruleJ tl2Sp_helptext stusex_ruledt'O phon.8_rul«匸弘日 stu_s_irultsp_re name stusex_rule,stu_s_rule4. 刪除 stu_s_rule 規(guī)則。a i-j dba pbofts

18、_rul edrop rule stu_s_rule注意:stu_s_ rule 為stusex_ rule更名后規(guī)則名,是否仍然綁定在stu_phone表的"性別”列上,應(yīng)如何操作才能刪除它。5. 在studentdb數(shù)據(jù)庫中,建立日期、貨幣和字符等數(shù)據(jù)類型的默認(rèn)對象。(1)創(chuàng)建默認(rèn)對象 df_date、df_char、df_money。創(chuàng)建日期型默認(rèn)對象 df_date,默認(rèn)日期為2006-4-12。-創(chuàng)建日期型默認(rèn)對象 df_dateCREATE DEFAULT df_dateAS '2006-4-12'創(chuàng)建字符型默認(rèn)對象 df_char,默認(rèn)字符為“ unkn

19、owr”-創(chuàng)建字符型默認(rèn)對象 df_charCREATE DEFAULT df_charas 'unknown'創(chuàng)建貨幣型默認(rèn)對象 df_money,默認(rèn)為100元-創(chuàng)建貨幣型默認(rèn)對象 df_moneyCREATE DEFAULT df_mo neyAS ' $100' lJJ默認(rèn)值嗚 dbo.df_ctiarifl dba-dCdale逛dbo.df_money(2)輸入以下代碼,在 studentsdb數(shù)據(jù)庫中創(chuàng)建stu_fee數(shù)據(jù)表。CREATE TABLE stu_fee(學(xué)號 char(10) NOT NULL,姓名 char(8) NOT NULL,

20、學(xué)費mon ey,交費日期datetime,電話號碼char(7)表stu_fee的數(shù)據(jù)結(jié)構(gòu)如圖1-11所示。當(dāng)號學(xué)擁交費日期電話號硯圖1-11 stu_fee的數(shù)據(jù)結(jié)構(gòu)WIN-LB4FALKQO7H. . SQLQ呃申1申 Jffi#芋號注名學(xué)貴交鬢呂朝電話號碼MLNUUMJLL(3)使用系統(tǒng)存儲過程sp_bindehult將默認(rèn)對象 df_date、df_char、df_money分別綁定在stu_fee表的“學(xué)費”、“交費日期”、“電話號碼”列上。sp_b in default df_mon ey,'stu_fee.學(xué)費'GOsp_bindefault df_date,&

21、#39;stu_fee.交費日期GOsp_b in default df_char,'stu_fee.電話號碼'GOlis消息已將默認(rèn)值綁定到外(4)輸入命令,在stu_fee表進(jìn)行插入操作:(學(xué)號,姓名)values ('0001','劉衛(wèi)平')INSERT INTO stu_fee( 學(xué)號,姓名)values('0001',' 劉衛(wèi)平')(學(xué)號,姓名,學(xué)費)values ('0001','張衛(wèi)民',$120)INSERT INTO stu_fee(學(xué)號,姓名,學(xué)費)values(

22、'0001',' 張衛(wèi)民',$120)(學(xué)號,姓名,學(xué)費,交費日期)values ('0001','馬東,$110,' 2006-5- 12 ')INSERT INTO stu_fee(學(xué)號,姓名,學(xué)費,交費日期)VALUES('0001','馬東',$ 110,'2006-5-12')分析stu_fee表中插入記錄的各列的值是什么?-WlN'LB4FALfCO07HH.M - SQLQueryl iql' 摺夢字E孚贊交費日期AU2M/ViZG-aOrOOu

23、ilrownQQQ1弓KP民120. QKQ2Q04/V12 0:00:00inhiawnDQQI110.DD0D2006/50:00 :(»uilciawiNU.LNLJLLMilMilNLll完成以下代碼解除默認(rèn)對象df_char、df_date、df_money的綁定,并刪除之。sp_unbindefault'stu_fee.電話號碼'drop DEFAULT df_charGosp_unbindefault'stu_fee.交費日期drop DEFAULT df_dategosp_unbindefault 'stu_fee. 學(xué)費'dr

24、op DEFAULT df_mo ney6. 為學(xué)生表添加一列,命名為“院系”,創(chuàng)建一個默認(rèn)對象stu_d_df,將其綁定到學(xué)生表的“院系”列上,使其默認(rèn)值為“信息院”,對學(xué)生表進(jìn)行插入操作,操作完成后,刪除該 默認(rèn)對象。1)alter table學(xué)生表add 院系 varchar(8)2) create defaultstu_d_dfas '信息院gosp_bindefaultstu_d_df ,'學(xué)生表.院系'go(3)sp_unbindefault'學(xué)生表.院系'bo.事生蠱 S WINFALKaO7H. SQLQuervLsql'岀主日朋

25、勰住址備汪薪術(shù)山市孔3&:一. zNULL男蝕5引屮0:3:閒汞陽市八一北“ ZML畀1560/7/40100:00悵診市五一路九* 3NULL1蟻居旳0:00:&0專莓哉麗大 3NULL麗l$a0/7/13 0:00:50乘方市申山3§上AU丄NULLiflSO/n 4 0:00:00長呂簾解翊氛ZNULL女1530/3/15 0:00山蘭市Q5I3S1.心丄NULL女需江市給山略H也丄MULLNULLalunuiNUIL7.在studentsdb 數(shù)據(jù)庫中用 CREATE TABLED句創(chuàng)建表 stu_con,并同時創(chuàng)建約束。(1)創(chuàng)建表的同時創(chuàng)建約束。表結(jié)構(gòu)如圖

26、1-12所示。列名數(shù)齬類型學(xué)號char4姓名chsr3性別cher”- 4 -2出生日期iatetirweS尿庭住址v ar char50圖1-12要創(chuàng)建的表的結(jié)構(gòu) 約束要求如下:將學(xué)號設(shè)置為主鍵(PRIMARYKEY),主鍵名為pk_sid。為姓名添加唯一約束 (UNIQUE), 約束名為uk_nameo 為性別添加默認(rèn)約束(DEFAULT),默認(rèn)名稱為df_sex,其值為“男” 為出生日期添加屬性值約束(CHECK),約束名為ck_bday,其檢查條件為:出生日期 >'1988-1- 1'oCREATE TABLE stu_c on(學(xué)號char,姓名 char(8)

27、,性別 char(2),出生日期 datetime,家庭住址varchar(50),constraintPK_sid PRIMARY KEY(學(xué)號), constraint uk_name UNIQUE姓名),constraintck_bday check(出生日期 >'1988-1-1'),)alter tablestu_c onadd constraintdf_sex default '男'FOR 性別 dbvtu.Wfi * -如VYIN-L£4ALKOQ7性名dw閶151出生日旳da 毎n(2)在stu_con表中插入如表1-1所示的數(shù)據(jù)

28、記錄。表1-1 在stu_con表中插入的數(shù)據(jù)學(xué)號姓名性別出生日期家庭住址0009張小東1989-4-60010李梅女1983-8-50011王強1988-9-100012王強1989-6-3分析各約束在插入記錄時所起的作用,查看插入記錄后表中數(shù)據(jù)與所插入的數(shù)據(jù)是否一致?INSERT INTO stu_con(學(xué)號,姓名,出生日期)values('0009','張小東','1989-4-6')INSERT INTO stu_con(學(xué)號,姓名,出生日期)values('0010','李梅','1983-8-5')消息547,級別16,狀態(tài)0,第1行INSERT 語句與 CHECK約束"ck_bday"沖突。該沖突發(fā)生于數(shù)據(jù)庫 "studentsdb",表"dbo.stu_c on", 語句已終止。column '出生日期'oINSERT INTO stu_con (學(xué)號,姓名,出生日期) val

溫馨提示

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

評論

0/150

提交評論