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