MySQL基础知识

什么是数据库?

首先你要知道什么是数据缓存和持久化,我们的应用在使用的过程中肯定是会产生各种各样的数据,当然你不希望当用户关闭应用时数据就丢失了,再次打开应用的时候一片空白

你可以考虑数据缓存,当然他也是会丢失的,比如浏览器中的缓存,一般会自动清理或者被用户手动清理,所以重要的数据肯定不能是缓存的,所以需要选择持久化存储

数据库只是持久化存储的一种方式,你将数据存储到一个txt文档或者是xml文档,又或者是word和Excel中,这都算是持久化数据,都能被程序所读取和使用,当然在实际开发中,数据库是更好的选择

非关系型和关系型数据库

高大上的理论你听不懂,我也讲不来,分享的都是通俗的话

数据库的主流分类

  • 关系型数据库 RDBMS (Relational Database Management System)
    • mysql
    • SQLserve
    • Oracle
    • sqllite
    • … …
  • Nosql database 非关系型数据库
    • MongoDB
    • redis
    • neo4j
    • … …

非关系型和关系型数据库

关系型数据库:指采用了关系模型来组织数据的数据库。

关系型数据库:指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。

数据库事务必须具备ACID特性,ACID分别是Atomic原子性,Consistency一致性, Isolation隔离性,Durability持久性。

那么什么是关系模型?

比如网页中的一篇文章,分为标题、内容、描述、时间 ,要把这些对应的内容存入数据库,大致的结构为

属性
title 标题开学第一天
content 内容这是一个好日子… …
desc 描述描述我的第一天
date 时间2020/10/16

我们要存储多篇文章,使用关系型数据库大致就是这样的

image-20201020104743616

每一个二维表都有一个名称(关系),这个表名为article表,在这个表中,每一行(横向)就是一条数据,每条数据都是按照上面顶部的 schema(id,title,content,desc,date)约束来填充的,这个就好像学校里老师发的试卷,每个空格都必须按照约束填写,有些空格必填有些做不来可以不填(域:属性的取值范围,也就是数据库中某一列的取值限制),一列(竖向)称为字段,比如 id 这一列就统计了所有文章的序列号,title这一列就能看到所有文章的标题

这个表的关系模型就可以表示为:

article文章表(id属性 值为整数类型 不能为空 自动递增 无特殊符号,title标题字段 字符串类型 不能为空,content文章内容字段 不能为空 … …)

关系型的数据库更容易理解,关系明确,容易使用,但是海量数据处理压力很大

回过头来说非关系数据库

非关系数据库也需要一定的关系设计!!!

非关系型数据库以键值对存储,结构不用固定,每一个元组可以有不一样的字段

适合存储一些较为简单的数据,对于需要进行较复杂查询和事务处理的数据,关系型数据库显的更为合适

和关系型数据库稍微有点不同,这没有表的概念,而是把上面的整个的一行数据作为一个值,然后命名一个键存入一个集合中

比如上面的文章表改为非关系型

image-20201020111419483

MySQL 是⼀种关系型数据库,在Java企业级开发中⾮常常⽤,因为 MySQL 是开源免费的,并且⽅便扩

展。阿⾥巴巴数据库系统也⼤量⽤到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,

因此任何⼈都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进⾏修改。MySQL的默认端⼝号是3306

给TA打赏
共{{data.count}}人
人已打赏
编程

MySQL使用Docker运行的详细步骤

2023-3-26 17:12:00

编程

MySql的安装和可视化工具

2023-4-3 22:42:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索