




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗三數據的更新操作和視圖本實驗需要2學時。一、實驗目的1、掌握視圖的創建、修改和刪除操作。2、掌握數據庫數據更新(增加、修改、刪除)操作。二、實驗內容和步驟1、視圖(1)建立名為UV_SC的視圖。該視圖可以讓我們看到每個學生的姓名、選修課程名和成績。(2)利用UV_SC視圖,查看平均成績在80分以上的學生姓名。(3)建立名為UV_Course的視圖,該視圖顯示每門課的課程名和選修該課程的學生人數。(4)修改視圖UV_Course,在視圖中增加一列,顯示選修該課程所有學生的平均成績。(5)建立名為UV_IS_Depart的視圖。該視圖可以用來查看“信息系”的學生的學號、姓名、年齡和系名。并保證對該視圖的修改滿足系名為信息系的條件。(6)建立名為UV_Student的加密視圖。該視圖可以用來查看每個學生選修的課程門數和平均成績。(7)利用UV_Student視圖,查詢平均成績在80分以上的學生學號。(8)能否利用視圖UV_Student,修改某個學生的平均成績?(9)刪除視圖UV_Student。2、數據更新(1)向STUDENT表增加如下記錄:SnoSnameSsexSageSaddressSdept95011王一鳴男20福州市計算機系(2)將學號’95011’,成績80,以及課程表中的所有課程號插入到SC表中。(3)建立與表STUDENT同結構的空表STUD。然后利用INSERT命令把表STUDENT中年齡大于19的學生記錄添加到表STUD。(注意:可以使用selectinto語句實現同結構空表的創建,再使用insert命令插入記錄;或者使用單條selectinto語句實現等同的功能)(4)為“95002”的學生增加選修“操作系統”和“數據結構”這兩門課的選課記錄。(5)把課程名為“操作系統”的成績從成績表SC中刪除。(試用三種方式完成)(6)將女生的成績提高10%。(試用三種方式完成)(7)如果學生“張三”的數據結構的成績低于65,則加上10分。(8)將成績最低的學生的成績加上10分。(9)將前3名成績最高的學生的成績減去10分。(10)為沒有選課的學生自動增加選修“01”課程的選課記錄。(11)把選修“數學”不及格的成績全部改成空值。(12)刪除成績低于總平均成績的女生的選課記錄。三、實驗環境四、調試過程五、實驗結果六、總結 通過此次實驗:我知道了視圖不是一張真實的表格,是一個虛擬的存在形式。掌握了對視圖的創建(createorreplace):當視圖不存在時可使用create進行創建;而如果不確定視圖是否已存在,但此時又需要建立一張此名稱的視圖時,可使用replace創建,如果視圖名已存在也不會出現沖突,而是進行替換。在創建視圖時如果使用了withcheckoption表示在視圖上執行UPDATEINSERT或DELETE操作時,要保證所修改的行滿足視圖定義中的謂詞條件,即SELECT查詢子句中的限定條件:如Where條件,這樣可以確保數據修改后仍可通過視圖看到修改的數據。分清楚了對視圖結構的修改(alter)、對視圖數據的修改(update)。同時對視圖上的計算列、內置函數列和行集合函數列不能修改。知道了對視圖數據的刪除操作(delete)。通過第二題的訓練也使我對數據庫數據的更新語句有了更多的體會和認識。第二題第五小題,要求三種方法,只寫出了兩種,第三種有點沒轍。而其他題目有的沒要求,因為在思考過程有別的思路,也有多寫了相關方法。附錄:--1、視圖--(1)建立名為UV_SC的視圖。該視圖可以讓我們看到每個學生的姓名、選修課程名和成績。createviewUV_SCasselectsname,cname,gradefromstudents,coursec,scwheres.sno=sc.snoando=oselect*fromUV_SC--(2)利用UV_SC視圖,查看平均成績在分以上的學生姓名。selectsnamefromUV_SCgroupbysnamehavingavg(grade)>80--(3)建立名為UV_Course的視圖,該視圖顯示每門課的課程名和選修該課程的學生人數。createviewUV_Courseasselectcname,count(*)as'選修人數'fromcoursec,scwhereo=ogroupbycnameselect*fromUV_Course--(4)修改視圖UV_Course,在視圖中增加一列,顯示選修該課程所有學生的平均成績。alterviewUV_Courseasselectcname,count(*)as'選修人數',avg(grade)as'平均成績'fromcoursec,scwhereo=ogroupbycnameselect*fromUV_Course--(5)建立名為UV_IS_Depart的視圖。該視圖可以用來查看“信息系”的學生的學號、姓名、年齡和系名。并保證對該視圖的修改滿足系名為信息系的條件。createviewUV_IS_Departasselectsno,sname,sage,sdeptfromstudentswheresdept='信息系'withcheckoptionselect*fromUV_IS_Depart--(6)建立名為UV_Student的加密視圖。該視圖可以用來查看每個學生選修的課程門數和平均成績。createviewUV_Student(sno,course_no,avg_grade)withencryptionasselectsno,count(*),avg(grade)fromscgroupbysnoselect*fromUV_Student--(7)利用UV_Student視圖,查詢平均成績在分以上的學生學號。selectsnofromUV_Studentwhereavg_grade>=80--(8)能否利用視圖UV_Student,修改某個學生的平均成績?updateUV_Studentsetavg_grade=70wheresno=95001--(9)刪除視圖UV_Student。dropviewUV_Student--2、數據更新--(1)向STUDENT表增加如下記錄:--Sno Sname Ssex Sage Saddress Sdept--95011 王一鳴 男 20 福州市 計算機系insertintostudent(sno,sname,ssex,sage,saddress,sdept)values('95011','王一鳴','男',20,'福州市','計算機系')altertablestudentaddsaddressvarchar(50)null--修改表結構,增加saddress列select*fromstudentwheresno='95011'--(2)將學號’’,成績,以及課程表中的所有課程號插入到SC表中。insertintosc(sno,cno,grade)select'95011',cno,80fromcourseselect*fromsc--(3)建立與表STUDENT同結構的空表STUD。然后利用INSERT命令把表STUDENT中年齡大于的學生記錄添加到表STUD。(注意:可以使用selectinto語句實現同結構空表的創建,再使用insert命令插入記錄;或者使用單條selectinto語句實現等同的功能)--法一select*intoSTUDfromstudentwheresage>19--法二select*intoSTUDfromstudentwhere1=0insertintoSTUD(sno,sname,sage,ssex,sdept,saddress)selectsno,sname,sage,ssex,sdept,saddressfromstudentwheresage>19select*fromSTUD--(4)為“”的學生增加選修“操作系統”和“數據結構”這兩門課的選課記錄。insertintosc(sno,cno,grade)select'95002',cno,nullfromcoursewherecname='操作系統'orcname='數據結構'select*fromsc--(5)把課程名為“操作系統”的成績從成績表SC中刪除。(試用三種方式完成)--法一deletefromscwherecnoin( selectcno fromcourse wherecname='操作系統')--法二deletefromscwhereexists( selectcno fromcoursec wherecname='操作系統'ando=o)--法三--(6)將女生的成績提高%。(試用三種方式完成)--法一updatescsetgrade=grade*1.1wheresnoin( selectsno fromstudent wheressex='女')--法二updatescsetgrade=grade*1.1whereexists( selectsno fromstudents wheressex='女'ands.sno=sc.sno)--法三updatescsetgrade=grade*1.1where( selectcount(*) fromstudents wheres.sno=sc.snoandssex='女')=(selectcount(*)fromcoursewherecno=o)--(7)如果學生“張三”的數據結構的成績低于,則加上分。updatescsetgrade=grade+10whereexists( selectsno fromstudents wheres.sno=sc.snoandsname='張三' andcnoin ( selectcno fromcourse wherecname='數據結構' ))--查看結果selectsname,cname,gradefromstudents,coursec,scwheres.sno=sc.snoando=oandsname='張三'andcname='數據結構'--(8)將成績最低的學生的成績加上分。updatescsetgrade=grade+10wheregradein( selectmin(grade) fromsc)--(9)將前名成績最高的學生的成績減去分。updatescsetgrade=grade-10wheregradein( selecttop3grade fromsc orderbygradedesc)--(10)為沒有選課的學生自動增加選修“”課程的選課記錄。insertintosc(sno,cno,grade)selectsno,'01',nullfromstudentwheresnonotin( selectdistinct(sno)--不顯示重復值 fromsc)select*fromsc--(11)把選修“數學”不及格的成績全部改成空值。updatescsetgrade=nullwheresnoin( selectsno fromcoursec whereo=oandcname='數學'andgrade<60)--(12)刪除成績低于總平均成績的女生的選課記錄。--法一deletefromsc--刪除該女生成績低于總平均成績的該選修記錄wheresnoin( selects.sn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司春節大掃除活動方案
- 公司燒烤聚餐活動方案
- 公司聯誼會活動策劃方案
- 公司策劃培訓活動方案
- 公司聚會公司年會策劃方案
- 公司搬遷開業活動方案
- 公司文化策劃方案
- 公司端午節粽子活動方案
- 公司生日會儀式策劃方案
- 拓展任務-火災事故應急處置
- 2025春季學期國開電大專科《機械制圖》一平臺在線形考(形成性任務1至4)試題及答案
- 文具店創業計劃書文具店創業準備計劃書范文
- 銀川永寧縣社區工作者招聘筆試真題2024
- 浙江省強基聯盟2024-2025學年高二下學期5月聯考試題 物理 PDF版含解析
- 企業政策宣講活動方案
- 自來水考試試題大題及答案
- (2025)發展對象考試題庫與答案
- 北京師范大學《微積分(2)》2023-2024學年第二學期期末試卷
- CJ/T 410-2012隔油提升一體化設備
- 鴻蒙模擬試題及答案
- 2025屆湖南長沙雅禮實驗中學七年級數學第二學期期末學業水平測試試題含解析
評論
0/150
提交評論