MySQL常见笔试题

news2024/12/27 0:20:59

前言

数据库的考察在面试时可是十分常见的,MySQL作为一种常用的关系型数据库管理系统,对于它的介绍在面试时可是必不可少的,下面就是一些常见笔试题的模拟,希望可以帮助到你🙂🙂

所用到的表如下:

学生表(t_mysql_student)

有学生ID(sid),学生姓名(sname),学生年龄(sage),学生性别(ssex)

 教师表(t_mysql_teacher)

教师编号(tid),教师姓名(tname)

 

 课程表(t_mysql_course)

课程编号(cid),课程名称(cname),教师编号(tid外键)

 

 成绩表(t_mysql_score)

学生编号(sid外键),课程编号(cid外键),学生成绩(score)

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

select s.*,t1.score 01课程分数,t2.score 02课程分数 from  
(select *from t_mysql_score where cid='01')t1,
(select *from t_mysql_score where cid='02')t2,
t_mysql_student s
where s.sid=t1.sid and s.sid=t2.sid
and t1.score>t2.score

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

select s.*,t1.score 01课程分数,t2.score 02课程分数 from 
(select * from t_mysql_score where cid='01')t1,
(select * from t_mysql_score where cid='02')t2,
t_mysql_student s
where s.sid=t1.sid and s.sid=t2.sid

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

select t1.*,t2.score 02课程 from 
(select *from t_mysql_score where cid='01')t1 left join 
(select *from t_mysql_score where cid='02')t2 on
t1.sid=t2.sid

4. 查询不存在" 01 "课程但存在" 02 "课程的情况

select *from t_mysql_score s where s.sid not in
(select sid from t_mysql_score where cid='01')
and cid='02'

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

select 
s.sid,s.sname,ROUND(AVG(sc.score)) 平均成绩
from
t_mysql_student s,t_mysql_score sc
where s.sid=sc.sid
GROUP BY
s.sid,s.sname
HAVING
平均成绩>60

6. 查询在t_mysql_score表存在成绩的学生信息

select *from t_mysql_student where sid in 
(select sid from t_mysql_score GROUP BY sid )

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

select 
s.sid,s.sname,count(sc.cid),sum(sc.score)
from
t_mysql_student s ,
t_mysql_score sc
where s.sid=sc.sid
GROUP BY
s.sid,s.sname

8. 查询「李」姓老师的数量

select count(*) from t_mysql_teacher where tname like '李%'

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

select 
s.*,t.tname
from
t_mysql_student s,t_mysql_teacher t,t_mysql_course c,t_mysql_score sc
where 
s.sid=sc.sid and t.tid=c.tid and c.cid=sc.cid
and tname='张三'

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

select 
s.sid,s.sname,count(sc.cid) 课程总数
from
t_mysql_student s,t_mysql_score sc
where s.sid=sc.sid
GROUP BY
s.sid,s.sname
HAVING
课程总数<(select count(1) from t_mysql_course)

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

select s.* from t_mysql_student s where s.sid not in (
select
sc.sid
from
t_mysql_teacher t,t_mysql_course c,t_mysql_score sc
where t.tid=c.tid and c.cid=sc.cid
and t.tname='张三'
GROUP BY
sc.sid)

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

SELECT
s.sid,s.sname,ROUND(AVG(sc.score)) 平均成绩,COUNT(sc.cid) 课程总数
FROM
t_mysql_student s,t_mysql_score sc
WHERE
s.sid=sc.sid and sc.score<60
GROUP BY
s.sid,s.sname
HAVING
课程总数>=2

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

SELECT
s.*
FROM
t_mysql_score sc,t_mysql_student s
WHERE
sc.sid=s.sid and sc.score<60 and cid='01'
ORDER BY sc.score DESC

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

SELECT
s.sid,s.sname,round(AVG(sc.score),2) 平均成绩 ,
max(case when sc.cid='01' then sc.score end)语文,
max(case when sc.cid='02' then sc.score end)数学,
max(case when sc.cid='03' then sc.score end)英语
FROM
t_mysql_score sc,t_mysql_student s,t_mysql_course c
WHERE
 sc.sid=s.sid and sc.cid=c.cid
GROUP BY
s.sid,s.sname
ORDER BY 平均成绩 desc

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

SELECT
c.cid,c.cname,max(sc.score)最高分,
min(sc.score)最低分,
ROUND(AVG(sc.score))平均分,
count(sc.score)选修人数,
CONCAT(ROUND(sum(if(sc.score>=60,1,0))/count(sc.score)*100),'%')及格率,
CONCAT(ROUND(sum(if(sc.score>=70 and sc.score<80,1,0))/count(sc.score)*100),'%')中等率,
CONCAT(ROUND(sum(if(sc.score>=80 and sc.score<90,1,0))/count(sc.score)*100),'%')优良率,
CONCAT(ROUND(sum(if(sc.score>=90,1,0))/count(sc.score)*100),'%')优秀率
FROM
t_mysql_score sc,t_mysql_course c,t_mysql_student s
WHERE
sc.sid=s.sid and sc.cid=c.cid
GROUP BY
c.cid,c.cname
ORDER BY
选修人数 desc,
c.cid

CASE函数的详解

在MySQL数据库中,CASE函数是一种条件表达式函数,它允许根据条件的结果返回不同的值。CASE函数有两种形式:简单CASE表达式和搜索CASE表达式。

1. 简单CASE表达式:

简单CASE表达式用于对单个表达式进行多个条件的比较,语法如下:

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE result
END

expression是需要进行比较的表达式(是可以省略的),value1、value2等是待比较的值,result1、result2等是满足条件时返回的结果,ELSE子句用于指定当没有条件匹配时的默认结果(也是可以省略的)。

用上面的第14题举例

case when sc.cid='01' then sc.score end

  • case后面的表达式和else后面的子句都进行了省略
  • sc.cid='01'是需要被比较的值,当它成立时,便输出sc.score

2. 搜索CASE表达式:

搜索CASE表达式用于根据多个条件进行比较,并返回满足条件的第一个结果。它的语法如下:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

condition1、condition2等是待比较的条件表达式,result1、result2等是满足条件时返回的结果,ELSE子句用于指定当没有条件匹配时的默认结果。

总结而言,CASE函数在MySQL数据库中用于根据条件返回不同的值。简单CASE表达式适用于对单个表达式进行多个条件比较,而搜索CASE表达式适用于根据多个条件进行比较。它们可以在SELECT语句中使用,并且可以与其他函数和条件表达式组合使用。

if函数详解

MySQL数据库中的IF函数是一个条件表达式函数,它允许根据条件的结果返回不同的值。IF函数的语法如下:

IF(condition, value_if_true, value_if_false)

condition是一个布尔表达式或条件,value_if_true是当条件为真时返回的值,value_if_false是当条件为假时返回的值。

用上面的第15题举例

if(sc.score>=60,1,0)

如果sc.score大于60分,就输出1,否则就输出0

总结而言,IF函数在MySQL数据库中用于根据条件返回不同的值,它可以在SELECT、INSERT、UPDATE等语句中使用,并且可以与其他函数和运算符组合使用。

一起进步吧!!!✌✌✌

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国产MCU-CW32F030开发学习-BH1750模块

国产MCU-CW32F030开发学习-BH1750模块 硬件平台 CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件BH1750数字型光照强度传感器 BH1750 BH1750是一款数字型光照强度传感器&#xff0c;能够获取周围环境的光照强度。其测量范围在0~65535 lx。lx勒克斯&#xff0c;是光照强…

界面设计利器!10款Sketch插件合集,助你事半功倍!

在界面设计领域&#xff0c;Sketch以其高效、小巧的优势获得了不少设计团队的喜爱&#xff0c;帮助全球设计师创造了许多不可思议的作品。在使用Sketch的过程中&#xff0c;辅助使用一些Sketch插件&#xff0c;可以让我们更加高效地完成设计任务。本篇文章&#xff0c;我们将揭…

torch分布式通信基础

torch分布式通信基础 1. 点到点通信2. 集群通信 官网文档&#xff1a;WRITING DISTRIBUTED APPLICATIONS WITH PYTORCH 1. 点到点通信 # 同步&#xff0c;peer-2-peer数据传递 import os import torch import torch.distributed as dist import torch.multiprocessing as mpdef…

热点探测技术架构设计与实践

1. 概述 说到热点问题&#xff0c;首先我们先理解一下什么是热点&#xff1f; 热点通常意义来说&#xff0c;是指在一段时间内&#xff0c;被广泛关注的物品或事件&#xff0c;例如微博热搜&#xff0c;热卖商品&#xff0c;热点新闻&#xff0c;明星直播等等&#xff0c;所以…

领域知识图谱的医生推荐系统:利用BERT+CRF+BiLSTM的医疗实体识别,建立医学知识图谱,建立知识问答系统

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

Xcode报错--访问keychain,出现弹窗处理方案

情景 访问keychain弹出弹窗&#xff0c;不想人工点击&#xff0c;比如自动化测试中使用keychain中的证书的情况 原因 Mac的保护机制 处理 1、人工&#xff1a;输入Password&#xff0c;点击Allow或者Always Allow 2、命令行处理 security unlock-keychain -p "<…

Spring @RequestMapping 工作原理

Spring RequestMapping 工作原理 配置基础启动类及Controller类 SpringBootApplication public class DemoServiceApplication {public static void main(String[] args) {SpringApplication.run(DemoServiceApplication.class, args);} }RestController public class HelloC…

列表定义状态比较不错的UI写法

<el-table-columnprop"status"label"状态"align"left":formatter"formatTd" ><template slot-scope"scope"><span class"grayStatus" v-if"scope.row.status 1">未开始</span>…

Linux安装最新版的gcc13.1.0编译器,支持c++20、23

Linux安装最新版的gcc13.1.0编译器&#xff0c;支持c20、23 最近在写c20的代码&#xff0c;所以需要升级支持c20及23的编译器&#xff0c;貌似gcc11就已经支持了c20了&#xff0c;但是我这里选择了最新的13.1版本。本文全程实操&#xff0c;上机验证通过。 查看gcc版本 gcc -v…

MySql 高级-0711

3. 查询截取分析 分析 分析&#xff0c;至少跑一天&#xff0c;看看生产的慢 SQL 情况开启慢查询日志&#xff0c;设置阙值&#xff0c;比如超过5秒钟的就是慢SQL&#xff0c;并将它抓取出来。explain慢SQL分析Show Profile运维经理 or DBA 进行SQL 数据库服务器的参数调优 总…

QT-QRegExp和QRegularExpression

1.QRegExp qt5.0版本之前正则表示示类是QRegExp,通过它能够筛选出我们想要的数据,它的构造函数如下所示: QRegExp::QRegExp(const QString &pattern, Qt::CaseSensitivity cs Qt::CaseSensitive, QRegExp::PatternSyntax syntax); 其中QRegExp::PatternSyntax syntax用…

【Leetcode】面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 一看不会&#xff0c;一看答案就懂 我们求出两个链表的长度&#xff0c;并求出两个…

【新版系统架构】第十九章-大数据架构设计理论与实践

大数据处理系统架构 大数据处理系统面临挑战 如何利用信息技术等手段处理非结构化和半结构化数据如何探索大数据复杂性、不确定性特征描述的刻画方法及大数据的系统建模数据异构性与决策异构性的关系对大数据知识发现与管理决策的影响 大数据处理系统架构特征 鲁棒性和容错…

分布式ELK 企业级日志分析系统

一、ELK的相关知识 1.ELK简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch&#xff1a;是基于Lucene&#xff08;一个全文检…

【JUC进阶】12. 环形缓冲区

目录 1、前言 2、基本概述 2.1、什么是环形缓冲区 2.2、结构刨析 2.3、优点 2.4、缺点 3、如何使用 3.1、定义一个环形缓冲区 3.2、Demo使用 1、前言 上一篇《【JUC进阶】11. BlockingQueue》中介绍到ArrayBlockingQueue&#xff0c;在物理上是一个数组&#xff0c;但…

安科瑞智能母线监控在数据中心的应用

引言&#xff1a; 近年来&#xff0c;随着母线槽在建筑及工厂的配电中越来越广泛&#xff0c;母线槽场景运用的越多&#xff0c;随着数据中心建设的快速发展和更高需求&#xff0c;智能母线系统逐渐被应用于机房的末端配电中&#xff0c;具有电流小、插接方便、智能化程度高等…

一百二十八、Kettle——从Hive增量导入到ClickHouse

一、目标 用Kettle把Hive的DWS层数据增量导入到ClickHouse中 工具版本&#xff1a;Kettle&#xff1a;8.2 Hive:3.1.2 ClickHouse21.9.5.16 全量导入请访问拙作链接 http://t.csdn.cn/Rqvuvhttp://t.csdn.cn/Rqvuv 二、前提准备 &#xff08;一&#xff09;kettl…

如何在 .NET Core 中使用 Azure Key Vaul

Azure Key Vault是一个安全可靠的存储库&#xff0c;用于存储在.NET Core应用程序中使用的令牌、密钥、密码、证书和其他敏感数据。接下来我们讲讲如何在C#中使用它。 在构建.NET Core应用程序时&#xff0c;我们经常使用各种“秘密”&#xff0c;如客户端ID、访问令牌、密码、…

我的第一个java项目

安装了idea软件且本地通过cmd 命令启动了mysql。还安装了java sdk。 总结spring-boot通过resource下的mapping文件下的文件xml语法来增删查改(因为使用了MyBatis&#xff0c;MyBatis 的真正强大在于它的语句映射&#xff0c;这是它的魔力所在。由于它的异常强大&#xff0c;映…

7.12 模型显存/mix-precision

一、完全参考&#xff1a;模型的显存和参数量计算 显存占用模型显存(参数)batch_size每个样本显存(输出和梯度动量) 首先是“运算量”和“参数量”两个概念&#xff1a;参数量&#xff1a;这个比较好理解&#xff0c;例如卷积层中的卷积核c_i*k*k*n_o&#xff0c;其参数量就是相…