就業(yè)班開辦初衷
課程學(xué)習(xí)同學(xué)進(jìn)度跟蹤(持續(xù)更新)
就業(yè)班同學(xué)轉(zhuǎn)行成功經(jīng)驗分享
就業(yè)班BI案例介紹
??????測試題共分為三部分嫩痰,sql + python + 動手纫版,不需要全部能做對汇鞭,目的只是為了檢測大家的一個學(xué)習(xí)能力和基礎(chǔ)水平耘沼,因為就業(yè)班的課程第一部分就是對基礎(chǔ)強(qiáng)化韧衣,學(xué)完之后這些題目都不是問題盅藻,需要大家做這些題目的時候有編程的思路知道大概sql可以用什么關(guān)聯(lián)、python 可以用哪些語法或者函數(shù)來實(shí)現(xiàn)就好汹族,而不是會怕做看都不想看萧求,不然后面項目的探索環(huán)節(jié)特別容易放棄。做完后把得分情況發(fā)給助教(例如:sql:60+python:60+動手:60)能做的題目越多基礎(chǔ)越好顶瞒。
一夸政、SQL 部分
數(shù)據(jù)表
--1.學(xué)生表 Student(SId,Sname,Sage,Ssex)--SId 學(xué)生編號,Sname 學(xué)生姓名,Sage 出生年月,Ssex 學(xué)生性別
--2.課程表 Course(CId,Cname,TId) --CId --課程編號,Cname 課程名稱,TId 教師編號
--3.教師表 Teacher(TId,Tname) --TId 教師編號,Tname 教師姓名
--4.成績表 SC(SId,CId,score) --SId 學(xué)生編號,CId 課程編號,score 分?jǐn)?shù)
創(chuàng)建測試數(shù)據(jù)
學(xué)生表 Student:
導(dǎo)入數(shù)據(jù)方法:將以下 mysql 語句,完整復(fù)制到 workbench 語句窗口(或者是 mysql 的黑窗口)榴徐,然后運(yùn)行即可導(dǎo)入守问,不需要另外創(chuàng)建表,下面表的操作一樣坑资。這些語句第一條是創(chuàng)建表(create table)耗帕,后面都是插入數(shù)據(jù)到表中(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' , '孫風(fēng)' , '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' , '數(shù)學(xué)' , '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);
練習(xí)題目
1袱贮、查詢「李」姓老師的數(shù)量(5分)
2仿便、查詢" 01 "課程比" 02 "課程成績高的學(xué)生的信息及課程分?jǐn)?shù) (10分)
3、查詢同時存在" 01 "課程和" 02 "課程的情況 (5分)
4攒巍、查詢存在" 01 "課程但可能不存在" 02 "課程的情況(不存在時顯示為 null ) (10分)
5嗽仪、查詢不存在" 01 "課程但存在" 02 "課程的情況(15分)
6、查詢平均成績大于等于 60 分的同學(xué)的學(xué)生編號和學(xué)生姓名和平均成績(20分)
7柒莉、查詢在 SC 表存在成績的學(xué)生信息(15分)
8闻坚、查詢所有同學(xué)的學(xué)生編號、學(xué)生姓名兢孝、選課總數(shù)窿凤、所有課程的總成績(沒成績的顯示為 null )(20分)
二仅偎、python 部分
1、用戶從終端輸入一個分?jǐn)?shù)雳殊,程序輸出這個分?jǐn)?shù)所屬的考評等級橘沥,90到100分是A,60到89是B相种,60分以下是C威恼。(15分)
2品姓、有一分?jǐn)?shù)序列:2/1寝并,3/2,5/3腹备,8/5衬潦,13/8,21/13...求出這個數(shù)列的前20項之和(15分)
3植酥、猴子吃桃問題:猴子第一天摘下若干個桃子镀岛,當(dāng)即吃了一半,還不癮友驮,又多吃了一個第二天早上又將剩下的桃子吃掉一半漂羊,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個卸留。到第10天早上想再吃時走越,見只剩下一個桃子了。求第一天共摘了多少耻瑟。(20分)
4旨指、請用面對對象的思想編寫一個小游戲,人狗大站喳整,2個角色谆构,人和狗,游戲開始后框都,生成2個人搬素,3條狗,互相混戰(zhàn)魏保,人被狗咬了會掉血熬尺,狗被人打了也掉血,狗和人的攻擊力囱淋,具備的功能都不一樣猪杭。(25分)
5、一球從100米高度自由落下妥衣,每次落地后反跳回原高度的一半皂吮;再落下戒傻,求它在第10次落地時,共經(jīng)過多少米蜂筹?第10次反彈多高需纳?(25分)
三、動手探索部分
1艺挪、把 user_info_utf.csv 數(shù)據(jù)導(dǎo)入到自己的 mysql 庫中不翩,根據(jù)數(shù)據(jù)文件自己創(chuàng)建 user_info 表。(40分)
2麻裳、python 讀取文件 order_info_utf.csv 保存到 mysql 庫中(60分)
資料:鏈接:https://pan.baidu.com/s/1eKcTQ-qC8Qu2gz7LYXGJNg 提取碼:ck9z
參考答案
一口蝠、SQL部分
1.查詢「李」姓老師的數(shù)量
select
*
from teacher
where tname like '李%';
2.查詢" 01 "課程比" 02 "課程成績高的學(xué)生的信息及課程分?jǐn)?shù)
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;
- 查詢同時存在" 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';
- 查詢不存在" 01 "課程但存在" 02 "課程的情況
select *
from sc a
where sid not in(select sid from sc where cid='01')
and cid='02';
6.查詢平均成績大于等于 60 分的同學(xué)的學(xué)生編號和學(xué)生姓名和平均成績
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 表存在成績的學(xué)生信息
select
b.*
from sc a
left join student b
on a.sid=b.sid
group by a.sid;
8.查詢所有同學(xué)的學(xué)生編號、學(xué)生姓名津坑、選課總數(shù)妙蔗、所有課程的總成績(沒成績的顯示為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答案:分?jǐn)?shù)等級劃分
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答案:分?jǐn)?shù)求和
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:人狗大戰(zhàn)
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疆瑰,狀態(tài)值%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眉反,狀態(tài)值%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
# 準(zhǔn)備下一次的高度
height /= 2
print(height,highs)
結(jié)果:
0.09765625 299.609375
注意是從第2次彈起來開始計算寸五,因為第一次彈起不具備循環(huán)