转自:http://yuncode.net/code/c_58df7a8ca687e58
1、查询“1”课程比“2”课程成绩高的所有学生的学号; |
(SELECT score, student_id FROM student_score WHERE course_id = 1 ) t1, |
(SELECT score, student_id FROM student_score WHERE course_id = 2 ) t2 |
WHERE t1.score > t2.score AND t1.student_id = t2.student_id |
2、查询平均成绩大于60分的同学的学号和平均成绩: |
select student_id, avg(score) from student_score group by student_id HAVING avg(score)>=60 ; |
select ss.student_id, st.student_name, count(course_id), sum(score) from student_score ss |
left join student st on ss.student_id=st.student_id |
group by ss.student_id, st.student_name |
select count(teacher_name) from teacher where teacher_name like '李%' |
select student_id,student_name from student where student_id not in ( |
select ss.student_id from |
left join course co on ss.course_id=co.course_id |
left join teacher te on te.teacher_id= co.teacher_id |
where te.teacher_name='叶平' |
6、查询学过“1”并且也学过编号“2”课程的同学的学号、姓名; |
select st.student_id,st.student_name from student st |
inner join (select student_id from student_score where course_id=1) t1 on st.student_id=t1.student_id |
inner join (select student_id from student_score where course_id=2) t2 on t1.student_id=t2.student_id |
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; |
st.student_id,st.student_name |
inner join student st on ss.student_id=st.student_id |
inner join course co on ss.course_id=co.course_id |
inner join teacher te on te.teacher_id=co.teacher_id |
where te.teacher_name='叶平' |
8、查询课程编号“2”的成绩比课程编号“1”课程低的所有同学的学号、姓名; |
select st.student_id,st.student_name from student st |
inner join (select student_id, score from student_score where course_id=1) t1 on st.student_id=t1.student_id |
inner join (select student_id, score from student_score where course_id=2) t2 on t1.student_id=t2.student_id |
9、查询所有课程成绩小于60分的同学的学号、姓名; |
SELECT st.student_id,st.student_name FROM student st WHERE st.student_id not in ( |
SELECT DISTINCT ss.student_id FROM student_score ss |
select st.student_id, st.student_name from student_score ss |
inner join student st on st.student_id=ss.student_id |
group by st.student_id,st.student_name |
having count(ss.course_id)<(select count(course_id) from course) |
11、查询至少有一门课与学号为“1”的同学所学相同的同学的学号和姓名; |
select st.student_id,st.student_name from |
student st inner join student_score ss on st.student_id=ss.student_id |
where course_id in(select course_id from student_score where student_id=1) |
group by st.student_id,st.student_name |
14、查询和“1”号的同学学习的课程完全相同的其他同学学号和姓名; |
select ss.student_id from student_score ss |
inner join student st on ss.student_id=st.student_id |
where ss.course_id in (select course_id from student_score where student_id=1) |
having count(ss.course_id)=(select count(course_id) from course) |
17、按平均成绩从高到低显示所有学生的“语文”、“数学”、“英语”三门课程成绩 |
(select score from student_score |
where course_id = (SELECT course_id FROM course WHERE course_name ='语文') |
and student_id = ss.student_id) as 语文, |
(select score from student_score |
where course_id = (SELECT course_id FROM course WHERE course_name ='数学') |
and student_id = ss.student_id) as 数学, |
(select score from student_score |
where course_id = (SELECT course_id FROM course WHERE course_name ='英语') |
and student_id = ss.student_id) as 英语 |
GROUP BY ss.student_id,语文,数学,英语 |
ORDER BY avg(ss.score) DESC |
18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分 |
SELECT course_id AS 课程id, MAX (score) AS 最高分, MIN (score) AS 最低分 |
19、按各科平均成绩从低到高和及格率的百分数从高到低顺序 |
CAST (CAST (SUM(case WHEN COALESCE(ss.score,0)>=60 THEN 1 ELSE 0 END) AS FLOAT)/ |
(SELECT COUNT(*) FROM course) AS DECIMAL (10, 2)) |
INNER JOIN course co ON ss.course_id = co.course_id |
CAST (AVG(score) AS DECIMAL(10, 2)) AS 平均成绩, |
CAST (CAST (COUNT(*) AS FLOAT) / (SELECT COUNT(*) FROM course) AS DECIMAL (10, 2)) AS 及格率 |
ORDER BY AVG (score),CAST (CAST (COUNT(*) AS FLOAT) / (SELECT COUNT(*) FROM course) AS DECIMAL (10, 2)) desc |
SELECT COUNT (DISTINCT 平均成绩) |
( SELECT student_id, AVG (score) AS 平均成绩 FROM student_score GROUP BY student_id ) AS T1 |
( SELECT student_id, AVG (score) 平均成绩 FROM student_score GROUP BY student_id ) AS T2 |
25、查询各科成绩前三名的记录:(不考虑成绩并列情况) |
SELECT ss.student_id, ss.course_id, ss.score |
GROUP BY ss.student_id, ss.course_id, ss.score |
HAVING student_id in (select student_id from student_score where ss.course_id=course_id LIMIT 3) |
ORDER BY ss.course_id, ss.score |
SELECT course_id, COUNT (course_id) |
27、查询出只选修了一门课程的全部学生的学号和姓名 |
SELECT ss.student_id,st.student_name, COUNT (ss.course_id) |
inner join student st on st.student_id=ss.student_id |
GROUP BY ss.student_id,st.student_name |
having COUNT (ss.course_id)=1 |
SELECT student_sex, COUNT (student_id) |
SELECT * FROM student WHERE student_name LIKE '张%' |
SELECT student_name,count(*) FROM student group by student_name having count(*)>1 |
32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列 |
select course_id,avg(score) from student_score group by course_id order by avg(score) asc,course_id |
33、查询平均成绩大于70的所有学生的学号、姓名和平均成绩 |
SELECT ss.student_id,st.student_name, AVG (ss.score) |
inner join student st on ss.student_id=st.student_id |
GROUP BY ss.student_id,st.student_name |
ORDER BY AVG (ss.score) ASC, ss.student_id |
34、查询课程名称为“语文”,且分数低于60的学生姓名和分数 |
select st.student_name,ss.score |
inner join student st on ss.student_id=st.student_id |
inner join course co on ss.course_id=co.course_id |
where co.course_name='语文' and ss.score<60 |
select st.student_name,co.course_name,ss.score |
inner join student st on ss.student_id=st.student_id |
inner join course co on ss.course_id=co.course_id |
36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数; |
select st.student_name,co.course_name,ss.score |
inner join student st on ss.student_id=st.student_id |
inner join course co on ss.course_id=co.course_id |
40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩 |
select st.student_name,co.course_name,te.teacher_name,ss.score |
inner join student st on ss.student_id=st.student_id |
inner join course co on ss.course_id=co.course_id |
inner join teacher te on co.teacher_id=te.teacher_id |
where te.teacher_name='叶平' |
select course_id,count(course_id) from student_score group by course_id order by course_id |
t0.student_id, t0.course_id, t0.score |
WHERE t0.course_id = course_id |
44、统计每门课程的学生选修人数,要求输出课程号和选修人数,查询结果按人数降序排列,查询结果按人数降序排列,若人 数相同,按课程号升序排列 |
select course_id,count(student_id) from student_score group by course_id order by count(student_id) desc, course_id |
select student_id,count(*) |
order by count(*) desc, student_id |
SELECT co.course_id, co.course_name |
INNER JOIN course co ON co.course_id = ss.course_id |
GROUP BY co.course_id, co.course_name |
HAVING COUNT(co.course_id) = (SELECT COUNT (student_id) FROM student) |
48、查询两门以上不及格课程的同学的学号及其平均成绩 |
select student_id,avg(score) from student_score where score<60 group by student_id having count(1)>=2 |
- 学生表 课程表 成绩表 教师表 50个常用sql语句
原文:http://www.cnblogs.com/zengxiangzhan/archive/2009/09/23/1572276.html Student(S#,Sname,Sage,Ssex) ...
- 面试题: 数据库 sql优化 sql练习题 有用 学生表,课程表,成绩表,教师表 练习
什么是存储过程?有哪些优缺点? 什么是存储过程?有哪些优缺点? 存储过程就像我们编程语言中的函数一样,封装了我们的代码(PLSQL.T-SQL). 存储过程的优点: 能够将代码封装起来 保存在数据库之 ...
- sql面试题(学生表_课程表_成绩表_教师表)
原帖链接:http://bbs.csdn.net/topics/280002741 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程 ...
- 经典sql面试题(学生表_课程表_成绩表_教师表)
转载:https://www.cnblogs.com/qixuejia/p/3637735.html 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cna ...
- SQL常见面试题(学生表_课程表_成绩表_教师表)
表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师 ...
- MySQL(学生表、教师表、课程表、成绩表)多表查询
1.表架构 student(sid,sname,sage,ssex) 学生表 course(cid,cname,tid) 课程表 sC(sid,cid,score) 成绩表 teacher(tid,t ...
- SQL Server 基础之《学生表-教师表-课程表-选课表》(二)
表结构 --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称CourseName. ...
- SQL Server 基础之《学生表-教师表-课程表-选课表》
一.数据库表结构及数据 建表 CREATE TABLE Student ( S# INT, Sname ), Sage INT, Ssex ) ) CREATE TABLE Course ( C# I ...
- SQL Server 基础之《学生表-教师表-课程表-选课表》(一)
数据库表结构及数据 建表 CREATE TABLE Student ( S# INT, Sname ), Sage INT, Ssex ) ) CREATE TABLE Course ( C# INT ...
随机推荐
- python 类的装饰器
我们知道,在不改变原有代码的基础上,我们可以使用装饰器为函数添加新的功能.同理,一切皆对象,我们也可以使用装饰器为类添加类属性.what? def deco(obj): obj.x = 1 obj.y ...
- SQL-Redis使用详细教程
一.Redis基础部分: 1.redis介绍与安装比mysql快10倍以上 *****************redis适用场合**************** 1.取最新N个数据的操作 2.排行榜应 ...
- Oracle 实现查询不区分大小写(SQL实现)
转为小写 LOWER('ABC') 结果 abc转为大写 UPPER('aBc') 结果 ABC 将数据库字段数据和前台接受的值全部转换为大写或者小写 例: select * from table ...
- 怎样用JMeter做接口测试?
本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Appli ...
- HDU 1016 素数环问题
题目大意: 给定1-n这n个数,组成以1开头的素数环,保证相邻两个数相加均为素数 题目用dfs搜索再回溯,这样碰到不成立的立刻退出递归,就减少了很多步骤,不然暴力来就是n!次复杂度,肯定是超时的 每次 ...
- POJ1094 / ZOJ1060
#include <cstdio> #include <cstring> #include <stack> #include <iostream> us ...
- Window Pains(poj 2585)
题意: 一个屏幕要同时打开9个窗口,每个窗口是2*2的矩阵,整个屏幕大小是9*9,每个窗口位置固定. 但是是否被激活(即完整显示出来)不确定. 给定屏幕状态,问是否可以实现显示. 分析:拓扑排序,把完 ...
- 2018/3/4 Activiti教程之对于流程的基本操作以及从发起到完成还有相关注意事项(与Springboot整合版)三
写教程实在太累了,,,还浪费时间,Activiti教程就写到这好了,不过最近在玩区块链,到时候写几个区块链方面的教程. 这是一些流程的查询与删除api,删除这块,默认是级联删除(加个false参数,就 ...
- 【http_load】http_load性能测试工具使用详解
1.什么是http_loadhttp_load是一款基于Linux平台的web服务器性能测试工具,用于测试web服务器的吞吐量与负载,web页面的性能. 2.http_load的安装1)下载地址wge ...
- fastcgi与cgi的区别[转载]
cgi 在2000年或更早的时候用得比较多, 以前web服务器一般只处理静态的请求,如果碰到一个动态请求怎么办呢?web服务器会根据这次请求的内容,然后会fork一个新进程来运行外部c程序 (或per ...