考点介绍:

数据库在测试工程师的面试过程中也是常问的一项。面试有一定的层次性,如bat级别公司每个点都会深入,而有些公司则只会问到表层,所以每个领域都分为必须掌握和深入了解这两个部分。

本期分享的数据库基础之sql五十道题,分为试题、文章以及视频三部分。

答案详情解析和文章内容可扫下方二维码或链接即可查看!

一、考点题目

测试用数据表

1. 学生表 Student

--SId 学生编号, Sname 学生姓名, Sage 出生年月, Ssex 学生性别create table Student (SId varchar(10), Sname varchar(10), Sage datetime, Ssex varchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into Student values('02' , '钱电' , '1990-12-21' , '男');insert into Student values('03' , '孙风' , '1990-12-20' , '男');insert into Student values('04' , '李云' , '1990-12-06' , '男');insert into Student values('05' , '周梅' , '1991-12-01' , '女');insert into Student values('06' , '吴兰' , '1992-01-01' , '女');insert into Student values('07' , '郑竹' , '1989-01-01' , '女');insert into Student values('09' , '张三' , '2017-12-20' , '女');insert into Student values('10' , '李四' , '2017-12-25' , '女');insert into Student values('11' , '李四' , '2012-06-06' , '女');insert into Student values('12' , '赵六' , '2013-06-13' , '女');insert into Student values('13' , '孙七' , '2014-06-01' , '女');

2. 课程表 Cours

--CId 课程编号, Cname 课程名称, TId 教师编号create table Course(CId varchar(10),Cname nvarchar(10),TId varchar(10))insert into Course values('01' , '语文' , '02')insert into Course values('02' , '数学' , '01')insert into Course values('03' , '英语' , '03')

3. 教师表 Teache

--TId 教师编号, Tname 教师姓名create table Teacher(TId varchar(10),Tname varchar(10))insert into Teacher values('01' , '张三')insert into Teacher values('02' , '李四')insert into Teacher values('03' , '王五')

4. 成绩表 SC

--SId 学生编号, CId 课程编号, score 分数create table SC(SId varchar(10),CId varchar(10),score decimal(18,1))insert into SC values('01' , '01' , 80)insert into SC values('01' , '02' , 90)insert into SC values('01' , '03' , 99)insert into SC values('02' , '01' , 70)insert into SC values('02' , '02' , 60)insert into SC values('02' , '03' , 80)insert into SC values('03' , '01' , 80)insert into SC values('03' , '02' , 80)insert into SC values('03' , '03' , 80)insert into SC values('04' , '01' , 50)insert into SC values('04' , '02' , 30)insert into SC values('04' , '03' , 20)insert into SC values('05' , '01' , 76)insert into SC values('05' , '02' , 87)insert into SC values('06' , '01' , 31)insert into SC values('06' , '03' , 34)insert into SC values('07' , '02' , 89)insert into SC values('07' , '03' , 98)

1.查询各科成绩最高分、最低分和平均分:以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率(及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90

正确答案:

select Cid, Course.Cname,sum(case when score >= 90 then 1 else 0 end) * 100 / count(score) as '优秀率',sum(case when score >= 80 and score < 90 then 1 else 0 end) * 100 / count(score) as '优良率',sum(case when score >= 70 and score < 80 then 1 else 0 end) * 100 / count(score) as '中等率',sum(case when score >= 60 then 1 else 0 end) * 100 / count(score) as '及格率',max(score) as '最高分',min(score) as '最低分',avg(score) as '平均分'from SC group by Cid;

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

正确答案:

select Student.*, SC.score from Student, SC, Course, Teacherwhere Student.Sid = SC.Sid and SC.Cid = Course.Cid and Course.Tid = Teacher.Tid and Teacher.Tname = '张三'order by SC.score desclimit 1;

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

正确答案:

select a.Cid, a.Sid, a.score, count(b.score) + 1 from(select * from SC group by Cid, Sid, score) aleft join (select * from SC group by Cid, Sid, score) bon a.Cid = b.Cid and a.score < b.scoregroup by a.Cid, a.Sid, a.score having count(b.score) < 3order by a.Cid asc, a.score desc;

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

正确答案:

select SC.Cid, Course.Cname, count(SC.Sid)sum(case when score >= 85 then 1 else 0 end) * 100 / count(score) as '[100-85]',sum(case when score >= 70 and score < 85 then 1 else 0 end) * 100 / count(score) as '[85-70]',sum(case when score >= 60 and score < 70 then 1 else 0 end) * 100 / count(score) as '[70-60]',sum(case when score >= 0 and score < 60 then 1 else 0 end) * 100 / count(score) as '[60-0]'from SC, Coursewhere SC.Cid = Course.Cidgroup by Cid;

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

正确答案:

select a.cid, a.sid, a.score, count(b.score)+1 as rankfrom SC as aleft join SC as bon a.score<b.score and a.cid = b.cidgroup by a.cid, a.sid, a.scoreorder by a.cid, rank ASC;

(答案点击下方链接或者扫海报二维码查看哦)

二、考点文章

sql经典50题

观察原始表格数据,在excel中想得到01比02高,我们需要将原始表格拆分成两个表,课程01表和课程02表,再进行vlookup得到c表,根据if条件判断筛出最终数据。

重点是:1.拆表 2.匹配,转成SQL语言

(扫下方海报二维码查看完整版)

三、考点视频

二叉树叶子结点数=度为2结点数+1

这是二叉树最常考的性质之一,是校招和考研笔试的考点。性质有数学的定理一样,掌握了这种题就是送分题,没掌握花很长时间也得不了分

更多资讯可搜索校招VIP小程序查看哦。

PC端链接:https://xiaozhao.vip/dTopic/detail/243

移动端链接:https://m.xiaozhao.vip/dTopic/detail/243

【校招VIP】数据库基础之sql五十道题相关推荐

  1. MySQL经典五十道题(1-15)

    MySql经典五十道题 先放sql创建文件: 学生,老师,成绩,课程表: /* SQLyog Ultimate v12.3.1 (64 bit) MySQL - 5.6.50 : Database - ...

  2. 数据库基础与SQL基础知识看这篇就够了!

    一.数据库简介 1. DBMS(DataBaseManagement System,数据库管理系统)和数据库数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完 ...

  3. Mysql数据库基础知识(五)之:视图、变量、存储过程、函数、流程控制结构

    第一部分:Mysql数据库基础知识(一)之 基础查询----分组查询 第二部分:Mysql数据库基础知识(二)之 连接查询----子查询-----分页查询------union联合查询 第三部分:My ...

  4. Java数据库基础--以SQL Server为例

    sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数据库的定义( ...

  5. Python编程基础:第五十九节 守护线程Daemon Threading

    第五十九节 守护线程Daemon Threading 前言 实践 前言 守护线程是在后台运行的线程,对程序的运行并不重要,你的程序在退出前不会等待守护线程的完成,此类线程的特点是,当程序中主线程及所有 ...

  6. Python编程基础:第五十八节 线程Threading

    第五十八节 线程Threading 前言 实践 前言 线程就是一个独立的代码执行流程,在一个线程内部Python会按照先后顺序执行指定的代码流.这里我们思考一下,如果我们创建多个线程,并为每个线程指定 ...

  7. Python编程基础:第五十六节 filter函数Filter

    第五十六节 filter函数Filter 前言 实践 前言 filter函数的作用是对可迭代对象内部的元素按照特定条件进行过滤,其书写方式为filter(function, iterable),第一个 ...

  8. Python编程基础:第五十五节 map函数Map

    第五十五节 map函数Map 前言 实践 前言 map函数的作用是将指定函数作用于一个可迭代对象内部的每一个元素,其表达方式为map(function, iterable),第一个位置指定作用函数,第 ...

  9. Python编程基础:第五十四节 排序Sort

    第五十四节 排序Sort 前言 实践 前言 我们常需要对列表.元组中的元素进行排序,例如按照字母表排列学生的名称.这里就需要用到列表的sort()方法,以及sorted()函数. 实践 我们先来构建一 ...

最新文章

  1. 全中国一共有多少IP地址?
  2. 类型的本质和函数式实现
  3. (转载)cmd-命令大全及详解
  4. 机器学习-sk-learn-Facebook数据集预测签到位置
  5. ArcGIS特殊标注效果的简单实现
  6. 数学--数论--莫比乌斯函数
  7. java学习(124):小综合案例
  8. Python中出现 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 12-13
  9. [转]SDN与OpenFlow技术简介
  10. Linux开发工具_yum使用
  11. jquery中ajax的post方法,jQuery中Ajax的get、post等方法详解
  12. FoxNFT创世品牌娘卡包预售6月15日正式开启!五位姑娘正式与大家见面
  13. 模拟器:思科 给路由器配置IP地址和子网掩码
  14. 关于小学生学习编程语言C++的经历经验分享,五问五答
  15. TOEFL wordlist 14
  16. HTML5中新增的元素有哪些
  17. 利用XAG在RAC环境下实现GoldenGate自动Failover
  18. 证券数据接口 查询证券编码及基本上市信息
  19. python代码自动补全利器----Kite介绍安装使用教程
  20. iPhone越狱真机调试

热门文章

  1. 国泰君安国际获2020年《财资》杂志「Triple A Awards」两项大奖
  2. rpm安装出现警告: 密钥 ID f4a80eb5: NOKEY的解决办法
  3. 天津椭圆曲线科技(原木姜子科技)市集商城代码开源
  4. QC ALM 11 邮箱设置
  5. 大学计算机课件,大学计算机课件.docx
  6. 前端将表格数据转为excel并下载
  7. 计算机学硕330调剂,武汉大学2017年计算机学院硕士生接收调剂复试的说明_武汉大学考研网...
  8. 主流SpringCloud微服务架构,您可少走弯路
  9. 《恒盛策略》沪深两市早盘放量上涨 北向资金净买入超124亿元
  10. 小学计算机室迎检介绍词,小学科学实验室的解说词有哪些