SQLServer2023年實(shí)驗(yàn)指導(dǎo)書(shū)2023年版_第1頁(yè)
SQLServer2023年實(shí)驗(yàn)指導(dǎo)書(shū)2023年版_第2頁(yè)
SQLServer2023年實(shí)驗(yàn)指導(dǎo)書(shū)2023年版_第3頁(yè)
SQLServer2023年實(shí)驗(yàn)指導(dǎo)書(shū)2023年版_第4頁(yè)
SQLServer2023年實(shí)驗(yàn)指導(dǎo)書(shū)2023年版_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)原理試驗(yàn)指導(dǎo)書(shū)——2023版本計(jì)算機(jī)與信息學(xué)院121創(chuàng)立數(shù)據(jù)庫(kù)與數(shù)據(jù)表試驗(yàn)?zāi)康模荷鑃QLSERVER環(huán)境,了解企業(yè)治理器和查詢分析器的根本使用方法;SQL的CREATE、ALTER和DROP命令;把握數(shù)據(jù)表的創(chuàng)立和數(shù)據(jù)記錄的插入方法。試驗(yàn)內(nèi)容:創(chuàng)立教學(xué)治理“JXGL”數(shù)據(jù)庫(kù),并建立學(xué)生STUDENT、課程COURSE和選修SC三個(gè)數(shù)據(jù)表,各表中的數(shù)據(jù)如下所示:STUDENT:SnoSnameSsexSageSdept95001李勇M20CS95002劉晨F19IS95003王敏F18MA95004張立M18ISCnoCnameCpnoCcreditCnoCnameCpnoCcredit1數(shù)據(jù)庫(kù)542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)構(gòu)造746數(shù)據(jù)處理27C語(yǔ)言64SnoCnoGrade9500119295001285950013889500229095002380SC:創(chuàng)立供給系統(tǒng)“GYXTSPJ和供給狀況表SPJ四個(gè)數(shù)據(jù)表,各表中數(shù)據(jù)如下所示。供給商S:SNOSNAMECITYS1精益天津S2萬(wàn)勝北京S3東方北京S4豐泰隆上海S5康健南京零件P:

PNOP1P2P3P4P5P6

PNAME螺母螺栓螺絲刀螺絲刀凸輪齒輪

COLOR紅綠藍(lán)紅藍(lán)紅

WEIGHT121714144030工程工程J:供給狀況SPJ:SNOS1S1S1S1S2S2S2S2S2S2S3S3S4S4S4S5S5S5S5

JNOJ1J2J3J4J5J6J7

PNOP1P1P1P2P3P3P3P3P5P5P1P3P5P6P6P2P3P6P6

JNAME三建一汽彈簧廠造船廠機(jī)車(chē)廠無(wú)線電廠半導(dǎo)體廠JNOJ1J3J4J2J1J2J4J5J1J2J1J1J1J3J4J4J1J2J4

CITY北京長(zhǎng)春天津天津唐山常州QTY200100700100400200500400400100200200100300200100200200500試驗(yàn)步驟:用企業(yè)治理器創(chuàng)立教學(xué)治理“JXGL”數(shù)據(jù)庫(kù)。連接“效勞器治理器/MicrosoftSQLServer,進(jìn)入SQL效勞治理器窗口,如圖1.1/稍后綠燈亮,啟動(dòng)成功。程序/MicrosoftSQLServer器是SLQServer的一個(gè)最重要的治理工具,它供給了一個(gè)遵從Microsoft治理把握臺(tái)〔MMC〕的用戶界面,以層疊形式顯示出全部SQLServer對(duì)象,使用企業(yè)治理器幾乎可以完成全部的治理工作。MicrosoftSQLServers/SQLServer組/(Local)(WindowsNT)/1.2所示。圖1.1SQL效勞治理器 圖1.2企業(yè)治理器創(chuàng)立教學(xué)治理“JXGL”數(shù)據(jù)庫(kù)。選擇“操作”菜單中的“建數(shù)據(jù)庫(kù)”命令,進(jìn)入“數(shù)據(jù)庫(kù)屬性窗口JXG1.3系統(tǒng)自動(dòng)創(chuàng)立JXGL數(shù)據(jù)庫(kù)。在JXGL數(shù)據(jù)庫(kù)中建立STUDENT表,并插入學(xué)生記錄。在把握臺(tái)根名目窗口中開(kāi)放“數(shù)據(jù)庫(kù)”文件夾,就會(huì)看到建立的數(shù)據(jù)庫(kù)JXG圖1.4所示,鼠標(biāo)右擊“表”圖標(biāo),在彈出的快捷菜單中選擇“建表”命令,啟動(dòng)“表設(shè)描述了列名、數(shù)據(jù)類型、長(zhǎng)度和允許空等屬性,將STUDENT表的各列屬性依次輸入到網(wǎng)1.5所示。圖1.3創(chuàng)立數(shù)據(jù)庫(kù)窗口 圖1.4“建表”命令“保存”按鈕 “保存”按鈕圖1.5表設(shè)計(jì)器 圖1.6設(shè)置主鍵然后,可以右擊列名Sno,選擇“設(shè)置主鍵”命令,其左側(cè)將消滅一個(gè)鑰匙樣圖標(biāo),如圖1.6所示。單擊表設(shè)計(jì)器的工具欄中的“保存”按鈕,消滅保存對(duì)話框,輸入表名STUDEN1.7所示,并按“確定”按鈕。1.7保存對(duì)話框JXGLSTUDENT/1.81.9所示。1.8“返回全部行”命令1.9輸入數(shù)據(jù)同樣方法,可以在JXGL數(shù)據(jù)庫(kù)中建立COURSE表,并插入記錄。同樣方法,可以在JXGL數(shù)據(jù)庫(kù)中建立SC表,并插入記錄。查看三個(gè)表中的內(nèi)容。JXGLSTUDENT表,選擇“翻開(kāi)表/1.8所示,即可查年STUDENT表中的內(nèi)容。同樣方法,可以查看COURSE表和SC表中的內(nèi)容。修改數(shù)據(jù)表構(gòu)造。STUDENT表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型。JXGLSTUDENT1.5所示,即可連續(xù)增加“入學(xué)時(shí)間”列,數(shù)據(jù)類型選擇為“datetime”型。單擊工具欄中的“保存”按鈕。JXGLSTUDENT表,選擇“翻開(kāi)表/1.8所示,即可查年STUDENT表中的內(nèi)容,Scome列值都為NULL。②刪除“入學(xué)時(shí)間”列。JXGLSTUDENT表,選擇“設(shè)計(jì)表”命令,即進(jìn)入表設(shè)計(jì)器窗口,右擊上方網(wǎng)格中的Scom除列”命令。單擊工具欄中的“保存”按鈕。JXGLSTUDENT表,選擇“翻開(kāi)表/1.8所示,看到Scome列已被刪除。刪除數(shù)據(jù)表。JXGLSTUDENT表,選擇“刪除”命令,即可刪除STUDENT表。同樣方法,可以刪除其他指定表。刪除數(shù)據(jù)庫(kù)在企業(yè)治理器中,右擊JXGL數(shù)據(jù)庫(kù),選擇“刪除”命令,即可刪除JXGL數(shù)據(jù)庫(kù)。2.用查詢分析器創(chuàng)立教學(xué)治理“JXGL”數(shù)據(jù)庫(kù)。連接“效勞器治理器“結(jié)果顯示方式”按鈕查詢窗格“運(yùn)行”按鈕查詢結(jié)果窗格對(duì)象掃瞄窗格/程序/MicrosoftSQLServer/1.10所示,SQLServe.SQLServers“結(jié)果顯示方式”按鈕查詢窗格“運(yùn)行”按鈕查詢結(jié)果窗格對(duì)象掃瞄窗格圖1.9登錄窗口 圖1.11查詢分析器查詢分析器界面如圖1.10所示,它由標(biāo)題欄、菜單欄、工具欄、對(duì)象掃瞄窗格、查詢窗格、查詢結(jié)果窗格等組成。其中,查詢窗格是編輯和執(zhí)行SQLServer程序的地方,查詢創(chuàng)立教學(xué)治理“JXGL”數(shù)據(jù)庫(kù)。在查詢窗格中輸入如下命令,然后單擊“運(yùn)行”鈕執(zhí)行該命令。CREATEDATABASEJXGL;清空查詢窗格后,在JXGL數(shù)據(jù)庫(kù)中建立STUDENT表,并插入記錄,然后執(zhí)行。CREATETABLESTUDENT(Snochar(5)notnullunique,Snamechar(20)notnullunique,Ssexchar(1),Sageint,Sdeptchar(20));INSERTINTOSTUDENTVALUES(?95001?,?李勇?,?M?,20,?CS?);INSERTINTOSTUDENTVALUES(?95003?,?王敏?,?F?,18,?MA?);清空查詢窗格后,JXGL數(shù)據(jù)庫(kù)中建立COURSE表,并插入記錄,然后執(zhí)行。CREATETABLECOURSE(Cnochar(2)notnullPRIMARYKEY(Cno),Cnamechar(20),Cpnochar(2),Ccreditsmallint);INSERTINTOCOURSEVALUES(?2?,?數(shù)學(xué)?,??,2);INSERTINTOCOURSEVALUES(?6?,?數(shù)據(jù)處理?,??,2);VALUES(?7?,?C語(yǔ)言?,?6?,4);清空查詢窗格后,JXGL數(shù)據(jù)庫(kù)中建立SC表,并插入記錄,然后執(zhí)行。CREATETABLESC(Snochar(5)notnull,Cnochar(2)notnull,Gradesmallint,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESSTUDENT(Sno),FOREIGNKEY(Cno)REFERENCESCOURSE(Cno));查看三個(gè)表中的內(nèi)容。分別執(zhí)行以下命令,查看STUDENT、COURSE和SC數(shù)據(jù)表中的內(nèi)容。SELECT*FROMSTUDENT;SELECT*FROMCOURSE;SELECT*FROMSC;修改數(shù)據(jù)表構(gòu)造。①向STUDENT表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型,用SELECT命令查看表中內(nèi)容。ALTERTABLESTUDENTADDSCOMEDATETIME;SELECT*FROMSTUDENT;②刪除“入學(xué)時(shí)間”列,再用SELECT命令查看表中內(nèi)容。ALTERTABLESTUDENTDROPCOLUMNSCOME;SELECT*FROMSTUDENT;刪除數(shù)據(jù)表。DROPTABLESC;DROPTABLESTUDENT;DROPTABLECOURSE;刪除數(shù)據(jù)庫(kù)命令。切換到其他任意數(shù)據(jù)庫(kù),然后可用如下命令刪除JXGL數(shù)據(jù)庫(kù)。DROPDATABASEJXGL;3.創(chuàng)立供給系統(tǒng)“GYXT”數(shù)據(jù)庫(kù)。(注:可承受企業(yè)治理器和查詢分析器兩種方法創(chuàng)立。)下面寫(xiě)出實(shí)現(xiàn)如下操作的SQL語(yǔ)句:創(chuàng)立供給系統(tǒng)“GYXT”數(shù)據(jù)庫(kù)。建立供給商表S。建立零件表P。建立工程工程表J。建立供給狀況表SPJ。2簡(jiǎn)潔查詢和連接查詢?cè)囼?yàn)?zāi)康模簨故彀盐誗QLServer查詢分析器的使用方法,加深對(duì)標(biāo)準(zhǔn)SQL查詢語(yǔ)句的理解。嫻熟把握簡(jiǎn)潔表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。試驗(yàn)內(nèi)容:基于試驗(yàn)一創(chuàng)立的教學(xué)治理JXGL數(shù)據(jù)庫(kù),參考教材簡(jiǎn)潔查詢和連接查詢章節(jié)中的SQL操作實(shí)例,實(shí)現(xiàn)數(shù)據(jù)的根本查詢操作?;谠囼?yàn)一創(chuàng)立的供給系統(tǒng)GYXT數(shù)據(jù)庫(kù),實(shí)現(xiàn)以下根本查詢操作。試驗(yàn)步驟:首先,寫(xiě)出以下操作的SQL語(yǔ)句,然后進(jìn)入到SQLServer查詢分析器中調(diào)試結(jié)果,并將結(jié)果抄寫(xiě)下來(lái)。在教學(xué)治理JXGL數(shù)據(jù)庫(kù)中進(jìn)展如下操作:求數(shù)學(xué)系學(xué)生的學(xué)號(hào)和姓名。求選修了課程的學(xué)生學(xué)號(hào)。求選修了數(shù)學(xué)課的學(xué)生學(xué)號(hào)和成績(jī),并要求對(duì)查詢結(jié)果按成績(jī)降序排列,假設(shè)成績(jī)一樣則按學(xué)號(hào)升序排列。80-900.8輸出。求數(shù)學(xué)系或計(jì)算機(jī)系姓劉的學(xué)生的信息。求缺少了成績(jī)的學(xué)生的學(xué)號(hào)和課程號(hào)。查詢每個(gè)學(xué)生的狀況以及他〔她〕所選修的課程。求學(xué)生的學(xué)號(hào)、姓名、選修的課程名及成績(jī)。90分以上的學(xué)生學(xué)號(hào)、姓名、及成績(jī)。查詢每一門(mén)課的間接先行課〔即先行課的先行課。在供給系統(tǒng)GYXT數(shù)據(jù)庫(kù)中進(jìn)展如下操作:求供給工程J1零件的供給商號(hào)SNO。求供給工程J1零件P1的供給商號(hào)SNO。統(tǒng)計(jì)每種零件的供給總量。3嵌套查詢和集合查詢?cè)囼?yàn)?zāi)康模簨故彀盐誗QLServer查詢分析器的使用方法,加深對(duì)標(biāo)準(zhǔn)SQL查詢語(yǔ)句的理解。嫻熟把握數(shù)據(jù)查詢中的嵌套、分組、統(tǒng)計(jì)、計(jì)算和組合的操作方法。試驗(yàn)內(nèi)容:基于試驗(yàn)一創(chuàng)立的教學(xué)治理JXGL數(shù)據(jù)庫(kù),參考教材嵌套查詢和集合查詢中的SQL操作實(shí)例,實(shí)現(xiàn)數(shù)據(jù)的高級(jí)查詢操作?;谠囼?yàn)一創(chuàng)立的供給系統(tǒng)GYXT數(shù)據(jù)庫(kù),實(shí)現(xiàn)以下根本查詢操作。試驗(yàn)步驟:首先,寫(xiě)出以下操作的SQL語(yǔ)句,然后進(jìn)入到SQLServer查詢分析器中調(diào)試結(jié)果,并將結(jié)果抄寫(xiě)下來(lái)。在教學(xué)治理JXGL數(shù)據(jù)庫(kù)中進(jìn)展如下操作:求選修了數(shù)學(xué)的學(xué)生的學(xué)號(hào)和姓名。求數(shù)學(xué)課程成績(jī)高于李勇的學(xué)生學(xué)號(hào)和成績(jī)。求其他系中年齡小于計(jì)算機(jī)系年齡最大者的學(xué)生。求其他系中比計(jì)算機(jī)系學(xué)生年齡都小的學(xué)生。求選修了數(shù)學(xué)課的學(xué)生姓名。求沒(méi)有選修數(shù)學(xué)課的學(xué)生姓名。查詢選修了全部課程的學(xué)生的姓名。求至少選修了學(xué)號(hào)為“95002”的學(xué)生所選修的全部課程的學(xué)生學(xué)號(hào)和姓名。求選修各門(mén)課的人數(shù)及平均成績(jī)。2門(mén)以上且都及格的學(xué)生號(hào)及總平均分。求952門(mén)以上且都及格的學(xué)生號(hào)及總平均分,并按平均成績(jī)排序。統(tǒng)計(jì)每個(gè)人及格的成績(jī)的平均值,及格的門(mén)數(shù),結(jié)果按平均成績(jī)降序,及格門(mén)數(shù)降序排列。統(tǒng)計(jì)全部課程均及格學(xué)生的平均成績(jī),及格的門(mén)數(shù),結(jié)果按平均成績(jī)降序,及格門(mén)數(shù)降序排列。在供給系統(tǒng)GYXT數(shù)據(jù)庫(kù)中進(jìn)展如下操作:求供給工程J1紅色零件的供給商號(hào)SNO。1000種以上的供給商名字。求使用了天津供給商生產(chǎn)的紅色零件的工程號(hào)JNO。求沒(méi)有使用天津供給商生產(chǎn)的紅色零件的工程號(hào)JNO。求至少使用了供給商S1所供給的全部零件的工程號(hào)JNO。4數(shù)據(jù)更試驗(yàn)?zāi)康模簨故彀盐赵赟QLServer的企業(yè)治理器和查詢分析器中進(jìn)展數(shù)據(jù)更的方法。SQL更語(yǔ)句的理解。試驗(yàn)內(nèi)容:基于試驗(yàn)一創(chuàng)立的教學(xué)治理JXGL數(shù)據(jù)庫(kù),參考教材數(shù)據(jù)更的SQL操作實(shí)例,實(shí)現(xiàn)數(shù)據(jù)的插入、修改和刪除操作。基于試驗(yàn)一創(chuàng)立的供給系統(tǒng)GYXT數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)的插入、修改和刪除操作。提示:用企業(yè)治理器實(shí)現(xiàn)數(shù)據(jù)更,先翻開(kāi)企業(yè)治理器,開(kāi)放指定的數(shù)據(jù)庫(kù)節(jié)點(diǎn),單擊“表”圖標(biāo),在右側(cè)窗格中右擊指定的表,選擇“翻開(kāi)表/1.8所示,假設(shè)插入數(shù)據(jù),則在1.9所示;假設(shè)刪除數(shù)據(jù),在消滅的表格中右擊指定的整行記錄,選擇“刪除”命令,即可刪除該記錄;假設(shè)修改某數(shù)據(jù)項(xiàng),可以直接在表格中進(jìn)展修改。SQL操作語(yǔ)句。試驗(yàn)步驟:在教學(xué)治理JXGL數(shù)據(jù)庫(kù)中進(jìn)展如下操作:將一個(gè)學(xué)生記錄〔95020IS;年齡:18〕插入STUDENT表中。數(shù)據(jù)的插入操作:插入一條選課記錄,學(xué)號(hào)為950201號(hào)課程。對(duì)每門(mén)課程,求學(xué)生的平均分?jǐn)?shù),并把結(jié)果存入數(shù)據(jù)庫(kù)。95020轉(zhuǎn)到數(shù)學(xué)系。0.8。95020學(xué)生的記錄。刪除數(shù)學(xué)系全部學(xué)生的選課記錄。在供給系統(tǒng)GYXT數(shù)據(jù)庫(kù)中進(jìn)展如下操作:S,P,J,SPJ表中插入局部數(shù)據(jù)〔參照教材P64頁(yè),此題試驗(yàn)一已完成〕將供給商序號(hào)為S5的名稱改為宏民廠。S表中刪除供給商序號(hào)為S5的記錄,考慮對(duì)SPJ表的相應(yīng)操作。S表中插入一條供給商信息:(S6,華天,深圳)。把全部紅色零件的顏色改為粉紅色。S1供給給J1的零件P1改為由S2供給。刪去全部藍(lán)色零件及相應(yīng)的SPJ記錄。5數(shù)據(jù)完整性試驗(yàn)?zāi)康模?.了解SQLServer用約束來(lái)維護(hù)數(shù)據(jù)完整性的機(jī)制。2.把握在企業(yè)治理器和查詢分析器中如何創(chuàng)立、使用及刪除約束的方法。試驗(yàn)內(nèi)容:基于試驗(yàn)一創(chuàng)立的教學(xué)治理JXGL數(shù)據(jù)庫(kù),實(shí)現(xiàn)約束的創(chuàng)立、查看和刪除操作。創(chuàng)立人事關(guān)系RSGX數(shù)據(jù)庫(kù)及其中的職工數(shù)據(jù)表和部門(mén)數(shù)據(jù)表,并實(shí)現(xiàn)完整性約束條件的定義。試驗(yàn)步驟:約束是SQLServerNOTNULL〔非空、CHECK〔檢查、UNIQUE〔惟一、PRIMARYKEY〔主鍵、FOREIGNKEY〔外鍵〕和DEFALT〔默認(rèn)〕約束。在教學(xué)治理JXGL數(shù)據(jù)庫(kù)中進(jìn)展如下操作:建立一個(gè)CITY表CityNo,CityNam,將CityNo企業(yè)治理器方法:JXGLCITY1。②翻開(kāi)企業(yè)治理器,開(kāi)放JXGL數(shù)據(jù)庫(kù)下的“表”文件夾,在右邊的具體窗格中選擇要?jiǎng)?chuàng)立約束的表CITY,右擊該表,選擇“設(shè)計(jì)表”命令,啟動(dòng)表設(shè)計(jì)器。在表設(shè)計(jì)器中,右擊需要設(shè)為主鍵的字段CityNo,選擇“設(shè)置主鍵”命令其左側(cè)將消滅一個(gè)鑰匙樣圖標(biāo)。設(shè)置完畢,關(guān)閉表設(shè)計(jì)器。查詢分析器方法:SQL語(yǔ)句創(chuàng)立主鍵,可使用CREATETABLE命令完成:CREATETABLECITY( CityNo CHAR(2) CONSTRAINTc1PRIMARYKEY,CityNameVARCHAR(30)NOTNULL);ALTERTABLE命令為已存在的表創(chuàng)立主鍵約束:ALTERTABLECITYADDCONSTRAINTc1PRIMARYKEY(CityN)c1為主鍵約束名稱。為JXGL數(shù)據(jù)庫(kù)中的CITY表,為其“CityName”創(chuàng)立惟一約束。企業(yè)治理器方法:①在企業(yè)治理器中,選擇設(shè)置惟一約束的CITY②在表設(shè)計(jì)器中,右擊CityName字段,選擇“索引/鍵”命令,消滅“屬性”對(duì)話框,并進(jìn)入“索引/鍵”選項(xiàng)卡。③在該選項(xiàng)卡中,單擊“建”按鈕,然后在“索引名”文本框中輸入惟一約束名稱,再?gòu)牧忻x項(xiàng)的下拉列表框中選擇字段名稱〔CityNam,最終選擇“創(chuàng)立UNIQU”5.1所示。單擊“關(guān)閉”按鈕,完成惟一約束的創(chuàng)立。 圖5.1創(chuàng)立惟一約束對(duì)話框 圖5.2設(shè)置檢查約束查詢分析器方法:為已存在的表創(chuàng)立惟一約束,SQL語(yǔ)句如下:ALTERTABLECITYADDCONSTRAINTc2UNIQUE(CityNam)為JXGL數(shù)據(jù)庫(kù)中的SC表,為其“GRADE”創(chuàng)立檢查約束。企業(yè)治理器方法:①在企業(yè)治理器中,選擇設(shè)置檢查約束的SC②在表設(shè)計(jì)器中,右擊GRADE字段,選擇“CHECK約束”命令,消滅“屬性”對(duì)話框,并進(jìn)入“CHECK約束”選項(xiàng)卡。③在該選項(xiàng)卡中,單擊“建”按鈕,然后在“約束名”文本框中輸入惟一約束名稱,GRADE>=0ANDGRADE<=105.2所示。單擊“關(guān)閉”按鈕,完成檢查約束的創(chuàng)立。查詢分析器方法:為已存在的表創(chuàng)立檢查約束,SQL語(yǔ)句如下:ALTERTABLESCADDCONSTRAINTc3CHECK(GRADE>=0ANDGRADE<=10)為JXGL數(shù)據(jù)庫(kù)中的STUDENT表,為其“SsexM。企業(yè)治理器方法:①在企業(yè)治理器中,選擇設(shè)置默認(rèn)約束的STUDENT②在表設(shè)計(jì)器中,選擇SsexM5.3所示。單擊“關(guān)閉”按鈕,完成默認(rèn)約束的創(chuàng)立。查詢分析器方法:為已存在的表創(chuàng)立默認(rèn)約束,SQL語(yǔ)句如下:ALTERTABLESTUDENTADDCONSTRAINTc4DEFAULT?MFORSsex;“默認(rèn)值”框 “默認(rèn)值”框圖5.3創(chuàng)立默認(rèn)約束 圖5.4創(chuàng)立外鍵約束為JXGL數(shù)據(jù)庫(kù)中的SC表,為其“Sno”創(chuàng)立外鍵約束。企業(yè)治理器方法:①在企業(yè)治理器中,選擇設(shè)置外鍵約束的SC表,翻開(kāi)表設(shè)計(jì)器。②鼠標(biāo)右擊,選擇“關(guān)系”命令,翻開(kāi)“屬性”對(duì)話框的“關(guān)系”選項(xiàng)卡。③在該選項(xiàng)卡中,單擊“建”按鈕,從主鍵表下拉列表中選擇外鍵引用表STUDENT,并在其下拉列表框中選擇外鍵引用的SNO列;在外鍵表下拉表框中選擇要?jiǎng)?chuàng)立外鍵的SC表,并從其下拉表框中選擇要?jiǎng)?chuàng)立外鍵約束的SNO5.4所示。單擊“關(guān)閉”按鈕,完成外鍵約束的創(chuàng)立。查詢分析器方法:為已存在的表創(chuàng)立外鍵約束,SQL語(yǔ)句如下:ALTERTABLESC ADD CONSTRAINT c5 FOREIGN KEY(Sno) REFERENCESSTUDENT(Sno);查看約束的定義在企業(yè)治理器中,選擇要查看約束的表,翻開(kāi)表設(shè)計(jì)器,單擊鼠標(biāo)右鍵,分別選擇“索引/CHECK”命令,可以查看各類約束。刪除約束企業(yè)治理器方法:引/CHECK”命令,可以刪除各類約束。查詢分析器方法:刪除約束的SQL語(yǔ)句格式為:ALTERTABLE表名>DROPCONSTRAINT<約束名>;例如,刪除上例在JXGL數(shù)據(jù)庫(kù)中為SC表的“Sno”列創(chuàng)立的外鍵約束。ALTERTABLESCDROPCONSTRAINTc5;創(chuàng)立人事關(guān)系RSGX數(shù)據(jù)庫(kù),并定義職工和部門(mén)兩個(gè)關(guān)系模式:職工〔職工號(hào),姓名,年齡,職務(wù),工資,部門(mén)號(hào)部門(mén)〔部門(mén)號(hào),名稱,經(jīng)理名,,其中部門(mén)號(hào)為主碼;要求在模式中完成以下完整性約束條件的定義:定義每個(gè)模式的主碼;定義參照完整性;60歲。6視圖試驗(yàn)?zāi)康模喊盐辗謩e用SQLServer企業(yè)治理器和查詢分析器創(chuàng)立、刪除、查詢、更視圖的方法。嫻熟把握創(chuàng)立、刪除、查詢和更視圖的SQL語(yǔ)句的用法,加深理解視圖的四種用途。試驗(yàn)內(nèi)容:基于試驗(yàn)一創(chuàng)立的教學(xué)治理JXGL數(shù)據(jù)庫(kù),參考教材視圖的SQL操作實(shí)例,實(shí)現(xiàn)視圖的創(chuàng)立、刪除、查詢和更操作?;谠囼?yàn)一創(chuàng)立的供給系統(tǒng)GYXT數(shù)據(jù)庫(kù),實(shí)現(xiàn)視圖的創(chuàng)立、刪除、查詢和更操作。試驗(yàn)步驟:在教學(xué)治理JXGL數(shù)據(jù)庫(kù)中進(jìn)展如下操作:建立一個(gè)名為“CS_Student”的計(jì)算機(jī)系學(xué)生視圖,并要求進(jìn)展修改和插入操作時(shí)仍須保證該視圖只有計(jì)算機(jī)系的學(xué)生〔SdeptCS將顯示Student〕企業(yè)治理器方法:“屬性”“運(yùn)行”按鈕“驗(yàn)證SQ按鈕關(guān)系圖窗格“屬性”“運(yùn)行”按鈕“驗(yàn)證SQ按鈕關(guān)系圖窗格網(wǎng)格窗格SQL窗格結(jié)果窗格6.1視圖設(shè)計(jì)器②單擊“添加表”按鈕,翻開(kāi)“添加表”對(duì)話框,如圖6.2所示,可從該對(duì)話框中選擇建立視圖的基表或視圖或函數(shù)。這里,我們選擇STUDENT表,單擊“添加”按鈕,將表添加到視圖設(shè)計(jì)器中,關(guān)閉“添加表”對(duì)話框。6.2“添加表”對(duì)話框③此時(shí),STUDENT表消滅在視圖設(shè)計(jì)器的關(guān)系圖窗格中。依據(jù)建視圖的需要,從表中STUDENT表中的SnoSname、SsexSage④在網(wǎng)格窗格中的“準(zhǔn)則”欄中設(shè)置過(guò)濾記錄的條件。這里需要設(shè)置的條件是Sdept‘CS’”,Sdep=‘CSQLSQL單擊“運(yùn)行”按鈕,在結(jié)果窗格中預(yù)覽視圖返回的結(jié)果,如圖6.36.3視圖結(jié)果⑥單擊工具欄的“保存”按鈕,彈出“另存為”對(duì)話框,輸入視圖名“CS_Studen6.4CS_Student消滅在企業(yè)治理器中。查詢分析器方法:

6.4“另存為”對(duì)話框翻開(kāi)查詢分析器,在查詢窗格中輸入以下SQL語(yǔ)句,然后運(yùn)行,輸出結(jié)果。CREATEVIEWCS_StudentASSELECTSno,Sname,Ssex,SageFROMStudentWHERESdept=”CS”WITHCHECKOPTION以下操作只需寫(xiě)出查詢分析器方法的SQL操作語(yǔ)句。建立計(jì)算機(jī)系選修了1號(hào)課程的學(xué)生的視圖CS_S1〔注:使用上題建立的視圖CS_Student〕刪除視圖CS_S1。在計(jì)算機(jī)系學(xué)生視圖CS_Student90分以上的學(xué)生。向計(jì)算機(jī)系學(xué)生視圖CS_Student中插入一個(gè)生記錄,其中學(xué)號(hào)為95030,姓名為20,男生。在計(jì)算機(jī)系學(xué)生視圖CS_Student95030的學(xué)生姓名改為“李四刪除計(jì)算機(jī)系學(xué)生視圖CS_Student95030的學(xué)生記錄。在供給系統(tǒng)GYXT數(shù)據(jù)庫(kù)中進(jìn)展如下操作:創(chuàng)立視圖VSJ,它記錄了給“三建”工程工程的供給零件的狀況,包括供給商號(hào)、零件號(hào)和零件數(shù)量。對(duì)VSJ視圖查詢S1供給商的供貨狀況。思考題:視圖的四種用途是什么?參考答案1答案3.(1)CREATEDATABASEGYXTCREATETABLES(SNOCHAR(2)PRIMARYKEY(SNO),SNAMECHAR(20),CITYCHAR(20));CREATETABLEP(PNOCHAR(2)PRIMARYKEY(PNO),PNAMECHAR(20),COLORCHAR(10),WEIGHTINT);CREATETABLEJ(JNOCHAR(2)PRIMARYKEY(JNO),JNAMECHAR(20),CITYCHAR(20));CREATETABLESPJ(SNOCHAR(2),PNOCHAR(2),JNOCHAR(2),QTYINT,PRIMARYKEY(SNO,PNO,JNO),FOREIGNKEY(SNO)REFERENCESS(SNO),FOREIGNKEY(PNO)REFERENCESP(PNO),FOREIGNKEY(JNO)REFERENCESJ(JNO),);2答案(1)selectsno,snamefromstudentwheresdept=MAselectdistinctsnofromscselectsno,gradefromsc,o=oandcname=數(shù)學(xué)orderbygradedesc,snoselectsno,grade*0.8fromsc,coursewheregradebetween80and90andcname=數(shù)學(xué)o=oselect*fromstudentwheresdeptin(?MA,CS)andsnamelike劉%selectsno,cnofromscwheregradeisNULLselectstudent.sno,sname,ssex,sage,sdept,cnogradefromstudentleftouterjoinsconstudent.sno=sc.snoselectstudent.sno,sname,cname,gradefromstudent,sc,coursewherestudent.sno=o=oselectstudent.sno,sname,gradefromstudent,sc,coursewherestudent.sno=o=oandsname=數(shù)學(xué)andgrade>=90selectFIRST.cno,SECOND.cpnofromcourseFIRST,courseSECONDwhereFIRST.cpno=SECOND.cno(1)selectdistinctsnofromSPJwherejno=J1selectdistinctsnofromSPJwherejno=J1andpno=P1selectpno,SUM(qty)fromSPJgroupbypno3答案1.(1)selectstudent.sno,snamefromstudent,sc,coursewherestudent.sno=o=oandcname=數(shù)學(xué)selectstudent.sno,gradefromstudent,sc,coursewherestudent.sno=o=oandcname=數(shù)學(xué)andgrade>(selectgradeformsc,student,coursewherestudent.sno=o=oandcname=數(shù)學(xué)andsname=)select*fromstudentwheresdept<>CSandsage<(selectmax(sage)fromstudentwheresdept=CS)select*fromstudentwheresdept<>CSandsage<all(selectsagefromstudentwheresdept=CS)selectsnamefromstudent,sc,coursewherestudent.sno=o=oandcname=數(shù)學(xué)selectsnamefromstudentwheresnonotin(selectsnofromscwherecno=(selectcnofromcoursewherecname=))**(7)selectsnamefromstudentwherenotexists(select*fromcoursewherenotexists(select*fromscwheresno=student.snoandcno=o))**(8)selectdistinctsnofromscscxwherenotexists(select*fromscscywherescy.sno=95002andnotexists(select*fromscsczwherescz.sno=o=o))selectcno,count(*),avg(grade)fromscgroupbycnoselectsno,avg(grade)fromscwheregrade>60groupbysnohavingcount(*)>=2selectsno,avg(grade)fromscwheregrade>60andsnolike?95%?groupbysnohavingcount(*)>=2orderby2selectsno,avg(grade),count(*)fromscwheregrade>60groupbysnoorderby2desc,3descselectcno,avg(grade),count(*)fromscwheregrade>60groupbycnoorderby2desc,3desc2.(1)selectdistinctsnofromSPJwherejno=?J1?andpnoin(selectpnofromPwherecolor=?紅?)(2)selectsnamefromSwheresnoin(selectsnofromSPJgroupbysnohavingSUM(qty)>=1000)4答案values(?95020?,?陳冬?,?M?,18,?IS?)insertintoscvalues(?95020?,?1?)createtabledeptage(sdeptchar(20),avgagesmallint);insertintodeptageselectsdept,AVG(sa

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論