mysql的基本原理 数据库的基本原理


mysql的基本原理 数据库的基本原理

文章插图
数据库和关系型数据库作为一个程序员,不了解数据库怎么能行,那么数据库到底是个啥呢,作为一个Java工程师,平时和数据库打交道着实不少,所谓的CRUD其实就是对数据库进行增删改查的操作 。
根据百度百科的介绍,数据库是“按照数据结构来组织、存储和管理数据的仓库” 。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合 。
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作 。
是不是没听懂,好吧,简单来说,像MySQL这样的数据库,就是用于存储结构化数据的,比如一个学生的信息数据,一个商品的数据,或者是一个学生购买商品的消费数据 。
联想到平时我们经常使用的Excel,其实和数据库挺像的,数据库其实就是一个表格,里面有很多的数据类型,比如字符串,比如数字,再比如长文本等等 。
而这类数据库也叫关系型数据库,典型代表就是MySQL 。
再看看百度百科的介绍,关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库 。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码 。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织 。
除了关系型数据库之外,近些年来还有很多nosql(not only sql)数据库在兴起,比如MongoDB,以及图数据库、列式数据库等等,这些数据库对于新手程序员来说用的并不多,所以本文我们只讨论关于关系型数据库的内容 。
关系型数据库是我们程序员平时用的最多,也最简单易上手的数据库类型,所以,学习数据库一般也从MySQL这类关系型数据库入手,一来它简单好学,二来它是免费的 。
我的数据库学习历程我第一次听说“数据库”这个词还是在大学的时候,那时候正值大家找工作,有一个同学和我们分享自己的求职经验,据他所说,每个公司都会考察你的数据库知识,学好了数据库,面试什么公司都不怕 。
当时我还觉得挺玄乎的,不过我们学校确实没来什么大公司,我对此半信半疑,至于到底是不是这样,后来也就没再追究了 。
第二次接触数据库,是在学习Java的时候,记得当初自己跟着一个小教程,下载安装了MySQL,然后从网上下载了demo代码,用当时先进的开发工具eclipse跑通了别人家的代码,其实就是增删改查 。
只不过当时对这些东西也没啥概念,后来又下载了一个db的可视化工具,可以更方便地了解自己的数据库里到底都有啥 。
再到后来,我开始慢慢接触项目实战,使用数据库的时间也越来越长,自以为对于数据库的理解还算可以,直到我真正地接触了数据库相关的面试题,才让我发现自己对于数据库的理解是多么的肤浅 。
那个时候,我只懂写一些简单的crud,甚至连内外连接、group by和count等一些简单的sql用法都不了解,除此之外,我对于数据库的一些原理性内容几乎也是一窍不通的,比如数据库的索引、事务、锁机制,我统统不知道,更别谈如何回答相关的面试题了 。
于是,我开始意识到学习数据库原理是多么重要的一件事情,我开始看数据库方面的书籍,从最基础的数据库教材,再到MySQL的原理性内容,再到mybatis这类orm框架的实现,我都逐渐地开始学习和了解,直到我能够对大部分的数据库面试题都较好地掌握 。

秒懂生活扩展阅读