登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Platforms
  3. LINUX
  4. Mysql
  5. 正文

Mysql-通用类题目

2018-04-15

数据库结构下载:course

1、检索分配有班级的学生信息

内连接:去掉所有不符合条件的记录

SELECT student_no, student_name, student_contact, student.class_no, class_name
	, department_name
FROM student
	JOIN classes ON student.class_no = classes.class_no;

2、检索所有学生对应的班级信息

外连接之左连接:保留表一的所有记录

SELECT student_no, student_name, student_contact, student.class_no, class_name
	, department_name
FROM student
	LEFT JOIN classes ON student.class_no = classes.class_no;

 

3、检索所有班级的学生信息

外连接之右连接:保留表二的所有记录

SELECT student_no, student_name, student_contact, student.class_no, class_name
	, department_name
FROM student
	RIGHT JOIN classes ON student.class_no = classes.class_no;

4、查询所有学生的成绩

SELECT student.student_no, student_name, course.course_no, course_name, score
FROM student
	INNER JOIN choose ON student.student_no = choose.student_no
	INNER JOIN course ON choose.course_no = course.course_no;

5、检索“2018 自动化1班”所有学生、所有课程的成绩

SELECT class_name, student.student_no, student_name, choose.course_no, course_name
	, score
FROM classes
	LEFT JOIN student ON classes.class_no = student.class_no
	JOIN choose ON student.student_no = choose.student_no
	JOIN course ON course.course_no = choose.course_no
WHERE class_name = '2018 自动化1班';

6、若choose表成绩为NULL时,代表该生缺考。统计Java语言程序设计课程中,参加考试的学生人数、缺考学生人数、缺考百分比。

SELECT course_name AS 课程, COUNT(choose_no) AS 参加考试人数
	, COUNT(choose_no) - COUNT(score) AS 缺考人数
	, (COUNT(choose_no) - COUNT(score)) / COUNT(choose_no) * 100 AS 缺考率
FROM choose
	JOIN course ON choose.course_no = course.course_no
WHERE choose.course_no = 1;

7、统计每个学生已经选修的课程数,该生最高分,最低分,总分及平均成绩

SELECT student.student_no, student_name, COUNT(course_no)
	, MAX(score), MIN(score)
	, SUM(score), AVG(score)
FROM student
	LEFT JOIN choose ON student.student_no = choose.student_no
GROUP BY student.student_no;

 

8、统计平均分高于70分的学生的已经选修的课程数,该生最高分,最低分,总分及平均成绩

SELECT student.student_no, student_name, COUNT(course_no)
	, MAX(score), MIN(score)
	, SUM(score), AVG(score)
FROM student
	LEFT JOIN choose ON student.student_no = choose.student_no
GROUP BY student.student_no
HAVING AVG(score) > 70;

9、统计所有班级的学生名单

SELECT class_name AS 班级名, GROUP_CONCAT(student_name) AS 学生名单, concat(student_name) AS 部分名单
FROM classes
	LEFT JOIN student ON student.class_no = classes.class_no
GROUP BY classes.class_no;

10、检索所有的学生及教师信息

SELECT student_no AS 编号, student_name AS 姓名, student_contact AS 联系方式
FROM student
UNION ALL
SELECT teacher_no, teacher_name, teacher_contact
FROM teacher

11、给定一门课程(如course_no=1),统计哪些学生选修了这门课程,查询结果先按照院系排序,院系相同的按照班级排序,班级相同的按照学号排序。

SELECT department_name, class_name, student.student_no, student_name, student_contact
FROM student
	JOIN classes ON student.class_no = classes.class_no
	JOIN choose ON student.student_no = choose.student_no
WHERE course_no = 1
ORDER BY department_name, class_name, student_no;

12、统计哪些课程已经报满,其它学生不能再选修。

SELECT course.course_no, course_name, teacher_name, up_limit, description
FROM choose
	JOIN course ON choose.course_no = course.course_no
	JOIN teacher ON teacher.teacher_no = course.teacher_no
GROUP BY course_no
HAVING up_limit = COUNT(*);

 

标签: 暂无
最后更新:2018-04-27

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号