目录
前言
1.什么是数据库
2.数据库的用处
2.1数据库与文件的对比
3.使用数据库
3.1建立数据库
3.2建立表
3.3存储数据
4.服务器,数据库,表关系
5.数据库的分类
5.1MySQL架构
5.2SQL分类
5.3存储引擎
5.3.1什么是存储引擎
5.3.2如何查看存储引擎
总结
前言
哈喽,各位小伙伴大家好!本篇文章为大家介绍数据库的相关概念,理解什么是数据库,为什么有数据库和数据库有什么用处。相信看完这篇文章,大家一定会对数据库有一个新的认识。
1.什么是数据库
数据库本质上是一个网络服务器,分为客户端和服务端。一般,经常在口中说的MySQL就是数据库的客户端,服务端是MySQLD 。
既然了解到数据库是一个网络服务器,那就一定会有它的端口号,数据库绑定的端口号默认是3306。
2.数据库的用处
数据库是一套提供数据存取服务的网络程序,一般是指在磁盘或内存上按照特定结构存储的数据。
说了这么多,其实总结就是一句话,数据库就是用来存储数据的,此时好奇的小伙伴就会问了,既然数据库就是用来存储数据的,那为什么不用文件进行存储数据呢。
在生活中新事物的出现往往是为了弥补旧事物的缺陷,在这里也不例外,数据库的出现也是为了弥补文件存储数据的缺陷。有了这个共识之后再来看数据库就不仅仅只是单单看数据库,而是通过文件的对比再来进一步认识数据库。
2.1数据库与文件的对比
数据库和文件都提供了数据存储的功能,但是文件对数据并没有提供良好的管理能力,而数据库对数据提供了一套完整的管理,给数据库服务提相应的要求,数据库服务直接返回结果。
如图所示:数据库管理数据的流程
除了上面这个核心的区别之外,文件相比于数据库存在以下几个缺点:
文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便
到这里,我们已经认识了什么是数据库,为什么有数据库和数据库有什么用处,下面我们接着来一起具体看看数据库在Linux中是如何操作的!
3.使用数据库
3.1建立数据库
create database 数据库名称;
如图所示:建立一个test1的数据库
相信此时,有小伙伴很懵逼,这里创建数据库是干了个什么???
别着急,下面我来为你揭晓这个答案:
在Linux上有一个路径:/var/lib/mysql/,进入到这个目录之后会发现存在许多的目录,这些目录是什么呢?答案是:这些目录是创建的数据库
如图所示:
看到这里,是否有一种恍然大悟的感觉,原来创建数据库本质上是创建了一个目录而已。那此时问题又来了,既然数据库是用来存储数据的,但是我们知道一个目录是不可能存储数据的,那么数据又是存储在哪里呢。答案是数据存储在表中。
3.2建立表
表是建立在数据库之中的,所以首先第一步是选择对应的数据库,在选择的数据库之中创建表:
a.选择数据库:
use 数据库名称;
b.创建表:
create table 表名称(相关属性字段);
如图所示:
现在表也已经有了,下面就正式可以实现数据库的功能存储数据,那如何向表中存入数据呢?
3.3存储数据
insert into 表名 values (插入数据);
如图所示:
看完之后,大家可能会有疑惑,数据库中创建属性字段的时候数据类型都是如何指定的,以及不同的类型有什么区别,大家不要着急,关于不同的数据类型的相关细节在后续的文章中会单独详细介绍,本章只是让大家先有一个宏观的概念,数据库在Linux中是如何表现的以及是如何存储数据的。
再次理解mysql和mysqld:有了上面的基础之后,我们在Linux上执行相关的指令本质上都是作为客户端给mysqld服务端发送请求,而对于数据库中数据的管理工作是由mysqld完成的。
4.服务器,数据库,表关系
上面我们已经介绍了服务器,数据库和表,接下来具体看看它们之间的关系是如何样的:
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多
个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:
5.数据库的分类
数据库本质上是一种存储数据的管理方案,但是在不同的场景下,由细分许多不同的种类,下面这些是主流的数据库:
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电
商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研
究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的
低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
在这里主要是以MySQL为主,为大家进行介绍
5.1MySQL架构
每一层都完成相应的功能,确保数据库相对于文件的完善性。
5.2SQL分类
上面简单让大家见了一下数据库操作的相关语言,下面是对数据库语言的大体分类,在后续的文章我们将会详细学习每一种操作语言。
DDL【data definition language】 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML【data manipulation language】 数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言,代表指令: select
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit
5.3存储引擎
5.3.1什么是存储引擎
数据库管理系统如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法。
5.3.2如何查看存储引擎
show engines;
总结
以上为大家介绍了什么是数据库,以及数据库的相关概念,相信你看完之后,对数据库有了一个比较清晰的认识了,在接下来的文章会继续为大家更新数据库的具体操作,谢谢大家的支持!