1. 程式人生 > >資料庫實驗-資料查詢練習

資料庫實驗-資料查詢練習

     

用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

,cname,grade

   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

.sno=SC.sno and cno='1'and grade>90;

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='作業系統';