不斷補(bǔ)充學(xué)習(xí)中逊笆,持續(xù)更新
2016.12.12春叫,13
gruad
為了查看語(yǔ)句運(yùn)行是否正確,建立如下三張表
1.以查詢語(yǔ)句為主
table student 學(xué)生表
學(xué)號(hào):學(xué)生姓名:年齡:性別:系
table course 課程表
課程號(hào):課程名:學(xué)時(shí)
table sc 學(xué)生選課表
學(xué)號(hào):課程號(hào):成績(jī)分?jǐn)?shù)
- --新增表sc的結(jié)構(gòu),增加一列hours 數(shù)據(jù)類型INT
ALTER TABLE sc ADD COLUMN hours INT ;
運(yùn)行結(jié)果:
2.--查詢成績(jī)?cè)?0-80之間的學(xué)生學(xué)號(hào)趴梢,和課程號(hào)敬察,和成績(jī)
SELECT sno,cno,grade FROMsc
WHERE grade between 70 AND 80;
運(yùn)行結(jié)果:
3.-- 查詢c03課程成績(jī)最高的分?jǐn)?shù)
SELECT grade
FROM sc
WHERE cno='c03'
ORDER BY grade DESC
LIMIT 1;
運(yùn)行結(jié)果:
4.-- 查詢學(xué)生都選擇了那些課程秀睛,列出課程名和課程號(hào)
SELECT cname ,cno
FROM course
WHERE cno in(SELECT DISTINCT cno FROM sc);
運(yùn)行結(jié)果:
5.-- 選擇選修了c03課程的所有學(xué)生的平均成績(jī),最高成績(jī)莲祸,最低成績(jī)
SELECT AVG( grade),MAX(grade),MIN(grade)
FROM sc
WHERE cno='c03';
運(yùn)行結(jié)果:
6.-- 統(tǒng)計(jì)每個(gè)系的學(xué)生人數(shù)
SELECT sdept,COUNT(*)
FROM student
WHERE sdept in(SELECT DISTINCT sdept from student)
GROUP BY sdept;
運(yùn)行結(jié)果:
7.-- 統(tǒng)計(jì)每門課的平均成績(jī)
select cname,AVG( grade)
FROM sc,course
WHERE sc.cno in(SELECT cno FROM sc) and sc.cno=course.cno
GROUP BY course.cname;
運(yùn)行結(jié)果:
8.-- 統(tǒng)計(jì)每門課程的修課人數(shù)和考試最高分
SELECT cname,COUNT(*),MAX(grade)
FROM course,sc
WHERE sc.cno in(SELECT DISTINCT cno FROM sc) AND sc.cno=course.cno
GROUP BY course.cname;
運(yùn)行結(jié)果:
9.-- 統(tǒng)計(jì)每個(gè)學(xué)生的選課門數(shù),并按選課門數(shù)的遞增順序顯示結(jié)果蹂安。
SELECT student.sname,student.sno,COUNT(sc.sno)
FROM student,sc
WHERE student.sno=sc.sno
GROUP BY student.sname,student.sno
ORDER BY COUNT(sc.sno) ASC;
或:
SELECT student.sname,student.sno,COUNT(sc.sno)
from student
INNER JOIN sc ON sc.sno=student.sno
GROUP BY student.sname,student.sno
ORDER BY COUNT(sc.sno);
運(yùn)行結(jié)果:
10.-- 統(tǒng)計(jì)選修課的學(xué)生總數(shù)和考試的平均成績(jī)
SELECT COUNT(DISTINCT sno),AVG(grade)
FROM sc;
運(yùn)行結(jié)果:
11.-- 查詢選課門數(shù)超過(guò)1門的學(xué)生的平均成績(jī)和選課門數(shù)
SELECT student.sname,AVG(sc.grade),COUNT(sc.sno)
FROM sc
join student on (sc.sno=student.sno)
join course on (sc.cno=course.cno)
GROUP BY student.sname
HAVING COUNT(DISTINCT course.cno)>1
運(yùn)行結(jié)果:
12.-- 列出總成績(jī)超過(guò)150分的學(xué)生,要求列出學(xué)號(hào)、總成績(jī)
SELECT sno,SUM(grade)
FROM sc
GROUP BY sno
HAVING SUM(grade)>150;
運(yùn)行結(jié)果:
13.-- 查詢選修了c02號(hào)課程的學(xué)生的姓名和所在系
SELECT student.sname,student.sdept
FROM student
INNER JOIN sc on sc.sno=student.sno
where sc.cno='c02';
運(yùn)行結(jié)果:
select FirstName as Family, LastName as Name
from Persons
待添加中...