开开心心带你学习MySQL数据库

关于 MySQL 数据库~~


数据库和数据结构的关系

数据结构,是一个学科,研究数据如何组织,

对于少量的数据,不需要组织…如果是大量的数据,就得好好组织起来,以便于后续进行增删查改!!!~~

数据库,是一类软件,这个软件就是用来组织/保存/管理数据的.

组织这些数据也是为了后续进行增删改查~~

数据库被实现的过程中,也应用到了很多的数据结构!!!


常见的数据库软件:

  1. Oracle [数据库圈子里的带头大哥!!!] (最好的)

​ Oracle (甲骨文)~~现在负责维护Java的公司 ~~互联网行业的巨头

适用于对数据安全极高,以及不在意成本的场景下,如银行

谈论公司大不大,主要是用“公司的市值”来衡量,字节由于没上市….市值缺少准确数字~~

华为也是同理

~~公司没上市,是因为太有钱了,不需要通过市场来融资

同理,valve~~

  1. MySQL 当前使用最广泛的(用的最多的)

    mysql作为一个开源免费的数据库~~就是比收费的香

    一时白嫖一时爽,一直白嫖一直爽

    尤其是中小公司,更青睐mysql

    mysql其实也是近几年左右发展起来的,以前的时候,mysql还不行

    阿里巴巴~~在200x年左右的时候,(淘宝,支付宝)数据库主要是用Oracle,但是Oracle太贵了!!

    成本太高了~~要想用Oracle,不是光花钱买软件,还得搭配IBM的小型机才行

    计算机发展的阶段:
    巨型机(超算,全世界只有联合国五常才有,数量稀少)—>大型机—>中型机—>小型机—>微机 (如电脑,笔记本,以前还有微机课)
    大型机,中型机,小型机也被统称为“小型机”

阿里巴巴就推动了去oracle化这样的行动~~使用mysql来代替Oracle

相当于阿里带头,把mysql里的坑给趟了一遍~~ 其他人一看,纷纷跟进 ~~mysql火了

Oracle这是就着急了!!!~~釜底抽薪 ,打不过就把mysql买了,ε=(´ο`*)))唉真是贫穷限制了我的想象力!! ~~Oracle它给的钱太多了 ~~ 卖完之后,mysql的作者就后悔了 ~~ 作者搞了一手操作,把mysql的源码,另起了分支,重新发布,起了个名字叫做mariadb

主流互联网公司都在用mysql

​ 3.SQL Server 微软搞的数据库 ~~ 很多学校数据库就是用的这个~~ 从技术角度来看,这是一个很好的数据, ~~ 但是它好用不火 ~~ 主要原因是早些年微软的营销策略出了点问题,把SQL Server 等核心产品都和 Windows Server 捆绑销售 ~~ 把路走窄了,因为当时互联网服务器领域,Linux是最大的操作系统,当时公司的产品都是围绕Linux这个系统打造的生态 ~~ 嘿嘿,微软把自己给坑了 ~~ 点评:酒香也怕巷子深

​ 4.SQLite 轻量级数据库

​ 整个程序就是一个exe可执行文件,体积大概就是1M运行时吃的内存啥的也都不高 ~~

​ 正因为这个东西轻量,经常会放到一些“小的”嵌入式系统上使用

​ 最典型的就是手机,(安卓系统内置了sqlite)

也是个使用广泛的数据库

​ 嵌入式:

​ 生活中有很多设备,也是计算机 ~~ 如:冰箱,洗衣机,空调,投影仪,电视………这些设备上只需要

​ 完成一些特定功能就行了 ~~ 不需要啥太高的配置,但可以做到联网 ~~ 万物互联

​ 这些数据库大同小异 ~~ 90%以上都是共通的


以上数据库,都是关系型数据库,对于数据库中的数据的格式,要求比较严格

非关系数据库,代表的软件: redis,MongoDB,HBase….(功能相比于关系性数据库要少一些,但是性能更高,同时更适合当下大数据分布式这样的时代背景)

​ 大数据:

​ 如果数据一个机器装不下,此时需要使用多个机器来装 ~~ 此时这样的数据就是“大数据”

​ 分布式:

​ 引入多台机器,相互配合功能存储和管理这样的一份数据 ~~ 此时就称为“分布式”的系统

​ 云 => 就是服务器

​ 向现在有的厂商“云游戏”,但网络延时大

​ 微服务(嘿嘿,骗人的):

​ 在分布式的基础上(分布式就是使用多个机器共同管理一组数据),当我们在分布式背景下,引入的机器太多了,此时就需要对机器分分类 ~~分类分的越多越细,整体的结构就更复杂,单个机器干的事情就越少 ,更单一了 ~~称为叫做微服务 ~~ 相当于是分布式系统演化过程中的一个阶段 ~~ 解决原有的问题下,又引入新的问题,是好是坏,褒贬不一啊!

咱们日常见到的这些“高大上”的术语,本身都不神秘,~~ (甚至于说都是很简单的东西) ~~ 为啥要造出这些高端的词呢?这些词造出来是为了忽悠资本家的,为了拉投资 ~~作为从业者的我们,内行,可不要被这些词给忽悠了


谈谈mysql

关于mysql主要学啥?

1.SQL编程语言

~~sql是编程语言,sql server, mysql,oracle是软件 ,sql这个语言是运行在这些数据库软件上的……(就像java运行在jvm上)

~~ 通过SQL来完成对数据库的增删查改

~~不同的数据库软件,可能对于sql的语法支持略有差异,但是整体都是一样的

2.数据库背后的一些典型原理(面试题)

3.通过java代码来操作数据库[至关重要]

~~在工作中,绝大多数针对数据库的操作,都是通过代码来自动完成……


课堂上学习mysql主要是使用命令行界面来操作的,市面上也存在很多的图形化的程序 ~~ 本质上都是操作SQL ~~ 因为公司中有些环境,只能用命令行操作……命令行操作学习的核心


MySQL 这个数据库软件,是一个“客服端服务器”结构的程序

重要概念:

客户端(Client)

服务器(Server)

举个例子,有一天我去楼下吃饭,楼下有小饭馆,去小饭馆吃饭,到了小饭馆,进门说:”老板,来份蛋炒饭”,老板说:“好嘞,您稍等”.不一会,老板就把蛋炒饭端到你面前.

~~在这个交互过程中,我就是“”客户端“”,饭馆就是“服务器”

~~我和饭馆之间发生了交互

~~我是主动发起交互的这一方,因此我叫做“客服端”

~~餐馆是被动接受交互的这一方,因此餐馆就是“服务器”

客户端/服务器的定义,只是根据主动被动来确定的.

换句话说,某个程序,在场景1中可能是主动的,在场景2中可能就是被动的了,

此时,这个程序即是客户端,也是服务器 ~~

请求(Request): 客户端给服务器发的数据,就是请求.”老板,来份蛋炒饭”,就是请求.

响应(Response): 服务器返回给客户端的数据,就是响应.不一会,老板就把蛋炒饭端到你面前,就叫响应.

由于服务器是被动的 ~~ 所以餐馆(服务器)无法确定我(客户端)今天来不来吃饭,更会知道我啥时候来吃饭,同样也不知道我来了要吃啥子…… ~~所以这个餐馆,一大早就得开张,一直开到很晚才能关门 ~~就得时刻准备着!!!

对于一般的服务器程序来说,也是要持续运行的~~ 7*24小时运行(一天工作24小时,一周工作7天) ~~007

~~ 程序猿996,在其他行业里横向对比,已经是算比较轻松的了 ~~

销售 ~~ 地球不爆炸,我们不放假;宇宙不重启,我们不休息

医生 ~~ 要么在上班,要么在上班的路上…(疫情期间,更是辛苦)

停电,断网……这些都可能对服务器的稳定性造成影响.~~ 想象一下,微信服务器挂了,这会引起社会恐慌的 ~~ 非常了不得的事情!!!

大的互联网公司都会从技术手段来解决上述问题 ~~ 来保证服务的稳定性是非常高的…….一年之内不可用的时间不会超过5min~~

一个服务器,同一时刻,可能需要给多个客户端提供服务. ~~ 一个餐馆,不是专属给我开的,而是给很多人提供“吃饭”服务的~~当然,也不绝对,有的服务器是专属服务器,专门给某个固定的客户端提供服务的,也比较常见 ~~ 包括餐馆也有专属餐馆

在我们安装mysql的时候,我们同时安装了mysql的服务器和mysql的客户端!!!(这两程序都是在你的电脑上的)

服务器:

QQ截图20230831135247


客户端:

image-20230831135526395

image-20230831135610064

mysql的客户端和服务器通过网络进行通信!! ~~客户端和服务器可以在同一个主机上(也就是现在我的情况) ~~也可以在不同的主机上(主机A装了客户端,主机B装了服务器),以后工作中基本是这个情况

image-20230831141056649

mysql具体是使用啥样的硬件设备来保存的呢?

mysql以及其他的关系型数据库,都是使用硬盘来保存数据的!!!

计算基本结构

image-20230831142313314

以上结构称为“冯洛伊曼体系”

谁提出来的?

~~冯洛伊曼,咱们的祖师爷, ~~咱们现在能够学计算机,能够去学编程,能够端上这碗饭,

能够成家立业,全靠祖师爷赏饭

image-20230831183650267

咱们的祖师爷,事迹有很多 ~~

最初是一个数学家 ~~ 然后又是一个物理学家,还是一个化学家,还是博弈论之父,还参与过曼哈顿计划

,是奥本海默的技术顾问…….这些头衔,随便挑出一个,都可以名存青史…….

20世纪,最伟大的全才!!!

image-20230831184404167

图灵(也是咱的祖师爷)排名不分先后


重要的知识点

内存和外存(硬盘)区别(对于程序设计,有深远的影响):

1.内存访问速度快,外存访问速度慢~~速度能差3-4个数量级(即几千倍)

2.内存的空间小,外存的空间大.(比如我的电脑,外存16GB,硬盘512GB)

3.内存成本贵,外存成本便宜!!! ~~ 一个好一点的16GB的内存条,可能就得几百上千,而同样几百上千能买到一个很好的1T甚至2T的固态硬盘(SSD,电子结构)或者4T的机械硬盘(靠机械结构存储数据,存储速度比较慢)能买2个

4.内存的数据(易失),断电后会丢失,外存的数据(持久),断电后,数据还在,但过个几年,就不知道在不在了!,”持久化”=>就是把数据写到硬盘上

计算机的基本单位~~

bit 一个二进制位

8 bit => 1 byte

1024 byte => 1 MB

1024 MB => 1 GB

1024 GB => 1 TB

1024 TB => 1 PB


数据库 ~~

数据库本体是服务器,服务器使用硬盘来存储数据 ~~ 上述硬盘的特点在我们数据库这也是成立的!!!

数据库服务器具体是如何在硬盘上组织数据的呢?

image-20230831191612828

1.mysql服务器为了更好的组织数据,把上面要存的数据逻辑上划分出了多个数据集合.这些数据集合也称为叫做"数据库"

2.每个数据库里,使用“表”这样的结构来组织数据

​ “表”=>相当于excel表格,有很多行,每一行有很多列,最上面的一行是表头(描述每一列啥意思)

3.每个表里有很多条记录(record),每个记录也就是一行(row)

4.每一个行这里又有很多列(column).每一列也称为一个字段(field)

关系型数据库都是这一套结构=>(关系型数据库对于数据的格式要求是比较严格的) ~~反观 非关系数据库,数据存储往往是基于文档/键值对,格式就比较松散,要求不严格…….

image-20230831191745903

​ “表”=>相当于excel表格,有很多行,每一行有很多列,最上面的一行是表头(描述每一列啥意思)

3.每个表里有很多条记录(record),每个记录也就是一行(row)

4.每一个行这里又有很多列(column).每一列也称为一个字段(field)

关系型数据库都是这一套结构=>(关系型数据库对于数据的格式要求是比较严格的) ~~反观 非关系数据库,数据存储往往是基于文档/键值对,格式就比较松散,要求不严格…….

[外链图片转存中…(img-kEqyNHD0-1693482219888)]

猜你喜欢

转载自blog.csdn.net/m0_73740682/article/details/132610249