数据库相关子查询实例
生活随笔
收集整理的這篇文章主要介紹了
数据库相关子查询实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上圖是學生選修課程表SC,來自數據庫概述第五版。列名為學號,課程號,成績。
問題:查找每個學生超過自己選修平均成績的課程號?
select Sno,Cno from sc x where grade >=(select avg(grade)from sc ywhere y.sno=x.sno );結果如下:
上述的查詢過程可能之一:
1、從外層查詢取出sc中的一個元組x,將元組x的sno值(201215121)傳遞給內層查詢。
select ?AVG(grade) from sc y where y.sno='201215121';2、執行內層查詢,得到平均值88,用該值代替內層查詢,得到外查詢;
select sno,cno from sc x where grade>=88;3、執行上面的查詢,將取出的剛才的一個元組x中的成績與88比較,最后得出一個結果。
201215121, 1
4、重復123步驟,知道將元組sc x全部取出。
注:內層查詢與外層查詢有關,因此必須反復求值。即每次取出一次x,都必須進行內層求平均值。
總結
以上是生活随笔為你收集整理的数据库相关子查询实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 协调器太多,cc2530的终端或则路由器
- 下一篇: Navicate Premium不能用l