【正文】
er服務(wù)系統(tǒng)遭到破壞,但數(shù)據(jù)庫(kù)文件是完好的。如何盡快讓服務(wù)器B上提供數(shù)據(jù)庫(kù)Student的數(shù)據(jù)服務(wù)?實(shí)驗(yàn)4 數(shù)據(jù)完整性【實(shí)驗(yàn)?zāi)康摹縎QL Server 提供了一些工具來(lái)幫助用戶實(shí)現(xiàn)數(shù)據(jù)完整性,其中最主要的是約束(constraint)、規(guī)則、缺省值、約束和觸發(fā)器?!緦?shí)驗(yàn)內(nèi)容和要求】1. 用企業(yè)管理器在上次實(shí)驗(yàn)中創(chuàng)建的數(shù)據(jù)庫(kù)myDB中添加四個(gè)表:學(xué)生表S、課程表C、教師表T和選課表SC。C(C, Cname, T),各字段含義分別為課號(hào)、課名、教授該課程的教師編號(hào)。T(T, Tname,Tposition) ,各字段含義分別為教師編號(hào)、教師名、職稱。寫出創(chuàng)建上面4個(gè)表的SQL語(yǔ)句。3. 用下面的SQL語(yǔ)句在p和c兩表中插入數(shù)據(jù)并顯示兩表的內(nèi)容:insert into p values(39。,39。)insert into p values(39。,39。)insert into p values(39。,39。)insert into c values(39。,39。)insert into c values(39。,39。)insert into c values(39。,39。)insert into c values(39。,39。)insert into c values(39。,39。)select * from pselect * from c然后,用下面的SQL語(yǔ)句修改p表中的數(shù)據(jù),并顯示兩表的內(nèi)容:update p set a =39。 where b= 39。select * from pselect * from c然后,用下面的SQL語(yǔ)句刪除p表中的一行數(shù)據(jù),并顯示兩表的內(nèi)容:delete from p where b=39。select * from pselect * from c為什么p表中的一行數(shù)據(jù),c表的數(shù)據(jù)也被刪除了?,在該數(shù)據(jù)庫(kù)中做下面實(shí)驗(yàn)。5. 創(chuàng)建工作級(jí)別規(guī)則job_level_rule,job_level 只能在39。,39。,39。,39。,39。之間。a39。f 39。039。939。7. 綁定規(guī)則hire_date_rule 到用戶自定義數(shù)據(jù)類型hire_date 上。9. 綁定規(guī)則my_character_rule 到orders 表的字段order_id。11. 創(chuàng)建姓名缺省值name_defa為user。13. 解除規(guī)則hire_date_rule 與用戶自定義數(shù)據(jù)類型hire_date 的綁定,帶39。選項(xiàng)。【思考題】1. T表的T字段的數(shù)據(jù)類型可以為字符型嗎?為什么?2. SQL Server怎樣保證數(shù)據(jù)庫(kù)的實(shí)體完整性、參照完整性和用戶自定義完整性?3. 如果用下面的語(yǔ)句創(chuàng)建p、c兩表,然后如實(shí)驗(yàn)題3那樣刪除p表的一行數(shù)據(jù),會(huì)出現(xiàn)什么情況?create table p (a char(2) primary key, b char(2) )create table c ( c char(2) primary key, a char(2), foreign key(a) references p(a) ON DELETE NO ACTION ON UPDATE NO ACTION )4. 綁定規(guī)則hire_date_rule 到用戶自定義數(shù)據(jù)類型hire_date 上帶‘futureonly’選項(xiàng),寫出相應(yīng)SQL語(yǔ)句并執(zhí)行之。我們?cè)谄髽I(yè)管理器里把hiredate字段的數(shù)據(jù)類型改為用戶自定義數(shù)據(jù)類型hire_date。e139。張三39。19901139。19701139。e139。李四39。19701139。19901139。關(guān)于數(shù)據(jù)更新的三種類型的SQL語(yǔ)句Insert、Delete 、Update的基本用法,同學(xué)們?cè)跀?shù)據(jù)庫(kù)原理課程中應(yīng)當(dāng)已經(jīng)掌握?!緦?shí)驗(yàn)內(nèi)容和要求】先把pangu數(shù)據(jù)庫(kù)附加到SQL Server服務(wù)器。查詢結(jié)果按公司編號(hào)和產(chǎn)品編號(hào)分組;7.查詢有多個(gè)員工的工資不低于1500 的部門編號(hào);8.查詢各部門中的最高工資數(shù)額;9.查詢?cè)诠竟ぷ鞯墓g相同的員工;10.查詢平均工資低于公司平均工資的部門編號(hào)、名稱及其平均工資;11.查詢單筆訂貨量超過(guò)10 單位的產(chǎn)品名稱;12.查詢order_id為3的訂貨紀(jì)錄,將其產(chǎn)品ID、產(chǎn)品名稱、訂貨公司的名稱保存到新建的表order3中。(練習(xí)事務(wù)的使用)實(shí)驗(yàn)6 TransactSQL 語(yǔ)言【實(shí)驗(yàn)?zāi)康摹縏ransactSQL 是ANSI SQL 的加強(qiáng)版語(yǔ)言,它提供了標(biāo)準(zhǔn)的SQL命令另外還對(duì)SQL 命令做了許多擴(kuò)充提供類似Basic、Pascal、C 等第三代語(yǔ)言的基本功能,如變量說(shuō)明、程序流程控制語(yǔ)言功能、函數(shù)等?!緦?shí)驗(yàn)類型】設(shè)計(jì)型實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容和要求】打開查詢分析器,步驟為:【開始】按鈕-【程序】-【Microsoft SQL Server】-【查詢分析器】。4. transactSQL 語(yǔ)言變量聲明與使用:(1) 聲明一個(gè)長(zhǎng)度為10 個(gè)字符的局部變量str1,將其值賦為’SQL’。(3) 聲明一個(gè)長(zhǎng)度為20 個(gè)字符的局部變量str,將str1和str2相連接后的值賦給str ?!緦?shí)驗(yàn)說(shuō)明】用declare聲明變量;用set或select為變量賦值;兩個(gè)字符串的連接運(yùn)算用“+”運(yùn)算符;用select或print顯示變量的值。【實(shí)驗(yàn)說(shuō)明】用use命令切換數(shù)據(jù)庫(kù);6. 控制命令使用調(diào)整員工工資,工作級(jí)別為1 的上調(diào)8% ,工作級(jí)別為2 的上調(diào)7%,工作級(jí)別為3 的上調(diào)6% ,其它上調(diào)5%。7. 常用函數(shù)使用(1) 統(tǒng)計(jì)函數(shù): 在pangu數(shù)據(jù)庫(kù)中查詢:1) 求各部門的平均工資。3) 求工資最高的員工姓名。【實(shí)驗(yàn)說(shuō)明】使用統(tǒng)計(jì)函數(shù)avg( )、count( )、max( )、sum( )。(2) 算術(shù)函數(shù)1) 用CEILING() 和FLOOR() 。(提示: rand())3) 給出值π值。Abc39。ABC39。(提示:lower( ))2) 把字符串39。、 39。全部轉(zhuǎn)換為大寫。 abc39。 5) 把字符串39。尾部的空格去掉。SQL Server39。(提示:LEFT( ) )7) 獲得字