SQL经典50题题解

SQL经典50题题解,第1张

本篇文章主要是对SQL经典50题进行详细解析。

解析包含:1、解题思路,2、考核知识点,3、答案;

首先,表结构用脑图输出出来,如下所示:

先进行数据准备,建表以及插入数据。

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

解题思路:

第一步:关键词有“课程编号”、“课程成绩”、“学生信息”,锁定使用表:学生表、成绩表。

第二步:给出学生信息及课程分数,通过主键sid关联学生表和课程表。

第三步:比较同一个学生不同课程的成绩,再关联一次课程表,利用sid、cid进行关联。

第四步:根据题目,用where比较分数筛选结果。

考核知识点: join,where

答案:

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

解题思路:

第一步:关键词有“课程编号”、“学生编号”,锁定使用表:成绩表。

第二步:分别查询出存在" 01 "课程的学生和存在" 02 "课程的学生。

第三步:对两个子查询进行关联,用sid进行左联接。

考核知识点: where, 子查询,left join

答案:

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

解题思路: 同11,把left join改为join

考核知识点: where, 子查询,join

答案:

13 查询选择了02课程但没有01课程的情况

解题思路: 类似11,把left join改为right join

考核知识点: where, 子查询,right join

答案:

小结: 上面的题主要考察join、left join、right join。

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

解题思路:

第一步:关键词有“平均成绩”、“学生编号”、“学生姓名”,锁定使用表:成绩表、学生表。

第二步:给出学生信息及课程分数,通过主键sid关联学生表和课程表。。

第三步:根据题目,用group by聚合计算出平均成绩,然后筛选出大于等于60分的学生。

考核知识点: join、group by、avg()

答案:

3查询在 SC 表存在成绩的学生信息

解题思路:

第一步:关键词有“SC”、“学生信息”,锁定使用表:成绩表、学生表。

第二步:用EXISTS判断在SC表存在成绩的学生信息

考核知识点: EXISTS语句

答案:

4查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和

解题思路:

第一步:关键词有“学生编号”、“学生姓名”、“选课总数”、“课程成绩”,锁定使用表:成绩表、学生表。

第二步:通过主键sid关联学生表成绩表,得到学生信息、学生成绩的宽表

第三步:根据题目,用group by聚合计算选课总数和总成绩

考核知识点: left join、group by、count()、sum()、ifnull()

答案:

5查询「李」姓老师的数量

解题思路:

第一步:关键词有“老师的数量”,锁定使用表:教师表。

第二步:先筛选出「李」姓老师,再汇总统计「李」姓老师的数量

考核知识点: like、where、%、count()

答案:

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

解题思路:

第一步:关键词有“老师”、“学生信息”,锁定使用表:教师表、学生表、成绩表、课程表。

第二步:通过sid关联学生表、成绩表,再通过cid关联课程表,最后通过tid关联教师表。

第三步:用where筛选出「张三」老师授课的同学的信息。

考核知识点: 多重连接join

答案:

7查询没有学全所有课程的同学的信息。

解题思路:

第一步:关键词有“课程”、“学生信息”,锁定使用表:学生表、成绩表、课程表。

第二步:先统计学生的课程数量,再筛选出小于所有课程数量的学生。

考核知识点: left join、group by、count()

答案:

8查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息。

解题思路:

第一步:关键词有“课程”、“学生信息”,锁定使用表:学生表、成绩表。

第二步:先查询学号“01”的同学学习的课程。

第三步:通过sid关联学生表和成绩表,获取所有学生信息、课程信息。

第四步:用EXISTS筛选出至少1门课相同的同学信息。

考核知识点: left join、子查询、EXISTS

答案:

9查询和" 01 "号的同学学习的课程完全相同的其他同学的信息

解题思路:

第一步:关键词有“课程”、“学生信息”,锁定使用表:学生表、成绩表。

第二步:用“01”号的同学学习的课程左关联学生课程表,筛选出关链课程数一致的其他同学的sid

第三步:通过sid关联学生表和成绩表,获取完整的学生信息。

考核知识点: left join、子查询、group by

答案:

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

解题思路:

第一步:关键词有“老师”、“学生姓名”,锁定使用表:学生表、成绩表、课程表、教师表。

第二步:反向求解。先查询至少学过“张三”老师讲授的课程的学生sid

第三步:用NOT EXISTS筛选出不在第二步查询结果的学生信息,。

考核知识点: 多重连接join、NOT EXISTS、子查询

答案:

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

解题思路:

第一步:关键词有“姓名”、“平均成绩”,锁定使用表:学生表、成绩表。

第二步:通过sid关联学生表和成绩表,得到学生成绩信息宽表

第三步:用group by聚合统计,having对聚合的结果进行筛选。

考核知识点: join、group by、having、case when语句、avg()

答案:

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

解题思路:

第一步:关键词有“课程分数”、“学生信息”,锁定使用表:学生表、成绩表。

第二步:通过sid关联学生表和成绩表,得到学生成绩信息宽表

第三步:用where筛选" 01 "课程分数小于 60的记录,并按照分数降序排列。

考核知识点: join、where、order by

答案:

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

解题思路:

第一步:关键词有“平均成绩”,锁定使用表:成绩表。

第二步:用group by将学生课程的成绩由行转换为列并计算平均成绩。

第三步:按照平均成绩降序显示学生的所有课程的成绩以及平均成绩。

考核知识点: join

答案:

14查询各科成绩最高分、最低分和平均分,以如下形式显示:

以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,

优良率,优秀率

及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90

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

解题思路:

第一步:关键词有“课程name”、“最高分”,锁定使用表:课程表、成绩表。

第二步:用group by聚合计算课程最高分、最低分、平均分。

第三步:用case语句判断及格、中等、优良、优秀,并结合group by计算。

考核知识点: join、group by、max()、min()、avg()、sum()、case when语句

答案:

15按各科成绩进行排序,并显示排名, Score 重复时保留名次空缺

解题思路:

第一步:关键词有“各科成绩”,锁定使用表:成绩表。

第二步:用rank()排名。

考核知识点: rank() over(partition by)

答案:

151 按各科成绩进行行排序,并显示排名, Score 重复时合并名次

解题思路:

第一步:关键词有“各科成绩”,锁定使用表:成绩表。

第二步:用dense_rank()排名。

考核知识点: dense_rank() over(partition by)

答案:

16查询学生的总成绩,并进行排名,总分重复时保留名次空缺

解题思路:

第一步:关键词有“总成绩”,锁定使用表:成绩表。

第二步:用group by统计学生的总成绩。

第三步:用left join自关联进行排名。

考核知识点: group by、 left join

答案:

161 查询学生的总成绩,并进行排名,总分重复时不保留名次空缺

解题思路:

第一步:关键词有“总成绩”,锁定使用表:成绩表。

第二步:用group by统计学生的总成绩。

第三步:用变量进行排名。

考核知识点: group by、变量

答案:

17 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[60-0] 及所占百分比

解题思路:

第一步:关键词有“各科成绩”、“课程名称”,锁定使用表:成绩表、课程表。

第二步:通过cid关联课程表和成绩表,得到课程、成绩信息宽表。

第三步:用group by聚合统计各分段的人数及百分比。

考核知识点: join、group by、case when条件语句

答案:

18查询各科成绩前三名的记录

解题思路:

第一步:关键词有“各科成绩”,锁定使用表:成绩表。

第二步:筛选出各科比当前成绩高的人数小于3的学生记为各科的前三名。

考核知识点: 子查询

答案:

19查询每门课程被选修的学生数

解题思路:

第一步:关键词有“每门课程”、“学生数”,锁定使用表:课程表、成绩表。

第二步:用left join关联课程表和成绩表,再用group by分组汇总各科的学生数。

考核知识点: left join、group by

答案:

20查询出只选修两门课程的学生学号和姓名

解题思路:

第一步:关键词有“选修课程”、“学生姓名”,锁定使用表:学生表、成绩表。

第二步:用join关联学生表和成绩表,再用group by分组汇总每个学生的选修课程数,最后用having对分组汇总结果筛选出选修两门课程的学生。

考核知识点: join、group by、having

答案:

21 查询男生、女生人数

解题思路:

第一步:关键词有“男生、女生”,锁定使用表:学生表。

第二步:通过ssex学生表用group by分组汇总男生、女生人数。

考核知识点: group by

答案:

22 查询名字中含有「风」字的学生信息

解题思路:

第一步:关键词有“学生信息”,锁定使用表:学生表。

第二步:用like匹配姓名中含有风」字的学生。

考核知识点: like、%

答案:

23查询同名同性学生名单,并统计同名人数

解题思路:

第一步:关键词有“学生名单”,锁定使用表:学生表。

第二步:使用group by,汇总同名同性人数,再用having筛选出大于1的记录

考核知识点: group by、having

答案:

24查询 1990 年出生的学生名单

解题思路:

第一步:关键词有“学生名单”,锁定使用表:学生表。

第二步:用where筛选出1990年出生的学生名单

考核知识点: where、year

答案:

25查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编

号升序排列。

解题思路:

第一步:关键词有“平均成绩”,锁定使用表:成绩表。

第二步:用group by分组计算各科平均成绩,再用order by完成多列排序

考核知识点: group by、order by

答案:

26查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩

解题思路:

第一步:关键词有“平均成绩”、“学生姓名”,锁定使用表:成绩表、学生表。

第二步:用join关联学生表和成绩表

第三步:用group by分组汇总计算每个学生的平均成绩,再用having筛选平均成绩>=85的记录

考核知识点: join、group by、having

答案:

27查询课程名称为「数学」,且分数低于 60 的学生姓名和分数

解题思路:

第一步:关键词有“课程名称”、“分数”、“学生姓名”,锁定使用表:课程表、成绩表、学生表。

第二步:用join关联学生表、成绩表、课程表,再用where筛选

考核知识点: 多重join、where

答案:

28 查询所有学生的课程及分数情况(存在学生没成绩,没选课的情况)

解题思路:

第一步:关键词有“所有学生”、“分数”,锁定使用表:学生表、成绩表

第二步:用left join关联学生表、成绩表

考核知识点: left join

答案:

29查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数

解题思路:

第一步:关键词有“课程成绩”、“姓名”、“课程名称”,锁定使用表:学生表、成绩表、课程表

第二步:用join关联学生表、成绩表、课程表,再筛选出课程成绩在70分以上的。

考核知识点: 多重join

答案:

30查询不及格的课程

解题思路:

第一步:关键词有“不及格的课程”,锁定使用表:成绩表、课程表

第二步:关联课程表和成绩表,再条件筛选出不及格的课程信息。

考核知识点: join、where、去重

答案:

31查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名

解题思路:

第一步:关键词有“课程编号”、“课程成绩”、“姓名”,锁定使用表:成绩表、学生表

第二步:关联成绩表和学生表,再条件筛选出结果。

考核知识点: join、where

答案:

32求每门课程的学生人数

解题思路:

第一步:关键词有“课程”、“学生人数”,锁定使用表:成绩表

第二步:用group by分组汇总各科的学生人数。

考核知识点: group by

答案:

33成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

解题思路:

第一步:关键词有“成绩”、“「张三」老师”、“学生信息”,锁定使用表:成绩表、课程表、学生表、教师表

第二步:关联所有表,筛选出选修「张三」老师所授课程的学生。

第三步:因为成绩不重复,对学生成绩由高到低排序,筛选出第一行记录。

考核知识点: 多重join、order by、limit

答案:

34成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生

信息及其成绩

解题思路:

第一步:关键词有“成绩”、“「张三」老师”、“学生信息”,锁定使用表:成绩表、课程表、学生表、教师表

第二步:关联所有表,筛选出选修「张三」老师所授课程的学生。

第三步:因为成绩有重复,先求出最高成绩,再匹配最高成绩对应的学生信息。

考核知识点: 多重join、max()

答案:

35查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩

解题思路:

第一步:关键词有“成绩”,锁定使用表:成绩表

第二步:自联接,筛选出不同课程成绩相同的记录

考核知识点: 自联接join

答案:

36 查询每门成绩最好的前两名

解题思路:

第一步:关键词有“成绩”,锁定使用表:成绩表

第二步:自联接,筛选出各科低于自身成绩的人数为2的。

考核知识点: left join

答案:

37 统计每门课程的学生选修人数(超过 5 人的课程才统计)。

解题思路:

第一步:关键词有“选修人数”,锁定使用表:成绩表

第二步:先用group by分组汇总各科的选修人数,再条件筛选出超过5人的课程。

考核知识点: group by、having

答案:

38检索至少选修两门课程的学生学号

解题思路:

第一步:关键词有“两门课程”,锁定使用表:成绩表

第二步:先用group by分组汇总每个学生的选修课程数,再用having筛选出至少2门课程的学生学号

考核知识点: group by、having

答案:

39查询选修了全部课程的学生信息

解题思路:

第一步:关键词有“全部课程”、“学生信息”,锁定使用表:成绩表、课程表、学生表

第二步:关联学生表和成绩表,再用group by分组统计每个学生的选修课程数

第三步:最后用having筛选出等于全部课程数的学生信息。

考核知识点: join、 group by、having、子查询

答案:

40查询各学生的年龄,只按年份来算

解题思路:

第一步:关键词有“学生的年龄”,锁定使用表:学生表

第二步:用year和now来统计

考核知识点: year、now

答案:

41 按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一

解题思路:

第一步:关键词有“出生日期”,锁定使用表:学生表

第二步:用timestampdiff()统计年龄

考核知识点: timestampdiff()

答案:

42查询本周过生日的学生

解题思路:

第一步:关键词有“过生日”,锁定使用表:学生表

第二步:用week函数

考核知识点: week()

答案:

43 查询下周过生日的学生

解题思路:

第一步:关键词有“过生日”,锁定使用表:学生表

第二步:用week函数

考核知识点: week()

答案:

44查询本月过生日的学生

解题思路:

第一步:关键词有“过生日”,锁定使用表:学生表

第二步:用month函数

考核知识点: month()

答案:

45查询下月过生日的学生

解题思路:

第一步:关键词有“过生日”,锁定使用表:学生表

第二步:用month函数

考核知识点: month()

答案:

大数据主要学习的东西有6个方面:

第一阶段

JavaSE基础核心

第二阶段

数据库关键技术

第三阶段

大数据基础核心

第四阶段

Spark生态体系框架&大数据高薪精选项目

第五阶段

Spark生态体系框架&企业无缝对接项目

第六阶段

Flink流式数据处理框架

软考多媒体应用设计师考试包含基础知识和应用技术共两个科目,各科目考试知识点有所不同。基础知识考试题型为客观选择题,应用技术考试题型为主观问答题。

多媒体应用设计师属于软考中级资格考试,多媒体应用设计师考试大纲中各科目的考试知识点范围如下:

考试科目1:计算机与多媒体应用基础知识

1计算机基础知识

·计算机的发展

·计算机的分类及特点

·计算机在信息社会的应用

2计算机硬件及系统组成

21 计算机的基本组成原理

22 中央处理器CPU

·工作原理

·主要性能指标

32 *** 作系统的原理及使用

33 程序设计语言基础知识(C、Java或Visual Basic任何一种)

·C语言 基本语法及编程方法

·应用程序设计 多媒体及Web应用编程基础

4 计算机网络与通信基本知识

·网络参与模型与网络协议

·局域网、广域网基本概念及其功能

·Internet基本概念及其应用

·宽带网络及其接入技术

·无线通信技术

5 多媒体技术及其应用

51 多媒体的定义和关键技术

52 多媒体计算机系统结构

53 多媒体传输协议

54 多媒体技术的应用

·多媒体技术与电视数字化

·DVD制作

·视频点播

·多媒体创作工具及电子出版物

·多媒体数据库

·多媒体信息检索

·多媒体通信流媒体、视频会议

55 多媒体技术的发展趋势

6多媒体数据处理技术

61 视频信息获取和图像文件格式的转换

611 彩色全电视信号

·彩色空间的表示及其转换

·彩色全电视信号

612 视频数据获取技术

·视频信号获取器的工作原理

·彩色全电视信号的数字锁相和数字解码

·视频信号获取器的软件系统

613 图像文件格式及其转换

·静态图像文件格式

·动态图像文件格式

62 音频信息获取和处理

621 数字音频基础

·模拟音频和数字音频

·音频数字化过程

·数字音频的文件格式

·音频信号的特点

622 音频编码基础和标准

·音频编码基础

623 音乐合成和MIDI

·接口规范

·音乐合成

·MIDI及接口规范

624 声卡的工作原理及应用

63 多媒体数据压缩编码技术基础

631 多媒体数据压缩的重要性和分类

632 预测编码

·预测编码的基本原理

·差值脉冲编码调制(DPCM)

·帧间预测编码

633 变换编码

·变换编码的基本原理

·最佳正交交换-K-L变换

·次最优的正交交换-离散余弦变换(DCT)

634 统计编码

·统计编码的原理

·哈夫曼(Huffman)编码

·算术编码

635 多媒体数据压缩编码的标准

·音频编码标准

·JPEG标准

·H261和H263标准

·MPEG标准(MPEG-1,MPEG-2和MPEG-4)

7信息安全性知识

71 信息安全性基本概念

72 计算机病毒防范

·计算机病毒的分类与识别

·计算机病毒的防范措施与消除方法

73 入侵检测与防范措施

74 加密解密机制与信息加密策略

75身份验证和访问控制策略

8标准化知识

·国际标准、标准、行业标准、企业标准基本知识

·编码标准、多媒体有关的技术标准

·标准化机构

9信息化基本知识

·信息化基本概念

·国民经济与社会信息化战略

·保护

10知识产权的有关法律、法规

11专业英语

·正确阅读并理解相关领域的英文资料

考试科目2: 多媒体应用设计技术

1多媒体应用的策划与设计

11多媒体应用开发各阶段的目标与任务

·需求分析

·应用系统结构设计

·建立设计标准和细则

·系统开发工具的选择

·系统制作的任务

·系统的测试与运行

12多媒体应用设计的基本原则

·多媒体应用设计的选题与分析报告(总体规格设计说明书)

·多媒体脚本设计

·创意设计

·人机界面设计原则

2多媒体素材的制作和集成

21数字音频编辑

·录制解说词

·录制背景音乐

·进行混音处理

·添加音效

22图像处理

·图像处理软件

·图像特殊效果的主要制作方法

·图像处理及存储的制作过程

23动画和视频制作

231三维动画制作

·三维动画制作软件

·三维动画的制作

232视频处理与编辑

·视频制作软件

·视频信号的采集

·制作**

24多媒体系统创作工具

241动画创作工具

·动画创作软件

·用动画创作工具制作多媒体作品

242多媒体著作工具

·利用多媒体著作工具制作多媒体应用软件

·利用多媒体著作工具制作交互式网页

3多媒体应用系统的设计和实现示例

31 多媒体课件的设计与实现

311多媒体课件的特点和模式

·多媒体课件特点和编制原则

·多媒体课件基本模式

312多媒体课件开发过程

·课件的需求分析(课件的选题、课件的类型)

·课件的设计(教学设计、课件的表现技巧设计、课件的开发计划)

·课件的制作(课件素材的选取、课件的脚本编写、课件的编辑合成、编码调试、课件的测试和评价、课件的维护和改进)

32多媒体电子出版物的设计与实现

321多媒体电子出版物的特点与应用

·多媒体电子出版物与其他多媒体软件的区别

·媒体电子出版物的应用类型

322多媒体电子出版物的基本要素

·多媒体电子出版物的基本构件

·多媒体电子出版物的开发人员构成

323多媒体电子出版物的开发过程

·选题

·组织资源

·编写多媒体脚本

·编辑资源

·系统制作与集成

·系统的测试与优化

·形成产品

33 网络多媒体广告设计

·计划与可行性分析

·信息框架设计

·文档设计

·用户界面设计

·导航和交互设计

4多媒体数据库及分布式多媒体系统

41 多媒体数据库

42 多媒体视频会议系统

43 多媒体交互式电视技术

温馨提示:因考试政策、内容不断变化与调整,猎考网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

下方免费复习资料内容介绍:2021上半年信息系统监理师上午真题及答案解析

格式:PDF大小:61978KB 2022下半年网络工程师下午真题

格式:DO大小:699811KB

资格考试有疑问、不知道如何总结考点内容、不清楚报考考试当地政策,点击底部咨询猎考网,免费领取复习资料

java开发技术学习基本上有下边几个阶段的主要内容,大家可以参考一下:

第一阶段:java基础

本阶段除了JavaSE中要求大家必会的java基础知识外,重点加强了数据结构思想、集合源码分析、jdk9-11新特性的学习。

第二阶段:数据库

本阶段主要学习MySQL数据库知识,通过层层递进,让大家掌握开发使用的数据是如何存储和处理的。并且逐步深入学习到索引和优化、锁机制、存储过程等。

第三阶段:web网页技术

本阶段以项目案例为驱动,采用所学即所用的方式指导大家学习,在边学边练过程中,可深入掌握Web开发技术,具备与之匹配的实战能力。

第四阶段:框架学习

本阶段主要是学习市面上流行的框架技术来提升自己的开发能力,再辅以Linux命令以及Linux服务器的使用等内容让新手学到技术,让老手学到思想,让高手学到境界。

第五阶段:互联网高级技术

主要讲解分布式管理系统、Keepalived+Nginx主备、微服务架构技术、消息中间件技术、MySQL调优、高并发技术、性能优化、内存和GC等。

第六阶段:企业项目

本阶段主要是通过让学员学习企业流行的项目,在动手实 *** 的过程中加深前面知识的认识,并且增加学员企业项目开发经验。

以上就是关于SQL经典50题题解全部的内容,包括:SQL经典50题题解、大数据主要学习什么呢、多媒体应用设计师考试知识点有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10169666.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存