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

歡迎訪問 生活随笔!

生活随笔

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

数据库

数据库练习题(1)

發布時間:2025/5/22 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库练习题(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、表的數據結構如下:

student表(sno,sname,sage)--學號,姓名,學生年齡

course表(cno,cname,tno)--課程代碼,課程名稱,老師工號

sc表(sno,cno,score)--學號,課程代碼,分數

teacher表(tno,tname)--老師工號,老師姓名

1)查詢'001'課程比'002'課程成績高的的所有學生學號

分析:相關的表sc,

方法1:分別找出001課程與002課程所有信息,然后從兩個表中找出001大于002的學生學號,這種方法會用到兩個子查詢,會比較慢

方法2:用聯合查詢,把第1個SC跟第2個SC通過學號聯合再一起,然后找出聯合表1中001的課程,表2中002的課程,且表1中001課程要大于表2中002課程

語句:

select s1.sno from sc s1,sc s2

where s1.sno = s2.sno and s1.cno = '001' and s2.cno = '002' and s1.score > s2.score;

2)查詢平均成績大于60分的學生學號和平均成績

分析:相關的表sc,平均成績:avg(score)

方法1:用1個子查詢,通過學生學號找出所有學生的平均成績,然后從這個 表格中找出大于60分的學生學號及平均成績即可

方法2:顯然第1個方法,比較冗余,因此在進行分組查詢時,進行條件限制一下就可以了,group by sno having avg(score)>60

語句:

select sno,avg(score) from sc group by sno having avg(score)>60;

注意:

查詢學生的平均成績時,必須先對表進行分組查詢。

3)查詢所有學生的學號,姓名,選課數,總成績。

分析:相關的表有學生表student,成績表sc

方法:把student表跟sc表通過學號聯合,然后通過學號進行分組,統計出每個學號的課程的總數(count),及總成績(sum);

語句:

select s1.sno,s1.sname,count(s2.cno),sum(s2.score)

from student s1,sc s2

where s1.sno = s2.sno group by s1.sno;

4)查詢姓李老師的個數

分析:相關的表teacher

方法:統計個數用count函數,查詢李姓老師,用like'李%'

語句:

select count(tname) from teacher where tname like'李%';

注意:like前面要加上where

5)查詢所有課程成績小于60分的學生姓名和學號

分析:相關的表student,score

方法:把這兩個表student與score通過學號進行聯合,通過學號進行分組(group by),并且選出所有課程成績小于60的學生;

又因是所有的課程成績都要小于60,那么找出每個學生中所有課程中最大的課程,當比最大課程還小時,那么這個學生的所有課程肯定所有課程肯定都小于60(max(score)<60)

語句:

select s1.sno,s1.sname

from student s1,score s2

where s1.sno = s2.sno group by sno having max(score) < 60;

?

轉載于:https://www.cnblogs.com/sinco-20161121/p/6144883.html

總結

以上是生活随笔為你收集整理的数据库练习题(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

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