【校招VIP】数据库基础之sql五十道题
考点介绍:
数据库在测试工程师的面试过程中也是常问的一项。面试有一定的层次性,如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五十道题相关推荐
- MySQL经典五十道题(1-15)
MySql经典五十道题 先放sql创建文件: 学生,老师,成绩,课程表: /* SQLyog Ultimate v12.3.1 (64 bit) MySQL - 5.6.50 : Database - ...
- 数据库基础与SQL基础知识看这篇就够了!
一.数据库简介 1. DBMS(DataBaseManagement System,数据库管理系统)和数据库数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完 ...
- Mysql数据库基础知识(五)之:视图、变量、存储过程、函数、流程控制结构
第一部分:Mysql数据库基础知识(一)之 基础查询----分组查询 第二部分:Mysql数据库基础知识(二)之 连接查询----子查询-----分页查询------union联合查询 第三部分:My ...
- Java数据库基础--以SQL Server为例
sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数据库的定义( ...
- Python编程基础:第五十九节 守护线程Daemon Threading
第五十九节 守护线程Daemon Threading 前言 实践 前言 守护线程是在后台运行的线程,对程序的运行并不重要,你的程序在退出前不会等待守护线程的完成,此类线程的特点是,当程序中主线程及所有 ...
- Python编程基础:第五十八节 线程Threading
第五十八节 线程Threading 前言 实践 前言 线程就是一个独立的代码执行流程,在一个线程内部Python会按照先后顺序执行指定的代码流.这里我们思考一下,如果我们创建多个线程,并为每个线程指定 ...
- Python编程基础:第五十六节 filter函数Filter
第五十六节 filter函数Filter 前言 实践 前言 filter函数的作用是对可迭代对象内部的元素按照特定条件进行过滤,其书写方式为filter(function, iterable),第一个 ...
- Python编程基础:第五十五节 map函数Map
第五十五节 map函数Map 前言 实践 前言 map函数的作用是将指定函数作用于一个可迭代对象内部的每一个元素,其表达方式为map(function, iterable),第一个位置指定作用函数,第 ...
- Python编程基础:第五十四节 排序Sort
第五十四节 排序Sort 前言 实践 前言 我们常需要对列表.元组中的元素进行排序,例如按照字母表排列学生的名称.这里就需要用到列表的sort()方法,以及sorted()函数. 实践 我们先来构建一 ...
最新文章
- 全中国一共有多少IP地址?
- 类型的本质和函数式实现
- (转载)cmd-命令大全及详解
- 机器学习-sk-learn-Facebook数据集预测签到位置
- ArcGIS特殊标注效果的简单实现
- 数学--数论--莫比乌斯函数
- java学习(124):小综合案例
- Python中出现 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 12-13
- [转]SDN与OpenFlow技术简介
- Linux开发工具_yum使用
- jquery中ajax的post方法,jQuery中Ajax的get、post等方法详解
- FoxNFT创世品牌娘卡包预售6月15日正式开启!五位姑娘正式与大家见面
- 模拟器:思科 给路由器配置IP地址和子网掩码
- 关于小学生学习编程语言C++的经历经验分享,五问五答
- TOEFL wordlist 14
- HTML5中新增的元素有哪些
- 利用XAG在RAC环境下实现GoldenGate自动Failover
- 证券数据接口 查询证券编码及基本上市信息
- python代码自动补全利器----Kite介绍安装使用教程
- iPhone越狱真机调试
热门文章
- 国泰君安国际获2020年《财资》杂志「Triple A Awards」两项大奖
- rpm安装出现警告: 密钥 ID f4a80eb5: NOKEY的解决办法
- 天津椭圆曲线科技(原木姜子科技)市集商城代码开源
- QC ALM 11 邮箱设置
- 大学计算机课件,大学计算机课件.docx
- 前端将表格数据转为excel并下载
- 计算机学硕330调剂,武汉大学2017年计算机学院硕士生接收调剂复试的说明_武汉大学考研网...
- 主流SpringCloud微服务架构,您可少走弯路
- 《恒盛策略》沪深两市早盘放量上涨 北向资金净买入超124亿元
- 小学计算机室迎检介绍词,小学科学实验室的解说词有哪些