資料庫實驗-資料查詢練習
用SQL語句完成以下查詢
1. 查詢所在係為 “CS” 的學生學號和姓名;
select sno,sname
fromstudent
where sdept='CS';
2. 查詢選修了3號課程的學生學號;
select sno
from SC
where cno=3;
3. 查詢選修1號 課程的學生學號和成績,並要求對查詢結果按成績的降序排列,如果成績相同則按學號的升序排列;
select sno,grade
from SC
where cno='1'
orderby grade desc,sno;
4. 查詢選修課程1號課程且成績在80-90 之間的學生學號和成績,並將成績乘以係數0.75 輸出;
select sno,grade*0.75
from SC
where cno='1'and grade between 80 and 90;
5. 查詢所在係為 “CS”或者“MA”的姓張的學生資訊;
select*
fromstudent
where (sdept='CS'or sdept='MA')and sname like'張%';
6. 查詢缺少了成績的學生的學號和課程號。
select sno,cno
from SC
where grade isNULL;
7. 查詢每個學生的學號,姓名,選修的課程名,成績;
selectstudent.sno,sname
fromstudent,course,SC
where student.sno=SC.sno and SC.cno=course.cno;
8. 查詢學生的學號、姓名、選修的課程名及成績;
select student.sno,sname,cname,grade
from student,course,SC
where student.sno=SC.sno and SC.cno=course.cno;
9. 查詢選修1號課程且成績在90 分以上的學生學號、姓名及成績;
selectstudent.sno,sname,grade
fromstudent,SC
where student
10. 查詢每門課程的先行課程的課程名稱,學分;
selectcname,ccredit
fromcourse
where cpno isNULL;
11. 查詢每一門課的間接先行課的課程編號
selectfirst.cno
fromcourse first,coursesecond
wherefirst.cpno=second.cno;
12. 查詢每一門課的間接先行課的課程名稱;
selectfirst.cname
fromcourse first,coursesecond
wherefirst.cpno=second.cno;
13. 查詢所在系部為“MA”且選修了高等數學課程的學生姓名,年齡,性別;
selectsname,sage,ssex
from student,course
where sdept='MA'and cno=2;
14. 查詢選修了資料結構課程,且成績在90分以上的學生學號;
selectstudent.sno
fromstudent,course,SC
wherestudent.sno=SC.sno and SC.cno=course.cno and course.cname=’資料結構’and grade>90;
15. 查詢選修了資料結構課程,且成績在90分以上的學生姓名,年齡;
selectsname,sage
from student,course,SC
wherestudent.sno=SC.sno and SC.cno=course.cno and cname='資料結構'and grade>90;
16. 查詢選修了資料結構課程的學生學號,姓名,成績;
selectstudent.sno,sname,grade
fromstudent,course,SC
wherestudent.sno=SC.sno and SC.cno=course.cno and cname='資料結構';
17. 查詢所在系部為“MA”的女生人數;
selectcount(sno)
fromstudent
wheresdept='MA'and ssex='女';
18. 查詢選修了2號課程的學生姓名;
selectsname
fromstudent
whereexists
(select*
from SC
where sno=student.sno and cno='2');
19. 查詢沒有選修2號課程的學生姓名;
selectsname
fromstudent
wherenotexists
(select*
from SC
where sno=student.sno and cno='2');
20. 查詢選修了全部課程的學生的姓名;
selectsname
fromstudent
wherenotexists
(select*
fromcourse
wherenotexists
(select*
from SC
where sno=student.sno
and cno=course.cno));
21. 查詢至少選修了學號為“201215121”的學生所選修的全部課程的學生學號和姓名;
selectdistinct SCX.sno,sname
from SCSCX,student
where SCX.sno=student.sno andnotexists
(select*
from SC SCY
where SCY.sno='201215121'and
notexists
(select*
from SCSCZ
where SCZ.sno=SCX.sno
and SCZ.cno=SCY.cno));
22. 查詢學生的總人數;
selectcount(*)
from student;
23. 查詢每個系部的學生人數;
selectcount(sdept)as x,sdept
fromstudent
groupby sdept;
24. 查詢選修了1號課程的學生人數;
selectcount(cno)as x
from SC
where cno='1';
25. 查詢選修了作業系統課程的學生人數;
selectcount(cname)as x
fromstudent,SC,course
wherestudent.sno=SC.sno and SC.cno=course.cno
and cname='作業系統';