初识MySQL · 数据库

目录

前言:

数据库

简单使用 + 存储引擎


前言:

本文也是MySQL的第一篇文章了,新的知识点已经出现,怎么能够停止不前,穿越时空……(迪迦奥特曼乱入哈哈哈)。

言归正传,我们在本文的目标有:

1 什么是数据库 2 主流数据库有哪些 3 MySQL的基本使用 4 MySQL的基本架构 5 存储引擎

进入正题吧!


数据库

首先提问,按照常理来说,什么是数据库呢?

不少人想到的一点就是,不就是数据的集合吗?是的,数据库从数据存储方面确实只是数据的集合,但是数据库不只是为了集合数据而存在。

如果是为了集合数据,像我们磁盘中任意的文件,本质上也是集合数据:

这是一种集合数据。

集合完数据之后我们应该干什么呢?单纯为了集合数据肯定不行,我们应该需要某个东西/软件来管理我们的数据,方便我们可以在日常使用,或者是程序处理问题的时候更加方便,效率更高,这个时候,数据库就闪亮登场了。

没错,我们学习的MySQL本质上就是数据库,给我们提供了数据存储的功能以外,还可以提供数据的各方面管理。

那么,提问,我们使用ubuntu登录到MySQL的时候,可是看到了两个东西的:

一个是mysql一个是mysqld,它们所在的目录分别为:

它们是什么关系呢?

这里不卖关子了,mysql是数据库服务的客户端,mysqld是数据库服务的服务端,而我们使用指令netstat也是可以查到mysql的,所以得出结论,是什么

mysql实际上是一种网络服务,而且是一种基于C(mysql)S(mysqld)的网络服务。

那么服务的是什么呢?服务的是数据存取。

所以数据库是:在磁盘或者是内存中以特定结构组成而成的数据,那么数据库服务就是mysqld

那么又是如何服务的呢?

给某种特定的要求,或者某种特定的字段,mysqld直接给结果就可以了。

所以数据库的本质是:对数据内容处理的一种解决方案

以上是对数据库的一些基本理解,我们上文提及的,数据库不只是有一个,目前主流的数据库有的如下:

SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。

Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。

MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电 商,SNS,论坛。对简单的SQL处理效果好。

PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研 究使用,可以免费使用,修改和分发。

SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

那么具体的差异就交给同学们自己查阅了,因为MySQL是免费的,所以我们用它来介绍sql语句,而我们有了该数据库的基础,学习其他数据库起来也是十分轻松的了。

而对于MySQL来说,数据库肯定和表拉不开关系,那么对于表的上一层是DB,也就是Database,数据库,对于程序员来说,一般来说都会为不同的软件专门分配不同的数据库,多个数据库中又会创建不同的表,用来保存数据。

这是MySQL,Database,表的基本关系。

说了那么多,我们来简单使用一下。


简单使用 + 存储引擎

我们先登入到MySQL上面:

现在我们MySQL里面有没有数据库我们是不知道的,我们应该先看看,所以show databases:

这里和我们平常使用Linux的命令行有所不同是,我们提供的字段是需要加;的,所以是show databases;

那么我们发现我们目前有的数据库是那4个,我们先不管,先自己添加一个数据库试试:

此时提示创建成功,我们重新看看:

不出意外的话,数据库是多了一个,我们最开始也提到了,

我们使用root权限(注意,这里使用普通用户是进不去的),切换到了root之后,我们进入到/var/lib/mysql,可以发现里面的内容,目录好像有几个是我们才看到的?

那么我们是否可以认为,建数据库的过程就是建立目录的过程呢

答案:是!数据库本质上就是一个一个的目录。

这是一个新认识,那么我们不妨看看我们的数据库里面都有什么:

ubuntu环境下是什么也没有的,但是在Centos的环境下,存在文件dp.opt,里面存储的就是对应的编码格式。

现在,返回到MySQL:

现在我们已经成功切换到了test_mysql里面,那么前文提及,数据库里面都是有表的,所以我们不妨创建一张表:

这里的语法和之前学习Linux或是C++的差别还有点大,所以得多练习。

那么表有了,我们总得插入几个数据吧?

使用指令insert into …,注意,这里使用的引号用了单引号和双引号,那么使用是否有差别呢?我们后面提及。

此时数据插入完毕,我们使用指令:

select * from student;

成功查询到了我们刚才插入的所有数据。

那么在数据库里面的列和行和平常意义的都是一样的。

这是最最基本的使用。

现在我们来看看MySQL的架构部分,对于最上层的肯定是客户端,我们主要是关系存储引擎部分。

这个存储引擎的特点是热插拔,就像我们平常写了一个类,需要用的时候实例化一个对象就可以了,用完删除即可,这个也是,用的时候激活即可。

MySQL中的存储引擎是数据库管理系统的核心组成部分,它负责数据的存储、检索以及处理。每个存储引擎都有其特定的设计理念和性能特点,常见的就是上面的。

但是实际上平常用的多的也就是InnoDB, MyISAM,具体我们放在后面介绍,这里作为了解即可。

那么我们查看存储引擎就是show engines:

而我们看Support那一行,InnoDB是default,也就是默认打开的,也可以看出它十分的常用。

以上是对MySQL的粗略介绍,如有不足,请多多指正!


感谢阅读!

### 初识 MySQL 数据库基础 #### MySQL 的基本概念 MySQL 是一种基于客户机/服务器模式的网络服务,其中客户端应用程序名为 `mysql`,而服务端应用程序为 `mysqld`[^1]。作为一种关系型数据库管理系统 (RDBMS),MySQL 支持标准 SQL 语句来管理和操作数据。然而,除了遵循标准 SQL 外,MySQL 还提供了自己特有的扩展语法。 #### 安装与配置 对于想要学习和使用 MySQL 的用户来说,可以选择免费获取的小型服务器资源或支付大约每年一百多的服务费用来运行 MySQL 实例[^3]。为了验证安装是否成功,可以通过命令行工具执行如下指令: ```bash which mysql; which mysqld; ``` 上述命令会显示 MySQLmysqld 可执行文件的位置路径,从而确认环境变量设置无误并能正常调用这两个程序。 #### SQL 语言的作用 SQL(Structured Query Language),即结构化查询语言,被广泛应用于各种关系型数据库管理系统的交互中,包括但不限于 MySQL、Oracle 和 SQL Server 等。尽管 NoSQL 类型的数据存储解决方案通常拥有独立的操作接口而不完全兼容传统意义上的 SQL,但大多数 RDBMS 都支持这一通用的标准语言来进行数据定义、操纵及控制等活动[^2]。 #### DQL 查询语言的重要性 在日常工作中,开发人员最常接触到的是 DQL(Data Query Language)。这类 SQL 声明主要用于检索信息而不是改变任何持久化的状态;因此,在处理复杂查询方面显得尤为重要且具有挑战性[^4]。 #### 数据库模式的理解 理解数据库中的“模式”非常重要。“模式”是对整个数据库内所有对象及其属性的一种抽象表示方法,它描述了数据的整体逻辑架构而非具体数值。这意味着一旦确定下来之后,“模式”的变化频率较低,相比之下实际存放在里面的“实例”则可能频繁更新换代[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值