19年数据分析就业能力考察

就业班开办初衷
课程学习同学进度跟踪(持续更新)
就业班同学转行成功经验分享
就业班BI案例介绍

      测试题共分为三部分,sql + python + 动手,不需要全部能做对,目的只是为了检测大家的一个学习能力和基础水平,因为就业班的课程第一部分就是对基础强化,学完之后这些题目都不是问题,需要大家做这些题目的时候有编程的思路知道大概sql可以用什么关联、python 可以用哪些语法或者函数来实现就好,而不是会怕做看都不想看,不然后面项目的探索环节特别容易放弃。做完后把得分情况发给助教(例如:sql:60+python:60+动手:60)能做的题目越多基础越好。

一、SQL 部分

数据表
--1.学生表 Student(SId,Sname,Sage,Ssex)--SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
--2.课程表 Course(CId,Cname,TId) --CId --课程编号,Cname 课程名称,TId 教师编号
--3.教师表 Teacher(TId,Tname) --TId 教师编号,Tname 教师姓名
--4.成绩表 SC(SId,CId,score) --SId 学生编号,CId 课程编号,score 分数
创建测试数据
学生表 Student:
导入数据方法:将以下 mysql 语句,完整复制到 workbench 语句窗口(或者是 mysql 的黑窗口),然后运行即可导入,不需要另外创建表,下面表的操作一样。这些语句第一条是创建表(create table),后面都是插入数据到表中(insert into table )。

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-05-20' , '男');
insert into Student values('04' , '李云' , '1990-08-06' , '男');
insert into Student values('05' , '周梅' , '1991-12-01' , '女');
insert into Student values('06' , '吴兰' , '1992-03-01' , '女');
insert into Student values('07' , '郑竹' , '1989-07-01' , '女');
insert into Student values('09' , '张三' , '2017-12-20' , '女');
insert into Student values('10' , '李四' , '2017-12-25' , '女');
insert into Student values('11' , '李四' , '2017-12-30' , '女');
insert into Student values('12' , '赵六' , '2017-01-01' , '女');
insert into Student values('13' , '孙七' , '2018-01-01' , '女');

科目表 Course

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');

教师表 Teacher

create table Teacher(TId varchar(10),Tname varchar(10));
insert into Teacher values('01' , '张三');
insert into Teacher values('02' , '李四');
insert into Teacher values('03' , '王五');

成绩表 SC

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、查询「李」姓老师的数量(5分)
2、查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 (10分)
3、查询同时存在" 01 "课程和" 02 "课程的情况 (5分)
4、查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null ) (10分)
5、查询不存在" 01 "课程但存在" 02 "课程的情况(15分)
6、查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩(20分)
7、查询在 SC 表存在成绩的学生信息(15分)
8、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )(20分)

二、python 部分

1、用户从终端输入一个分数,程序输出这个分数所属的考评等级,90到100分是A,60到89是B,60分以下是C。(15分)

2、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和(15分)

3、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。(20分)

4、请用面对对象的思想编写一个小游戏,人狗大站,2个角色,人和狗,游戏开始后,生成2个人,3条狗,互相混战,人被狗咬了会掉血,狗被人打了也掉血,狗和人的攻击力,具备的功能都不一样。(25分)

5、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?(25分)

三、动手探索部分

1、把 user_info_utf.csv 数据导入到自己的 mysql 库中,根据数据文件自己创建 user_info 表。(40分)
2、python 读取文件 order_info_utf.csv 保存到 mysql 库中(60分)
资料:链接:https://pan.baidu.com/s/1eKcTQ-qC8Qu2gz7LYXGJNg 提取码:ck9z

参考答案

一、SQL部分
1.查询「李」姓老师的数量

select
*
from teacher
where tname like '李%';

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

select * 
from sc a 
left join student d
    on a.sid=d.sid 
inner join sc b 
    on a.sid=b.sid and a.cid='01' and b.cid='02'
where a.score>b.score;
  1. 查询同时存在" 01 "课程和" 02 "课程的情况
select * 
from sc a 
inner join sc b 
    on a.sid=b.sid and a.cid='01' and b.cid='02';

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

select * 
from sc a 
left join sc b 
    on a.sid=b.sid  and b.cid='02'
where a.cid='01';
  1. 查询不存在" 01 "课程但存在" 02 "课程的情况
select * 
from sc a 
where sid not in(select sid from sc where cid='01')
and cid='02';

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

select 
a.sid,
d.sname,
avg(score) as s_avg
from sc a
left join student d
on a.sid=d.sid
group by a.sid
having s_avg>60;

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

select 
    b.*
from sc a
left join student b
on a.sid=b.sid
group by a.sid;

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

select 
a.sid,
a.sname,
count(b.cid) as cons,
sum(b.score) as cours
from student a
left join sc b
on a.sid=b.sid
group by a.sid;

二、Python部分
题目1答案:分数等级划分

while True:
    score = input('input score:\n')
    if score == 'stop':
        break

    score = int(score)
    if score >= 90:
        grade = 'A'
    elif score >= 60:
        grade = 'B'
    else:
        grade = 'C'

    print ('{score} belongs to {grade}'.format(score=score,grade=grade))
while True:
    score = input('input score:\n')
    if score == 'stop':
        break

    score = int(score)
    if score >= 90:
        grade = 'A'
    elif score >= 60:
        grade = 'B'

方法2

while True:
    score = input('input score:\n')
    if score == 'stop':
        break

    score = int(score)
    if score >= 90:
        grade = 'A'

    if score >= 60 and score<90:
        grade = 'B'

    if score < 60:
        grade = 'C'

    print ('{score} belongs to {grade}'.format(score=score,grade=grade))

题目2答案:分数求和

up = 2
down = 1
sum = 0
for i in range(20):
    sum += up/down
    tmp = up
    up = up + down
    down = tmp

print (sum)

题目3答案:猴子吃桃

total = 1
for day in range(9,0,-1):
    total = (total+1)*2

print (total)

方法2

current = 1
for day in range(9,0,-1):
    yestoday = (current+1)*2
    current = yestoday

print (yestoday)

题目4:人狗大战

class People():
    agressivity = 10
    life_value = 100

    def __init__(self,name):
        self.name = name

    def attack(self,dog):
        dog.life_value -= 10

    def __str__(self):
        return '人%s剩余生命值:%s,状态值%s'%(self.name,self.life_value,self.agressivity)


class Dogs():
    agressivity = 15
    life_value = 80

    def __init__(self,name):
        self.name = name

    def attack(self,people):
        people.life_value -= 10

    def __str__(self):
        return '狗%s剩余生命值:%s,状态值%s'%(self.name,self.life_value,self.agressivity)

p1 = People('Tom')
p2 = People('Jack')
d1 = Dogs('niker')
d2 = Dogs('geeker')
d3 = Dogs('chaox')

print(p1)
print(p2)

p1.attack(d1)

print(d1)

题目5:弹小球

# 初始高度
height = 100
# 第一次弹起前的距离,初始化
highs = height
# 第2次能弹起来的高度
height = height / 2

for i in range(2, 11):
    # 第2次弹起来的距离,是弹起高度的来回
    highs += height * 2
    # 准备下一次的高度
    height /= 2

print(height,highs)
结果:
0.09765625 299.609375

注意是从第2次弹起来开始计算,因为第一次弹起不具备循环

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容