日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

山东大学 2020级数据库系统 实验六

發布時間:2025/3/15 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 山东大学 2020级数据库系统 实验六 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

What’s more

山東大學 2020級數據庫系統 實驗一
山東大學 2020級數據庫系統 實驗二
山東大學 2020級數據庫系統 實驗三
山東大學 2020級數據庫系統 實驗四
山東大學 2020級數據庫系統 實驗五
山東大學 2020級數據庫系統 實驗六
山東大學 2020級數據庫系統 實驗七
山東大學 2020級數據庫系統 實驗八、九

寫在前面

做數據庫實驗一定要靜得下心來,才能發現其中的錯誤然后進行改正。同時,如果發現 SQL 語句總是報錯,“一定是你錯了,只是不知道錯在哪里!”

其次,SQL 語句中較為復雜的點博主都進行了注釋,希望大家一定要看懂思路后自己寫一遍,而不是盲目的 Ctrl+C,Ctrl+V,切記切記!!

實驗六

實驗六相較于之前的實驗難度稍微低一些,但也需要了解視圖和表的區別之后,做題會更加得心應手。考察的主要是查詢語句,在之前的實驗中想必應該非常熟悉了……

  • 6-1 例如:找出年齡小于20歲的所有學生的學號、姓名、年齡
    正確執行:create view test6_00 as select sid,name,age from pub.student where age>20
    Oracle擴展后方便寫法:
    create or replace view test6_00 as select sid,name,age from pub.student where age>20
    直行select count(*) from test6_00 檢查是否能夠5分鐘內查詢出全部結果,如果超時說明可能有錯誤,這種情況下嚴禁執行"update dbtest set test=6"進行交卷。
    找出年齡小于20歲且是"物理學院"的學生的學號、姓名、院系名稱,按學號排序

    思路:
  • 在 pub.student 中找到對應的屬性值即可;
  • 注意最后加上 order by sid;
create view test6_01 asselect sid, name, dnamefrom pub.studentwhere age < 20and sid in(select sidfrom pub.student_coursewhere dname = '物理學院')order by sid
  • 6-2 查詢統計2009級、軟件學院每個學生的學號、姓名、總成績(列名sum_score)(如果有學生沒有選一門課,則總成績為空值)
    思路:
  • 先找到滿足條件的學生的 sid, name;
  • 由于有學生沒有選一門課,但是這個學生也要計算在內,因此使用 natural left outer join 來進行連接;
  • 找到對應的總成績,然后連接即可;
create view test6_02 asselect sid, name, sum_scorefrom (select distinct sid, namefrom pub.studentwhere class = '2009'and dname = '軟件學院') natural left outer join(select distinct sid, sum(score) sum_scorefrom pub.student_coursegroup by sid)
  • 6-3 查詢2010級、計算機科學與技術學院、操作系統的學生成績表,內容有學號、姓名、成績。
    思路:
  • 根據條件進行查詢即可;
create view test6_03 asselect sid, name, scorefrom pub.student natural join pub.student_coursewhere class = '2010'and dname = '計算機科學與技術學院'and cid = (select cid from pub.course where name = '操作系統')
  • 6-4 找出選修"數據庫系統"課程,且成績大于90的學生的學號、姓名。
    思路:
  • 根據條件進行查詢即可;
  • 可以將兩張表進行自然連接;
create view test6_04 asselect sid, namefrom pub.student natural join pub.student_coursewhere cid = (select cid from pub.course where name = '數據庫系統')and score > 90
  • 6-5 找出姓名叫"李龍"的學生的學號及其選修全部課程的課程號、課程名和成績。
    思路:
  • 名為“李龍”的同學可以不只一個哦!!
  • 將兩張表進行自然連接后查詢出滿足條件的元素即可;
create view test6_05 asselect sid, cid, name, scorefrom pub.student_course natural join pub.coursewhere sid in (select distinct sid from pub.student where name = '李龍')
  • 6-6 找出選修了所有課程的學生的學號、姓名。
    思路:
  • 使用存在性檢測:not exists … except(minus) … 來對所有課程和學生選課進行檢驗即可;
create view test6_06 asselect distinct sid, namefrom pub.student Swhere not exists((select cidfrom pub.course)minus(select cidfrom pub.student_course Twhere S.sid = T.sid))
  • 6-7 找出選修了所有課程并且每門課程每次考試成績均及格的學生的學號、姓名。(題6的延伸和鞏固)
    思路:

  • 同樣可以使用存在性檢測先得出選修了所有課程的學生的 sid, name;
  • 然后添加條件 where score > 60即可;
  • 注意:這里的不及格指的是只要有一次考試不及格就不計入!!!

create view test6_07 asselect distinct sid, namefrom pub.student Swhere not exists((select cidfrom pub.course)minus(select cidfrom pub.student_course Twhere S.sid = T.sid))and sid not in(select sidfrom pub.student_coursewhere score < 60)
  • 6-8 找出選修了所有課程并且得到所有課程的學分(即每門課程最少一次考試及格)的學生的學號、姓名。(題6的 延伸和鞏固)。
    思路:
  • 首先還是使用存在性檢測得出選修了所有課程的學生的 sid, name;
  • “最少一次考試及格” 的反面為 “全都不及格”,因此將這些最大值不及格的學生去掉即可;
create view test6_08 asselect distinct sid, namefrom pub.student Swhere not exists((select cidfrom pub.course)minus(select cidfrom pub.student_course Twhere S.sid = T.sid))and sid not in(select sidfrom (select distinct sid, cid, max(score) max_scorefrom pub.student_coursegroup by sid, cid)where max_score < 60)
  • 6-9 查詢統計2010級、化學與化工學院的學生總學分表,內容有學號、姓名、總學分sum_credit。
    思路:
  • 第一步求出滿足條件的學生的 sid, name;
  • 第二步利用之前的方法去求出學生的總學分;(注意最大值 > 60 即計入學分哦!!)
create view test6_09 asselect t0.sid, t0.name, t1.sum_creditfrom (select distinct sid, namefrom pub.studentwhere class = '2010'and dname = '化學與化工學院') t0,(select distinct sid, sum(credit) sum_creditfrom (select distinct sid, cid, max(score) max_scorefrom pub.student_coursegroup by sid, cid) natural join pub.coursewhere max_score >= 60group by sid)t1where t0.sid = t1.sid
  • 6-10 找出有間接先行課的所有課程的課程號、課程名稱。
    Tips:所謂間接先行課:某一門課程 A 的先行課 B 的先行課 C,因此 C 就是 A 的間接先行課;
    思路:
  • 利用存在性檢測 exists 即可;
  • where 條件中均為 fcid 和 cid 的比較;
create view test6_10 as select cid, name from pub.course t0 where exists(select cidfrom pub.course t1where t0.fcid = t1.cid and exists(select cidfrom pub.course t2where t1.fcid = t2.cid))

再次強調:一定是看懂思路之后自己實踐哈~~
有問題還請斧正!

總結

以上是生活随笔為你收集整理的山东大学 2020级数据库系统 实验六的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人片免费看 | 国产一区二区三区精品在线 | 黄色资源网 | 国产夜夜夜 | 亚洲国产精品久久久久爰性色 | www.日本com| 中文字幕在线观看网 | 久久91亚洲 | 国产你懂得 | 亚洲乱码中文字幕久久孕妇黑人 | 欧美精品一区视频 | 操你啦在线视频 | 欧美粗大猛烈老熟妇 | 日本极品丰满ⅹxxxhd | 亚洲午夜天堂 | 亚洲一区二区视频网站 | 久久综合福利 | 午夜精品久久久久久久99热浪潮 | 精品午夜福利在线观看 | 久久久精品毛片 | 狠狠干青青草 | 久久精品无码专区免费 | 天堂网ww | 日韩三区四区 | 久久国产日韩欧美 | 国产精品综合 | 欧美日韩中文字幕在线视频 | 快射视频网 | 日韩成人av一区 | 青青青视频免费观看 | 91精品人妻一区二区 | 日韩精品一区在线观看 | 中文字幕亚洲图片 | 色综合天天色综合 | 日韩三级大片 | 色噜噜狠狠狠综合曰曰曰88av | 国产成人精品视频在线 | 日本大胆人体视频 | 亚洲成人观看 | 夜夜夜撸 | 亚洲欧美日韩一区二区 | 奇米成人影视 | 亚洲色图2 | 一区二区日韩视频 | 精品91久久久 | 男人免费视频 | 日日噜噜噜夜夜爽爽狠狠视频97 | 中国女人裸体乱淫 | 伊人五月婷婷 | 亚洲视频天天射 | 波多野结衣av一区二区全免费观看 | 亚洲性生活片 | 久久精品国产精品 | chinese精品自拍hd | 亚洲精品在线免费观看视频 | 欧美一级高清片 | 免费国产a级片 | 大尺度舌吻呻吟声 | 91蜜桃网站 | 91玉足脚交嫩脚丫在线播放 | 欧美老熟妇乱大交xxxxx | 日韩精品一区二区三区久久 | 亚洲欧美激情视频 | 中文字幕久久熟女蜜桃 | 成人精品三级av在线看 | 中文字幕av影片 | 日韩欧美一级在线 | 中文字字幕在线中文乱码 | 狠狠91| 黄色一级小视频 | 琪琪久久 | 日韩三级一区二区 | 制服丝袜在线第一页 | 天天插天天搞 | 成人免费一级视频 | 欧美变态口味重另类 | 国产精品伦理一区 | 成人小视频免费在线观看 | 超碰95在线 | 永久免费观看av | 国产区亚洲区 | 亚洲一级伦理 | 亚洲精品国产精品乱码不卡 | 96在线观看 | 色哟哟av | 日韩3p视频 | 精品国产一区二区三区在线 | 日本一区二区三区中文字幕 | 亚洲国产一区二区a毛片 | 久久国产精品免费看 | 加勒比在线免费视频 | 久草福利资源在线 | 欧美一区二区三区久久成人精品 | 青草操| 伊人网视频 | 国产a∨精品一区二区三区仙踪林 | 中文字幕一区二区三区人妻在线视频 | 熟妇大屁股一区二区三区视频 | exo妈妈mv在线播放高清免费 |