mysql資料庫查詢學生成績的例子
『壹』 mysql資料庫學生成績查詢問題
mysql的索引分來成:primary key, unique, index, fulltext index。 primary key是主鍵, unique是唯自一索引, index是普通的索引。fulltext index是全文索引。 索引的作用就像C語言里的指針那樣,直接指向表的一行。
可以對用col_name(N) 對符串的前N個位元組做索引。 text類型和blob類型則必須要對前N個位元組做索引。MYISAM最多支持1000個位元組的索引, INNODB最多支持767位元組的索引。
『貳』 已知mysql資料庫cjdb學生成績cjdb,其中學生成績為小數數值,成績欄位為score
Mysql 示例:
1. 創建t_student表
CREATETABLE`_student`(`id`intNOTNULLAUTO_INCREMENT,--自增ID`studentID`varchar(20)NULL,--學號`studentName`varchar(20)NULL,--姓名`subject`varchar(50)NULL,--科目`score`doubleNULL,--成績PRIMARYKEY(`id`)--主鍵設置);
2. 填充數據
『叄』 怎麼在MYSQL查詢學生平均成績及其名次
工具/材料:Management Studio。抄
1、首先在桌面上,點擊「Management Studio」圖標。
『肆』 使用mysql 一個資料庫中有倆個表: student(學生表) 和score(成績表)
SET @i=0。
SQL本身有數據導入的操作。但如果要從一個備份的文件中導入數據,則要進行另外的操作。下面以一個例子進行說明。
SQL伺服器上已有一個DOE資料庫,並且裡面有大量的數據,現准備從另外一個備份文件A1.BAK(不是DOE資料庫的備份文件)中導入另外的數據(即導入後在DOE中增加一些數據表,表中已錄有數據),並保持原DOE的數據不變。
(4)mysql資料庫查詢學生成績的例子擴展閱讀:
在為MySQL分配足夠的內存之前,請考慮不同領域對MySQL的內存需求。要考慮的關鍵領域是:並發連接——對於大量並發連接,排序和臨時表將需要大量內存。在撰寫本文時,對於處理3000+並發連接的資料庫,16GB到32GB的RAM是足夠的。
內存碎片可以消耗大約10%或更多的內存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等緩存和緩沖區要消耗大約80%的已分配內存。
『伍』 在資料庫查詢中查詢各門課程取得最高成績的學生姓名和成績
表結構都沒有,怎麼弄
假定是經典結版構權
S
Sno Sname
SC
Sno Cno grade
SELECT S.Sname, SC.grade
FROM SC t1, S
WHERE SC.Sno = S.Sno
AND NOT EXISTS (SELECT 1 FROM SC WHERE Cno = t1.Cno AND grade > t1.grade)
或者
SELECT S.Sname, SC.grade
FROM SC, S,
(select Cno, MAX(grade) grade FROM SC GROUP BY CNO) t1
WHERE SC.Sno = S.Sno
AND SC.Cno = t1.Cno
AND SC.grade = t1.grade
『陸』 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.編號
『柒』 在MySQL資料庫(版本MySQL5.5)中,有一張學生成績表,如何查看成績前三的學生姓名
select * from 成績表 order by 成績 limit 3
『捌』 用sql語句,查詢每個班級成績排名前三名的學生姓名
1、首先在打開的SQLServer中,假設有兩條數據中,包含有【張】,但是這個張一前一後,如下圖所示。
『玖』 查詢每個學生的各科成績sql語句
1、查詢每個學生的各科成績sql語句:
select a.studentid,a.name,a.sex,v1.score as '語文',v2.score as '數學', v3.score as '英語',v4.score
as 『哲學』, (v1.score+v2.score+v3.score+v4.score)/4 as 『平均成績』 from Stuednt a
left join
(select studentid,score from grade where cid=(select cid from course where cname='語文'))as v1
on a.studentid=v1.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='數學'))as v2
on a.studentid=v2.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='英語'))as v3
on a.studentid=v3.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='哲學'))as v4
on a.studentid=v4.studentid
order by a.studentid
2、sql資料庫介紹:
(1)SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出"做什麼"的命令,"怎麼做"是不用使用者考慮的。
(2)SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支持SQL。
(3)SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。
(4)在SQL中,關系模式(模式)稱為"基本表"(base table);存儲模式(內模式)稱為"存儲文件"(stored file);子模式(外模式)稱為"視圖"(view);元組稱為"行"(row);屬性稱為"列"(column)。
『拾』 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;
(10)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