本文基于Linux的MySQL
文章目录
- [一. 什么是数据库](#一. 什么是数据库)
- [二. 主流数据库](#二. 主流数据库)
- [三. 服务器,数据库和表的关系](#三. 服务器,数据库和表的关系)
- [四. MySQL架构](#四. MySQL架构)
- [五. SQL语句分类](#五. SQL语句分类)
- 结束语
一. 什么是数据库
数据库本质是对数据内容存储
的一套解决方案
如何理解呢?
首先,说到数据内容存储,文件 是更为大众所知的数据存储形式。那为什么还会出现数据库呢?
比如这样一个场景,一个文件中,有十万个人的信息,如果要求找出这之中,身份证尾号为1102的,如何操作呢?很多人想,这不就是文件操作,从文件读数据,然后进行筛选。这样的确可以,但这一过程需要认为操作,那我们是否可以将这一过程交给别人完成呢?数据库的功能就是如此。
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于存储海量数据
- 文件只有读写功能
- 文件在程序中控制不方便
数据库就是基于文件系统
,提供更好的数据管理能力
。
实现用户给予字段或者需求 ,数据库可以对数据进行筛选 ,并提交结果
PS:数据库是基于文件系统的,所以其存储介质仍是磁盘
和内存
二. 主流数据库
- SQL Server:微软的产品,.Net程序员的最爱,适用于中大型项目
- Oracle:甲骨文产品,适合大型项目 ,复杂的业务逻辑,大部分银行使用,并发一般来说不如MySQL
- MySQL:甲骨文产品,世界上最受欢迎的数据库,并发性号,但不适合做复杂的业务。主要运用于电商,SNS(社交软件),论坛。对简单的SQL处理效果好
- PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究,都可以免费使用,修改和分发
- SQLite:轻量级数据库 ,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。设计目标是嵌入式的,目前已经在很多嵌入式产品中使用,占用资源非常低,在嵌入式设备中,可能只需要几百K的内存就足够了
- H2:是一个用Java开发的嵌入式数据库,本身只是一个类库,可以直接嵌入到应用项目中
三. 服务器,数据库和表的关系
首先,在MySQL的配置文件/etc/my.cnf
中,我们可以查看数据的默认存储路径
默认存放在/var/lib/mysql
中
当前的/var/lib/mysql中是这样的
简单建立一个helloMySQL的数据库,在helloMySQL中创建表,并插入一些数据
create database helloMySQL;
创建数据库
use helloMySQL;
使用数据库
create table student(...);
创建数据库表
insert into student (...) values(...)
表中插入数据
select * from student
查询表中数据
在创建数据库后,/var/lib/mysql是这样的
可以看到,多了一个helloMySQL的目录
紧接着,我们创建表
helloMySQL目录中就会多出几个文件
尝试插入数据
我们简单使用了一下数据库。
其实建数据库 在Linux层面就是创建了一个目录
,建表 就是创建文件
- 所谓安装数据库服务器,其实是在机器上安装了一个
数据库管理系统程序
,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库 - 为保护应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据
数据库服务器,数据库和表的关系如下:
四. MySQL架构
MySQL的架构可以大致分为三层
- 第一层:连接器。用于管理连接,权限验证
- 第二层:分析器,优化器,执行器。用于SQL语句的解析,传递
- 第三层:存储引擎:插件式存储引擎,数据库管理系统如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方式。
show engines
查看存储引擎常用的有innoDB 和MyISAM
五. SQL语句分类
-
DDL
【data definition language】数据定义语言,用来维护存储数据的结构代表指令:
create
(创建),drop
(丢弃),alter
(修改) -
DML
【data manipulation language】数据操纵语言,用来对数据进行操作代表指令:
insert
(插入),delete
(删除),update
(更新)DML中又单独分了一个
DQL
,数据查询语言,代表指令:select
(查询) -
DCL
【data control language】数据控制语言,主要负责权限管理和事务代表指令:
grant
(授予),revoke
(撤销),commit
(提交)
结束语
感谢你的阅读
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。