数据库就是存放数据的库,负责存储、管理和检索数据。
我们平时看到的网站上的数据,基本都是存放到数据库中的,在用户需要的时候,再通过后端程序从数据库中取出来。
因此,数据库是后端开发的必备技能,也是核心技能!无论你学什么语言的后端,数据库一定都要好好学,也是面试的重中之重!
数据库又分为关系型数据库和非关系型数据库。关系型数据库适用于存储相互之间有关联的数据,比如做一个学生管理系统,要存储学生、班级,一个班级有多个学生,这就是一种关联关系,关系型数据库典型的技术是MySQL;而非关系型数据库主要用于存储零散的、相互独立的数据,典型的技术是Redis。
本路线我们主要学习的是关系型数据库,并且以最主流、学习成本相对更低的关系型数据库MySQL为主。如果要学习非关系型数据库Redis,请移步至:Redis学习路线
注意,MySQL是一种数据库管理系统,但是不能说数据库就是MySQL!
就业方向和数据库相关的岗位还是挺多的,不过每个岗位的要学的知识都不止数据库这一个,往往还要学习很多行业特定的专业技能。
数据库管理员:有些公司也把这个岗位叫做“数据库运维”,顾名思义,工作职责就是负责管理和维护数据库。也包括数据库的备份和恢复、容量规划、优化等等。一般小公司不太会有这种岗位,可能是一个运维就把各种公司用到的服务全包了。
数据库开发:和后端开发的职责有一定交集,都会写SQL。但是有些公司的业务SQL可能非常复杂,这种情况下就有专门的数据库开发同学来主导编写SQL语句,然后再递交给后端去接入到系统中。这类岗位要求你编写SQL的能力必须非常强!
数据分析:负责从数据库(数据仓库)中提取数据,从中得到更有价值的信息,主要的工作也是写SQL查库。但这类岗位相对更卷一些,并且需要一定的数学基础。
大数据开发:和数据库开发类似,都是编写SQL和程序从数据库中查出/计算出需要的数据。但是大数据开发的要求会更高一些,因为他们往往面对的数据量更大、面对的数据库更多样、需要考虑的性能和存储问题更多、编写的程序更复杂。
此外,还有数据科学家、数据挖掘、云数据库工程师等等,坑位相对更少、要求相对更高,不做过多介绍了。
大纲对数据库的学习主要分为4部分:
数据库理论
MySQL入门及实践
SQL语句
MySQL高级(原理)
一般对绝大多数同学来说,把前部分学完就足够了,高级部分面试会考察一些,背背八股文面试题就行。
其中,最最最重要的是一定要能根据业务场景独立设计库表,并且熟练编写SQL语句。
一、数据库理论以前在大学的时候,老师是先给我们讲理论,再上手写代码实践的。但是现在网上很多的教程都是带着大家边实践边讲理论,我觉得这种方式更好,能让大家更轻松地快速入门、不枯燥。
入门可以看这个视频教程: