1. 程式人生 > >MySQL單表查詢練習筆記(選課)

MySQL單表查詢練習筆記(選課)

表目錄

mysql> show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| c                 |
| s                 |
| sc                |
+-------------------+

課程表 ——c

這裡寫圖片描述

學生表——s

這裡寫圖片描述

選課表——sc

這裡寫圖片描述

SQL實現單表查詢題

#查詢計算機系學生的學號和姓名
select sno,sname from s where depa="計算機系";

#查詢選修了課程的學生學號
select distinct sno from sc;

#查詢選修“C01” 課程的學生學號和成績,並要求對查詢結果按成績的降序排列,如果成績相同則按學號的升序排列
select sno,grade from sc where cno='c01' order by grade desc,sno asc;

#查詢每門課程的平均分
#按課程分組、並對每個課程的成績求平均分
select cno,avg(grade) from sc group by cno;

#查詢學校開設的課程總數
#查詢課程號並不能重複,再求記錄數
select  count(distinct cno) from sc;

#查詢選修兩門及兩門以上課程的學生學號。(此題除了程式碼,執行結果,還請寫出程式碼的執行過程。)
#1、根據學號分組
#2、學號分組完成後找到對應的課程記錄數大於等於2的學號
select sno from sc group by sno having count(cno)>=2;

#查詢年齡在20-22之間的男生的學號、姓名、系部
select sno,sname,depa from s where age between 20 and 22;

#查詢選修“C01”課程的學生人數
select count(cno) from sc where cno='c01';