mysql查詢學生成績
① mysql查詢 數學成績比語文成績高的所有同學的信息
SELECT學生id,t1.成績語文,t2.成績數學FROM(SELECT成績,學生idFROM成績表WHERE課程名專屬='語文')t1
LEFTJOIN(SELECT成績,學生idFROM成績表WHERE課程名='數學')t2ONt1.學生id=t2.學生id
WHEREt2.成績>t1.成績
② SQL查詢資料庫中最高分學生的信息, 怎麼寫
t1 學生信息表
編號 姓名
t2 學生成績表
編號 課程編號 學生編號 成績版
t3 課程信權息表
編號 課程
select t1.* , t3.課程, t.成績
from t1 left join (select min(編號) 編號, 課程編號, max(成績) 成績
from t2 group by 課程編號) t on t1.編號 = t.學生編號
left join t3 on t2.課程編號 = t3.編號
③ 資料庫有2張表,一張學生表,一張成績表,查詢某學生的成績,sql語言怎麼寫
連接查詢。根據2張表關聯的欄位查詢,比如學生表有學生ID欄位,成績表如果也有這個ID,則
select * from [學生表] inner join [成績表] on [學生表].ID=[成績表].學生ID
mysql和sql server 資料庫中 sql 語言應該都是一樣的,但是函數。。。特有的肯定不一樣的,
sql(結構化查詢語言)語言都是一樣的,你可以網路下sql看看到底什麼意思
④ mysql中一張學生表,查詢出單科成績前十名學生的所有信息 和總分成績前十名學生的所有信息 在線等
學生表名為:student, 單科成績的欄位為:subject。學生名字為:name
查詢單科成績前十:mysql語句為:select * from student order by subject desc limit 10;
查詢總分成績前十:mysql語句為:select sum(subject) subject,name from student group by name order by subject desc limit 10;
註:
select sum(subject) subject,name
這句的意思是:sum(subject) subject 把單科成績加總用subject 來命名(就是總成績),name就是一個欄位,這里只有兩個欄位。
group by name order by subject : group by name 的意思按照名字這一欄來分組,當然,學生成績表名字有可能是一樣的,按照學號是最准確的,這里只是舉個例子。
order by subject 這句的意思是按照總分成績排序,這里的subject 是前面重命名總分的意思。
select sum(subject) as countsubject,name from student group by name order by countsubject desc limit 10;
(4)mysql查詢學生成績擴展閱讀:
學生成績表常用sql
1. 在表中插入符合主鍵
[sql]
/*成績表*/
CREATE TABLE SC
(
Sid INT REFERENCES Student(Sid), /*學生學號*/
Cid INT REFERENCES Course(Cid), /*課程編號*/
Score INT NOT NULL, /*課程分數*/
PRIMARY KEY(Sid,Cid) /*將學生學號和課程編號設為復合主鍵*/
)
2. 查詢各科成績最高分,最低分以及平均分
[sql]
SELECT c.Cname, MAX(s.Score) AS Max, MIN(s.Score) AS Min, AVG(s.Score) AS Average
FROM Course c JOIN SC s ON c.Cid = s.Cid
GROUP BY c.Cname
/*此處應注意,若不按照c.Cname進行分組,SQL語句會報錯,c.Cname在SELECT語句中不合法,因為它並未出現在聚合函數中也沒有出現在GROUP BY語句中*/
3. 查詢平均成績大於80分的學生姓名以及平均成績
[sql]
SELECT Sname, AVG(Score) AS Average FROM Student JOIN SC
ON Student.Sid=SC.Sid
GROUP BY Sname
HAVING AVG(Score)>80
/*以聚合函數為條件進行刪選只能在HAVING語句中進行,WHERE語句不支持聚合函數*/
4.按總分為學生排名,總分相同名次相同
[sql]
SELECT RANK() OVER (ORDER BY SUM(ss.Score) DESC) AS Rank, s.Sname,
ISNULL(SUM(ss.Score),0)
FROM Student s LEFT JOIN SC ss
ON s.Sid = ss.Sid
GROUP BY s.Sname
ORDER BY SUM(ss.Score) DESC
/*RANK()是SQL Server的一個built-in函數,語法為
RANK() OVER ( [ partition_by_clause ] order_by_clause ).*/
5. 查詢總分在100至200之間的學生姓名及總分
[sql]
SELECT s.Sname,SUM(ss.Score) FROM Student s JOIN SC ss ON s.Sid=ss.Sid
GROUP BY s.Sname HAVING SUM(ss.Score) BETWEEN 100 AND 200
⑤ MYSQL查詢三門科目90分以上的學生的所有成績
select
t.name,
(select sum(t2.grade) from 該表 t2 where t2.name = t1.name) as 總分
from 該表 t where t.grade>90 group by t.name having count(*)=3;
語句解釋:查詢出任意3門科目中出現90分以上的(不含90)的學生的內姓名和總分。
有問題容,請追問。
⑥ MySQL查詢成績最高的學生及分數(兩張表)
參考sql如下:
⑦ mysql 查詢某學生的成績所在名次前後各10條的成績數據 該怎麼寫
select * from table order by 成績 limit 10
union
select * from table order by 成績 desc limit 10
⑧ MySQL裡面 1.如何查詢莫一年莫個月份的學生學號和分數
1.
SELECT studentNo 學號,studentResult 分數
FROM result
WHERE examDate='2016-02-17'
ORDER BY studentResult DESC
LIMIT 5;
2.
SELECT studentName 姓名來,YEAR(NOW())-YEAR(bornDate) 年齡源,bornDate 出生日期,phone 手機號碼
From student
WHERE sex='女'
ORDER BY bornDate ASC
LIMIT 1,6;
3.
SELECT YEAR(bornDate) 年份,COUNT(YEAR(bornDate)) 人數
FROM student
GROUP BY YEAR(bornDate)
HAVING COUNT(YEAR(bornDate))>=2
4.
SELECT MAX(studentResult) 最大值,MIN(studentResult) 最小值,AVG(studentResult) 平均值
FROM result
WHERE examDate='2016-02-17'
⑨ 怎麼在MYSQL查詢學生平均成績及其名次
工具/材料:Management Studio。抄
1、首先在桌面上,點擊「Management Studio」圖標。
⑩ 5.用SQL命令查詢所有學生的學號、姓名、總成績、平均成績。
用SQL命令查詢所有學生的學號、姓名、總成績、平均成績。
select 學號,姓名,總成績,(總成績/總科數) from 表