龙空技术网

「面试必备篇」数据库不得不知道的那些事!转发收藏

特斯汀软件测试 62

前言:

现时同学们对“oracle查询一个表中姓名相同班级不同”大体比较注意,你们都需要学习一些“oracle查询一个表中姓名相同班级不同”的相关知识。那么小编同时在网络上汇集了一些对于“oracle查询一个表中姓名相同班级不同””的相关知识,希望朋友们能喜欢,我们一起来了解一下吧!

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

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。

最后,关于软件测试学习,offer选择等等,都可以通过后台私信交流。需要学习资料或者帮忙修改简历也可以私信!!也可百度搜索“特斯汀软件测试腾讯课堂”或关注公众号“特斯汀软件测试”,里面涵盖很多精彩免费视频或干货知识

标签: #oracle查询一个表中姓名相同班级不同