MySQL面试题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL面试题

🦁表格要求

🦁题目

01)查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数

02)查询同时存在" 01 "课程和" 02 "课程的情况

03)查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )

04)查询不存在" 01 "课程但存在" 02 "课程的情况

05)查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

06)查询在t_mysql_score表存在成绩的学生信息

07)查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )

08)查询「李」姓老师的数量

09)查询学过「张三」老师授课的同学的信息

10)查询没有学全所有课程的同学的信息

11)查询没学过"张三"老师讲授的任一门课程的学生姓名

12)查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

13)检索" 01 "课程分数小于 60,按分数降序排列的学生信息

14)按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

15)查询各科成绩最高分、最低分和平均分:

以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90

要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列

🦁数据

-- 学生表
insert into t_mysql_student values('01' , '赵雷' , '1990-01-01' , '男');
insert into t_mysql_student values('02' , '钱电' , '1990-12-21' , '男');
insert into t_mysql_student values('03' , '孙风' , '1990-12-20' , '男');
insert into t_mysql_student values('04' , '李云' , '1990-12-06' , '男');
insert into t_mysql_student values('05' , '周梅' , '1991-12-01' , '女');
insert into t_mysql_student values('06' , '吴兰' , '1992-01-01' , '女');
insert into t_mysql_student values('07' , '郑竹' , '1989-01-01' , '女');
insert into t_mysql_student values('09' , '张三' , '2017-12-20' , '女');
insert into t_mysql_student values('10' , '李四' , '2017-12-25' , '女');
insert into t_mysql_student values('11' , '李四' , '2012-06-06' , '女');
insert into t_mysql_student values('12' , '赵六' , '2013-06-13' , '女');
insert into t_mysql_student values('13' , '孙七' , '2014-06-01' , '女');
-- 教师表
insert into t_mysql_teacher values('01' , '张三');
insert into t_mysql_teacher values('02' , '李四');
insert into t_mysql_teacher values('03' , '王五');
-- 课程表
insert into t_mysql_course values('01' , '语文' , '02');
insert into t_mysql_course values('02' , '数学' , '01');
insert into t_mysql_course values('03' , '英语' , '03');
-- 成绩表
insert into t_mysql_score values('01' , '01' , 80);
insert into t_mysql_score values('01' , '02' , 90);
insert into t_mysql_score values('01' , '03' , 99);
insert into t_mysql_score values('02' , '01' , 70);
insert into t_mysql_score values('02' , '02' , 60);
insert into t_mysql_score values('02' , '03' , 80);
insert into t_mysql_score values('03' , '01' , 80);
insert into t_mysql_score values('03' , '02' , 80);
insert into t_mysql_score values('03' , '03' , 80);
insert into t_mysql_score values('04' , '01' , 50);
insert into t_mysql_score values('04' , '02' , 30);
insert into t_mysql_score values('04' , '03' , 20);
insert into t_mysql_score values('05' , '01' , 76);
insert into t_mysql_score values('05' , '02' , 87);
insert into t_mysql_score values('06' , '01' , 31);
insert into t_mysql_score values('06' , '03' , 34);
insert into t_mysql_score values('07' , '02' , 89);
insert into t_mysql_score values('07' , '03' , 98);

🦁第一题

01)查询" 01 "课程比" 02 "课程成绩的学生的信息及课程分数

首先我们先查询到01课程的学生

再查02课程的学生

最后再将其对比

sql语句

结果

🦁第二题

02)查询同时存在" 01 "课程和" 02 "课程的情况

先查询01课程的学生

在查询02课程的学生

最后再进行判断既有01也有02课程有哪些

sql语句

结果

 🦁第三题

03)查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )

首先我们要拿到01课程的学生

再拿到02的学生

最后用外连接进行判断

sql语句

结果

  🦁第四题

04)查询不存在" 01 "课程但存在" 02 "课程的情况

先拿到01的课程

再拿到02的课程

最后干掉01课程

sql语句

结果

🦁第五题

05)查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

首先我们要拿到学生表跟成绩表

再进行分组

最后筛选平均分大于60分的

sql语句

结果

 🦁第六题

06)查询在t_mysql_score表存在成绩的学生信息

判断在成绩表的id,如果学生表里面有的话那么就没有问题

sql语句

结果

  🦁第七题

07)查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )

count 计算数量 sum 计算总和

sql语句

结果

   🦁第八题

08)查询「李」姓老师的数量

count计算数量

sql语句

结果

    🦁第九题

-- 09)查询学过「张三」老师授课的同学的信息

首先拿到教师表跟学生表

然后再根据条件查询

sql语句

结果

  🦁第十题

10)查询没有学全所有课程的同学的信息

首先我们要知道总共就三门课程

其次去查询学生的课程数量

最后将其对比

sql语句

结果

  🦁第十一题

11)查询没学过"张三"老师讲授的任一门课程的学生姓名

先拿到学生授课信息

干掉没学过张三老师课程的学生

sql语句

结果

    🦁第十二题

12)查询两门及其以上不及格课程的同学的学号姓名及其平均成绩

先查询不及格的学生,按照他们的id进行分组

再去筛选两门及两门以上不及格的

最后用计算数量 平均数

sql语句

结果

    🦁第十三题

13)检索" 01 "课程分数小于 60,按分数降序排列的学生信息、

首先要查询01课程小于60分

再按分数进行降序

sql语句

结果

      🦁第十四题

14)按平均成绩从高到低显示所有学生所有课程成绩以及平均成绩

先拿到所有学生的所有信息以及课程,成绩

根据id进行分组

再查询平均分

最后进行降序输出

sql语句

结果

   🦁第十五题

15)查询各科成绩最高分、最低分和平均分
以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列

sql语句

结果


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
5月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
5月前
|
存储 关系型数据库 MySQL
阿里面试:MySQL 一个表最多 加几个索引? 6个?64个?还是多少?
阿里面试:MySQL 一个表最多 加几个索引? 6个?64个?还是多少?
阿里面试:MySQL 一个表最多 加几个索引? 6个?64个?还是多少?
|
3月前
|
关系型数据库 MySQL Java
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
|
5月前
|
存储 SQL 关系型数据库
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
|
10月前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
5月前
|
SQL 存储 关系型数据库
滴滴面试:明明 mysql 加的是 行锁,怎么就变 表锁 了?
滴滴面试:明明 mysql 加的是 行锁,怎么就变 表锁 了?
|
9月前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
7月前
|
消息中间件 NoSQL 关系型数据库
去哪面试:1Wtps高并发,MySQL 热点行 问题, 怎么解决?
去哪面试:1Wtps高并发,MySQL 热点行 问题, 怎么解决?
去哪面试:1Wtps高并发,MySQL 热点行 问题, 怎么解决?
|
8月前
|
SQL 关系型数据库 MySQL
京东面试:MySQL MVCC是如何实现的?如何通过MVCC实现读已提交、可重复读隔离级别的?
1.请解释什么是MVCC,它在数据库中的作用是什么? 2.在MySQL中,MVCC是如何实现的?请简述其工作原理。 3.MVCC是如何解决读-写和写-写冲突的? 4.在并发环境中,当多个事务同时读取同一行数据时,MVCC是如何保证每个事务看到的数据版本是一致的? 5.MVCC如何帮助提高数据库的并发性能?
京东面试:MySQL MVCC是如何实现的?如何通过MVCC实现读已提交、可重复读隔离级别的?
|
9月前
|
存储 SQL 关系型数据库
MySQL 面试题
MySQL 的一些基础面试题

推荐镜像

更多