面试数据库问题(软件测试SQL面试题)

本文目录
软件测试SQL面试题
数据库,无外乎增删改查:
增:
insert into A表 values (value1,value2,value3......)向A表中新增数据
删:
delete from A表 ( where id=1) 删除A表(删除A表id=1的数据)如果删除某个测试数据,记得加where条件,否则整张表的数据都被删除,防止误操作!不过,数据可以回滚找回。
truncate A表:清除表数据,数据无法回滚。
drop A表:整表结构删除,即,这张表不存在了。
改:
update A表 set name=’test’ where id=1 修改id为1的name值为test
查:
1:左关联和右关联的区别?
答:左关联( left join )左表为主,左表数据全部显示,右表显示关联数据,无关联显示null,右关联( right join )相反。
2:模糊查询?
select * from A表 where name like ’ %a% ’ (name包含a字母)
查询结果: a , a bc,b a c,bc a
select * from A表 where name like ’ a% ’ (name值以a字母开头)
查询结果: a , a bc
select * from A表 where name like ’ %a ’ (name值以a字母结尾)
查询结果: a ,bc a
3:统计:count和sum
count统计表的 记录数 ,sum统计某列数值 总和 。
select count(*) from A表
select count(1) from A表
select count(列名) from A表
区别:
count( * ): 所有记录,包括null值
count( 1 ):所有记录,包括null值
count( 列名 ):列名有值得记录, 不包括null值
执行效率:
以前是count(1)比count(*)快,但现在count(*)底层算法优化,查询更快,所以推荐count(*)
统计有效数据的记录,count(列名)
select sum(列名) from A表 计算列名数值总和。
举例:
查询A表中,姓王的用户量
select count(*) from A where name like ’王%’
Plus版
1:去重distinct,查询不重复记录的数据
必须放开头
select distinct 列名 from 表名(查询所有列名数据,去掉重复数据)
举例:
表A,查询考核等级grade,有哪些值
select distinct grade from A
2:分组group by,根据某个字段分组
select 列名 from 表名 group by 列名,一般会配合聚合函数一起使用
举例:
表A中,查询考核等级grade字段,不同值各多少人
select grade,count(*) from A group by grade
3:limit,查询结果返回的数量,多用于分页查询
select * from 表名 limit i,n i代表查询结果的索引值,默认从0开始,n返回查询的结果数。
举例:
订单表A,查询第21条到30条数据
select * from A limit 20,10
可能会问为什么不能直接用id查询?因为id不准确,可能存在id不连续的情况。如果某条数据被物理删除了呢?
何为物理删除和逻辑删除?
物理 删除 ,直接将某条数据,从表中删除。
逻辑 删除,仅通过某个字段标记删除,实际表中还存在。(比如:is_delete=1代表已删除,is_delete=0未删除)
4:排序order by 列名 asc(列名值升序排列)和order by 列名 desc(列名值降序排列)
举例:
用户表A,按照用户id升序(select查询默认根据主键升序,所以升序,不加order by也可以)
select * from A order by id asc同select *from A
用户表A,按照新建时间倒序
select * from A order by create_time desc
5:in和between查询某个范围的数值
举例:
in:查询指定数值的数据
between:查询某个范围内的数据
举例:
查询表A中,id=1和id=10的数据
select * from A where id in(1,10)
查询表A中,1月份新增的数据
select * from A where create_time between ’2022-01-01’ and ’2022-01-31 23:59:59’
已知有如下4张表:
学生表:student(学号,学生姓名,出生年月,性别)
成绩表:score(学号,课程号,成绩)
课程表:course(课程号,课程名称,教师号)
教师表:teacher(教师号,教师姓名)
准备练习数据
1)创建学生表(student)
2)创建成绩表(score)
3)创建课程表(course)
4)教师表(teacher)
1)学生表添加数据
2)成绩表添加数据
3)课程表添加数据
4)教师表添加数据
简单查询
查询姓“猴”的学生名单
查询姓名中最后一个字是“猴”字的学生名单
查询姓名中带“猴”字的学生名单
查询姓“孟”老师的个数
汇总分析
1.汇总分析
查询课程编号为“0002”的总成绩
查询选了课程的学生人数
2.分组
查询各科成绩的最高分和最低分, 以如下的形式显示:课程号,最高分,最低分
查询每门课程选修的学生数
3.分组结果的条件
查询至少选修两门课程的学生学号
查询同名同姓学生名单并统计同名人数
分析:条件:怎么算姓名相同?按姓名分组后人数大于等于2,因为同名的人数大于等于2,分析出这一点很重要
查询不及格的课程并按课程号从大到小排列
查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列
检索课程编号为“0004”且分数小于60的学生学号,结果按按分数降序排列
统计每门课程的学生选修人数(超过2人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序
查询两门以上不及格课程的同学的学号及其平均成绩
第2步:再加上限制条件:
1)不及格课程
2)两门以上
4.查询结构排序,分组的指定条件
查询学生的总成绩并进行排名
查询平均成绩大于60分的学生的学号和平均成绩
复杂查询
查询课程成绩小于60分学生的学号、姓名
【知识点】子查询
1.翻译成大白话
1)查询结果:学生学号,姓名
2)查询条件:所有课程成绩 《 60 的学生,需要从成绩表里查找,用到子查询
第1步,写子查询(所有课程成绩 《 60 的学生)
第2步,查询结果:学生学号,姓名,条件是前面1步查到的学号
查询没有学全所有课的学生的学号、姓名
查询出只选修了两门课程的全部学生的学号和姓名
查找1990年出生的学生名单
查询本月过生日的学生
工作中会经常遇到这样的业务问题:
如何找到每个类别下用户最喜欢的产品是哪个?
如果找到每个类别下用户点击最多的5个商品是什么?
这类问题其实就是常见的:分组取每组最大值、最小值,每组最大的N条(top N)记录。
分组取每组最大值,按课程号分组取成绩最大值所在行的数据
分组取每组最小值,按课程号分组取成绩最小值所在行的数据
每组最大的N条记录,查询各科成绩前两名的记录
第1步,查出有哪些组
我们可以按课程号分组,查询出有哪些组,对应这个问题里就是有哪些课程号
第2步:先使用order by子句按成绩降序排序(desc),然后使用limt子句返回topN(对应这个问题返回的成绩前两名)
第3步,使用union all 将每组选出的数据合并到一起
多表查询
查询所有学生的学号、姓名、选课数、总成绩
查询平均成绩大于85的所有学生的学号、姓名和平均成绩
查询学生的选课情况:学号,姓名,课程号,课程名称
数据分析师常见的面试问题
关于数据分析师常见的面试问题集锦
1、你处理过的最大的数据量?你是如何处理他们的?处理的结果。
2、告诉我二个分析或者计算机科学相关项目?你是如何对其结果进行衡量的?
3、什么是:提升值、关键绩效指标、强壮性、模型按合度、实验设计、2/8原则?
4、什么是:协同过滤、n-grams, map reduce、余弦距离?
5、如何让一个网络爬虫速度更快、抽取更好的信息以及更好总结数据从而得到一干净的数据库?
6、如何设计一个解决抄袭的方案?
7、如何检验一个个人支付账户都多个人使用?
8、点击流数据应该是实时处理?为什么?哪部分应该实时处理?
9、你认为哪个更好:是好的数据还是好模型?同时你是如何定义“好”?存在所有情况下通用的模型吗?有你没有知道一些模型的定义并不是那么好?
10、什么是概率合并(aka模糊融合)?使用sql处理还是其它语言方便?对于处理半结构化的数据你会选择使用哪种语言?
11、你是如何处理缺少数据的?你推荐使用什么样的处理技术?
12、你最喜欢的编程语言是什么?为什么?
13、对于你喜欢的统计软件告诉你喜欢的与不喜欢的3个理由。
14、sas, r, python, perl语言的区别是?
15、什么是大数据的诅咒?
16、你参与过数据库与数据模型的设计吗?
17、你是否参与过仪表盘的设计及指标选择?你对于商业智能和报表工具有什么想法?
18、你喜欢td数据库的什么特征?
19、如何你打算发100万的营销活动邮件。你怎么去优化发送?你怎么优化反应率?能把这二个优化份开吗?
20、如果有几个客户查询oracle数据库的效率很低。为什么?你做什么可以提高速度10倍以上,同时可以更好处理大数量输出?
21、如何把非结构化的数据转换成结构化的数据?这是否真的有必要做这样的转换?把数据存成平面文本文件是否比存成关系数据库更好?
22、什么是哈希表碰撞攻击?怎么避免?发生的频率是多少?
23、如何判别mapreduce过程有好的负载均衡?什么是负载均衡?
24、请举例说明mapreduce是如何工作的?在什么应用场景下工作的很好?云的安全问题有哪些?
25、(在内存满足的情况下)你认为是100个小的哈希表好还是一个大的哈希表,对于内在或者运行速度来说?对于数据库分析的评价?
26、为什么朴素贝叶斯差?你如何使用朴素贝叶斯来改进爬虫检验算法?
27、你处理过白名单吗?主要的规则?(在欺诈或者爬行检验的情况下)
28、什么是星型模型?什么是查询表?
29、你可以使用excel建立逻辑回归模型吗?如何可以,说明一下建立过程?
30、在sql, perl, c++, python等编程过程上,待为了提升速度优化过相关代码或者算法吗?如何及提升多少?
31、使用5天完成90%的精度的解决方案还是花10天完成100%的精度的解决方案?取决于什么内容?
32、定义:qa(质量保障)、六西格玛、实验设计。好的与坏的实验设计能否举个案例?
33、普通线性回归模型的缺陷是什么?你知道的其它回归模型吗?
34、你认为叶数小于50的决策树是否比大的好?为什么?
35、保险精算是否是统计学的一个分支?如果不是,为何如何?
36、给出一个不符合高斯分布与不符合对数正态分布的数据案例。给出一个分布非常混乱的数案例。
37、为什么说均方误差不是一个衡量模型的好指标?你建议用哪个指标替代?
38、你如何证明你带来的算法改进是真的有效的与不做任何改变相比?你对a/b测试熟吗?
39、什么是敏感性分析?拥有更低的敏感性(也就是说更好的强壮性)和低的预测能力还是正好相反好?你如何使用交叉验证?你对于在数据集中插入噪声数据从而来检验模型的.敏感性的想法如何看?
40、对于一下逻辑回归、决策树、神经网络。在过去XX年中这些技术做了哪些大的改进?
41、除了主成分分析外你还使用其它数据降维技术吗?你怎么想逐步回归?你熟悉的逐步回归技术有哪些?什么时候完整的数据要比降维的数据或者样本好?
42、你如何建议一个非参数置信区间?
43、你熟悉极值理论、蒙特卡罗逻辑或者其它数理统计方法以正确的评估一个稀疏事件的发生概率?
44、什么是归因分析?如何识别归因与相关系数?举例。
45、如何定义与衡量一个指标的预测能力?
46、如何为欺诈检验得分技术发现最好的规则集?你如何处理规则冗余、规则发现和二者的本质问题?一个规则集的近似解决方案是否可行?如何寻找一个可行的近似方案?你如何决定这个解决方案足够好从而可以停止寻找另一个更好的?
47、如何创建一个关键字分类?
48、什么是僵尸网络?如何进行检测?
49、你有使用过api接口的经验吗?什么样的api?是谷歌还是亚马逊还是软件即时服务?
50、什么时候自己编号代码比使用数据科学者开发好的软件包更好?
51、可视化使用什么工具?在作图方面,你如何评价tableau?r?sas?在一个图中有效展现五个维度?
52、什么是概念验证?
53、你主要与什么样的客户共事:内部、外部、销售部门/财务部门/市场部门/it部门的人?有咨询经验吗?与供应商打过交道,包括供应商选择与测试。
54、你熟悉软件生命周期吗?及it项目的生命周期,从收入需求到项目维护?
55、什么是cron任务?
56、你是一个独身的编码人员?还是一个开发人员?或者是一个设计人员?
57、是假阳性好还是假阴性好?
58、你熟悉价格优化、价格弹性、存货管理、竞争智能吗?分别给案例。
59、zillow’s算法是如何工作的?
60、如何检验为了不好的目的还进行的虚假评论或者虚假的fb帐户?
61、你如何创建一个新的匿名数字帐户?
62、你有没有想过自己创业?是什么样的想法?
63、你认为帐号与密码输入的登录框会消失吗?它将会被什么替代?
64、你用过时间序列模型吗?时滞的相关性?相关图?光谱分析?信号处理与过滤技术?在什么样的场景下?
65、哪位数据科学有你最佩服?从哪开始?
66、你是怎么开始对数据科学感兴趣的?
67、什么是效率曲线?他们的缺陷是什么,你如何克服这些缺陷?
68、什么是推荐引擎?它是如何工作的?
69、什么是精密测试?如何及什么时候模拟可以帮忙我们不使用精密测试?
70、你认为怎么才能成为一个好的数据科学家?
71、你认为数据科学家是一个艺术家还是科学家?
72、什么是一个好的、快速的聚类算法的的计算复杂度?什么好的聚类算法?你怎么决定一个聚类的聚数?
73、给出一些在数据科学中“最佳实践的案例”。
74、什么让一个图形使人产生误解、很难去读懂或者解释?一个有用的图形的特征?
75、你知道使用在统计或者计算科学中的“经验法则”吗?或者在商业分析中。
76、你觉得下一个20年最好的5个预测方法是?
77、你怎么马上就知道在一篇文章中(比如报纸)发表的统计数字是错误,或者是用作支撑作者的论点,而不是仅仅在罗列某个事物的信息?例如,对于每月官方定期在媒体公开发布的失业统计数据,你有什么感想?怎样可以让这些数据更加准确?
;
更多文章:
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30
excel连接sql数据库教程(excel怎么连接sql数据库)
2026年10月14日 19:40






