前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【面试必备篇】数据库不得不知道的那些事

【面试必备篇】数据库不得不知道的那些事

作者头像
测试小牛
发布2022-04-25 20:14:31
2990
发布2022-04-25 20:14:31
举报
文章被收录于专栏:测试小牛进阶测试小牛进阶

你好,我是小牛。

成年人的世界不讲虚的,要聊就聊金钱和妹纸,是有些俗了哈哈哈......鉴于我也才脱单不久,妹纸帮你们搞不定了,所以就只能聊聊如何赚钱,如何提高收入了。

IT圈做技术,除了上班,业余时间搞副业也可以提高部分收入。不过这个说实话,我目前做公众号也还没赚到什么钱,算是刚起步。所以还没资格跟大家讲这个。

所以就聊聊主业,基本上就一条路了,就是想办法跳槽加薪。前几篇文章也陆续提到一些收入相关的,基本上靠在一家公司涨薪是很难了,最快的途径就是跳槽。

而跳槽究竟能涨多少薪水呢?很多hr在发jd的时候都会给一个薪水区间,然后说视能力而定,而能力又是一个很虚的东西,所以说白了能涨多少薪水就看你面试表现怎么样?

所以,不管聊什么,只要你能在短短的一两个小时内,能忽悠住面试官,让他觉得你很牛,很有实力。那么,你就很大概率可以通过面试,并且要到一个不错的薪水。

所以,我准备出一个文章系列就是【面试必备篇】系列,专门讲每一块技能,包括linux,数据库,接口测试,自动化,性能等面试会考的知识点,而且尽可能的给出答案,供大家面试前参考。

当然了,除此之外,公众号还整理了很多视频资源,电子书资源给到大家,也包括我B站会录制一些讲解视频。

所以希望大家可以充分利用好这些资源,靠自学也可以转行成为一名软件测试工程师,乃至自学成为中高级测试工程师,甚至架构师,当然,我本人目前也是在学习进阶中。

废话就不多说了,今天就先开始聊聊数据库。

如果你是转行的对数据库目前了解不多,可以推荐你先看下我之前写的一篇入门文章

软件测试如何自学数据库?

数据库在面试中属于必考内容,基本上考的最多的就是手写sql,会给你出一个场景题,比如分数啊,班级课程啊之类的,一般是多表查询语句居多。当然这是对一些中小公司来说。

对一些大厂来说,除了最基本的手写sql语句之外,还会要求你对数据库有深刻认识,主要就包括一些概念理论。

关于如何手写sql,我公众号提供的视频资源,也包括大家在B站上随手一搜,到处都是。

所以本文暂时不写怎么写sql,当然后面,我有可能会找几道经典的多表查询面试题案例和大家分析。

本文主要科普一些作为一枚测试,应该知道的一些数据库理论知识,知道这些面试不仅很加分,而且可以加深你对数据库的理解,而不仅仅停留在只会手写几个sql上面。

当然对于数据库理论知识的学习,肯定不需要像开发那么深入,但是一些基本的需要知道并掌握,简单来说,看我接下来的文章搞明白完全够用了

一.数据库分类

数据库主要分两种,一种是关系型数据库,比如大家熟悉的oracle,mysql等,另一种是非关系性数据库主流的有mongodb和redis等。

目前企业中使用最多的就是oracle和mysql数据库,推荐大家先学这两个。

非关系性数据库大家需要重点知道的就是redis,又叫缓存数据库,这个也是日常工作使用非常多的。

一般大型网站,它的数据并不是存在关系性数据库里的,而是存在缓存里的,缓存是存在内存里的,这样它的访问速度就会特别快。

存在数据库的,是存在硬盘上的,从硬盘上读数据肯定没有从内存读数据快。所以,缓存应用一般是为了提高访问速度。

简单来说,就是比如一个查询,第一次查询完之后可以将返回结果存到缓存中去,同样的查询条件再次查询时就可以直接从缓存中读取。redis就是这样一种缓存数据库。

二.主键,外键

数据库中的主键是在一张表中可以唯一标识一条记录的字段。且在一个表中只能有一个主键而且不能够重复,也不能为空值。

举几个例子:

1.学生表(学号,姓名,班级)

因为每个学生学号唯一,所以学号就是一个主键。

2.课程表(课程id,课程名)

由于课程id是唯一的,所以它就是一个主键。

3.成绩表(学号,程程id,成绩)

在成绩表中任何一个字段都无法标识一条记录,需要学号和课程id组合起来才可以标识,因此它俩组合起来是一个外键。

再来说说外键,外键主要用于建立和另一张表的关联,是确定另一张表记录的字段。外键是另一张表的主键。可以有多个且重复,也可以是空值。

在上面的例子中,学号不是成绩表中的主键但它是学生表中的主键,因此我们就可以称成绩表中的学号是学生表的外键。

三.索引

简单来说,索引就是关系性数据库中,和表相关的一种数据库结构,它就好比是一本书的目录,当你想查找某个内容时,就可以根据目录快速定位到。

对于现在企业的大型数据库来说,基本都有索引,它可以加快对应表的sql执行速度,从而大大提升数据库性能.

从性能测试的角度来说,它可以减少数据库瓶颈,从而提升系统的并发能力,也就是提升TPS。

四.事务

事务是并发控制的基本单位,所谓的事务,就是一系列操作,这些操作要么都执行成功,要么都执行失败。

以最经典的A账户向B账户转账200元举例:

总共需要两步:A账户减少200元,B账户增加200元。

假想一下假如A账户减少200元后,系统发生故障,B账户却没有增加钱怎么办呢?

这就引入了事务这个概念,这两个操作合起来就是一个事务,是一个整体,要么都执行成功,要么都执行失败,这样就避免出现这种情况。

五.存储过程

简单来说,就是一个大型项目,会多次涉及和数据库的连接,这时会一次次使用sql语句来连接数据库。

如果这个时候使用存储过程只需要连接一次就可以了,从而省去大量的sql语句。

对于很简单的sql,存储过程没什么优势,但是对于复杂系统,复杂逻辑时,存储过程可以大大提升运行速度。

除此之外,存储过程还具备减少网络传输,可维护性高,提升安全性,高扩展性等优点。

以上就是一些数据库常用到的概念,可能开发每天都需要打交道,但是对于测试来说也最好掌握,至少知道什么意思,面试会很加分,而不是仅仅会写一些sql。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试小牛进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档