一、为什么要学习数据库

能够反作用于业务和快速分析定位问题

在软件开发中会遇到很多问题,追根究底它就是一个数据库里数据的问题,就比如说我们要去验证注册来源对不对,如果我们不去查库的话,我不知道有这个字段的存在,虽然它需求里面说了这么一段话,但实际我从页面上去做功能测试的时候,我并不能看到这个注册来源到底存得对不对,所以我们要去看数据库。

二、常见数据库

1、关系型数据库

关系型数据库:关系型数据库的官方解释比较难理解,其实简单点来讲,关系型数据库就是以行和列的形式储存数据的组织结构,这里体现为二维结构的表,而且多个表之间可能会存在一些关系。

1) Oracle

Oracle 是美国 oracle 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,oracle 数据库的特点是安全、高速、稳定、并发性好,这些特点都使得很多大企业都选择数据库的时候毫不犹豫的选择了 oracle。

早些年的时候,世界 500 强几乎 100% 都是 oracle 的用户。但是 oracle 是收费的,而且不便宜,这也使得很多初创公司或者中小型企业是完全没有能力去负担这笔开支,而放弃使用 oracle,转而选择简便易用,更轻量级且免费开源的 MySQL。

2) MySQL

MySQL 是一种开发源代码的关系型数据库管理系统,并且因为其速度,可靠性和适用性备受中小型企业的青睐。虽然早期版本不支持事物操作、子查询、外键、存储过程和视图等功能。

但是从 02 年发布的 4.0beta 版以来,MySQL 外使用 innoDB 作为默认引擎,对事物处理能力及数据缓存能力又来极大的提高,05 年的 5.0 版本有添加了存储过程、服务端游标、触发器、查询优化以及分布式事物功能。

3) MariaDB

MariaDB 数据库是 MySQL 的一个分支,由开源社区在维护,开发 MariaDB 有一部分原因是因为担心甲骨文收购 MySQL 后,会有将 MySQL 闭源的意图,因此社区采用分支的方式来避开这个风险。

MariaDB 完全兼容 MySQL,包括 API 和命令行,是 MySQL 的完美替代品,储存引擎方面,MariaDB 使用的是 xtraDB 替代了 MySQL 的 InnoDB。

4) Sqlserver

Sqlserver 是由 Microsoft 开发和推广的数据库,它最初是由 Microsoft、Sybase 和 Ashton-tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

Ms SQL server 主要面向中小型企业。其最大的优势是在于集成了 Ms 公司的各类产品及资源,提供了强大的可视化界面、高度集成的管理开发工具,在快速构建商业智能(BI)方面颇有的建树。

2、非关系型数据库

非关系型数据库:非关系型数据库的数据结构跟关系型的完全不同,它主要是以键值对的形式去存储数据。

1) Memcached

Memcached 是以 livejournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件,它的出现很好的解决一系列数据库瓶颈问题,因为在 web 应用中频繁,集中的访问数据库,就会带来高并发带来的一系列问题。

比如导致数据库负担加重、响应恶化、网站显示延迟等重大影响这些问题,而有了 memcached 提供的数据缓存机制,这些问题就都不是问题了。

2) Redis

Redis 是一个 key-value 存储系统。和 memcached 类似,它支持存储的 value 类型相对更多,包括 string(字符串)、list(链表)、set(集合)、和 hash(哈希类型)等。Redis 是一个高性能的 key-value 数据库。

Redis 的出现,很大程度补偿了 memcached 这类 key/value 储存的不足,在部分场合可以对关系数据库起到很好的补充作用。

3) MongoDB

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bson 格式,因此课程储存比较复杂的数据库类型。

Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎都可以实现类似关系数据库表单查询的绝大部分功能,而且还支持对数据库建立索引。

三、如何学习数据库

1)创建/删除库、创建/删除表、查看库、查看表

2)备份、还原数据

3)存储过程 、视图

4)导入、导出数据

5)数据库基础配置 :修改密码、添加用户等

6)数据库链接工具:如 WorkBench Navicat phpMyAdmin 等

7)基本的增删改查 语句

8)稍微复杂点的 SQL :多表查询、子查询 等等

9)至少得知道常见的数据库:Mysql MSSQL Oracle Memcached Redis Mongodb

10)数据库的安装、部署:你至少得会自己在服务器或自己电脑上安装个数据库

接口测试和接口文档生成工具:apipost


↙↙↙阅读原文可查看相关链接,并与作者交流