数据库工程师笔试题
本笔试题由四道大题构成,请您直接在题目下方作答,回答完毕后请尽快将笔试试题反馈至招聘同事,谢谢您的配合。
一、编程题
有存款账户表、账户余额表、汇率表、账户状态表。请使用sql语句(不限数据库)完成以下练习。
1、 写出建表语句(考虑性能)。【20分】
答:
2、 查询所有账户的余额排名情况,并按排名从高到低排序,返回:账户代号、账户名称、开户机构、账户余额(折人民币)、排名名次(从高往低)。【10分】
答:
3、 查询客户分组余额,返回:账户代号、账户名称、客户名称、客户余额(由同一客户名称的账户对应余额汇总,折人民币)、账户余额(折人民币)、账户占比(等于账户余额(折人民币)/客户余额(折人民币)*100)。【10分】
答:
4、 查询2020年新开户客户信息,返回账户代号、账户名称、客户名称、币种、开户日期、账户余额、状态中文名称。(新开户指统计年份以前没有过开户的客户)【10分】
答:
5、 编写存储过程,根据以下逻辑返回对应结果:【20分】
(1)修改账户状态为“销户”的账户余额为0。
(2)返回报表结果:开户机构、客户名称、折人民币余额、正常账户折人民币余额(账户状态=‘正常’)、冻结账户折人民币余额(账户状态=‘冻结’)。
答:
6、 真实情况下,汇率是会实时改变的,所以真实的汇率不仅与币种有关,还与时间有关,若将汇率表的结构与数据更新如下图,用以下新的汇率表进行sql语句查询。
Tips:每条记录代表着起始日期和结束日期范围内,某币种的汇率。
(1) 写出建表语句。【10分】
答:
(2) 查询2020年6月17日,机构开户相关信息,返回:开户机构、开户账户数、存款总余额(折人民币)。【10分】
答:
(3) 查询2020年6月17日,各开户机构账户折人民币余额最大的账户信息,返回:账户代号、账户名称、币种、开户机构、账户余额(折人民币)。【10分】
答:
二、简答题
1、在UPDATE某张数据量大的表的时候,经常出现锁表错误,请问如何处理?如何做优化减少这个错误?(请用你熟悉的数据库回答)【10分】
答:
2、请分别说明热备份和冷备份的备份步骤和相应的编码。【10分】
答:
3、请描述一下列式与行式数据库的区别及原理,同时请列举你用过或学过的非关系型数据库及其特性.【10分】
答:
三、系统题
1、一个linux服务器上部署了一个应用,这个应用集成了redis,mysql,利用docker部署,经常一周会发生一到三次宕机,你从哪些方面去排查问题?并写出你排查的关键命令。【10分】
答:
四、逻辑题
1、两人在长50米的泳池内游泳,A每分钟游47.5米,B每分钟游72.5米,两人同时分别从泳池的两端出发,触壁后原路返回,如是往返.如果不计转向的时间,则从出发开始计算的3分钟内两人共相遇了多少次?为什么?【10分】
答:
最后编辑:严锋 更新时间:2024-05-06 09:43