欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > MySQL基础

MySQL基础

2025/5/2 7:05:35 来源:https://blog.csdn.net/m0_75186846/article/details/142000441  浏览:    关键词:MySQL基础

目录

一、登录 MySQL

二、MySQL的部署

三、什么是数据库

3.1 数据库概念 

3.2 服务器,数据库,表关系

3.3 SQL 分类

四、MySQL架构

五、初识Linux下的MySQL

5.1 创建数据库

5.2 创建表

5.3 表中插入数据 


一、登录 MySQL

mysql -h 127.0.0.1 -P 3306 -u root -p

-h:指明登录部署了mysql服务的主机端口号(127.0.0.1,本地环回)

-P:指明要访问的端口号(3306,MySQL默认的端口号)

-u:指明登录用户

-p:指明需要输入密码

二、MySQL的部署

在主机中,可以看到存在 mysql 文件夹与 mysqld 文件夹,

其中,mysql指的是数据库服务的客户端;mysqld指的是数据库服务的服务端。

从这里不难看出,MySQL本质是基于C(Client,即mysql)S(Server,即mysqld)模式的一种网络服务。

三、什么是数据库

3.1 数据库概念 

数据库:一般指在磁盘(或内存)中存储的特定结构组织的数据,即在磁盘上存储的一套数据库方案。

说白了,数据库其实就是用户将数据保存在文件过程的中介中,那么为什么用户不直接将数据存储在文件中

文件只提供了存储的功能,但是没有提供很好的对文件内容进行增删查改的能力。


以图的形式来看,用户在外只需要访问 mysql ,对 mysql 执行对应的 sql 句柄,后台由 mysqld 对磁盘存储的数据库文件进行相关的操作,用户并不关心。
这是不是与面向对象的思想类似?或者说面向对象的思想才是计算机帮人们解决问题的思想。 

3.2 服务器,数据库,表关系

在某个软件或某一程序中,所有数据都存在同一数据库中显然是不合理的,假设在某一购物软件中,存在全部订单、待支付订单、退款/售后订单,这些数据还需要建立多个数据库来存储吗?
其实只需要在一个数据库下建立表即可,下面来看看它们之间的关系:

从上图中的信息可以看出来,Linux一切皆文件的特点,数据库在Linux下就是一个目录,数据库表就是目录下的一个文件。下面来见一下Linux下的MySQL。

3.3 SQL 分类

DDL【data definition language】 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML【data manipulation language】 数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit

四、MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

从上图可以看出MySQL的基本架构:
Client Connectors(客户端连接器)
JDBC, ODBC, .NET, PHP, Python, PERL, C API 等客户端接口:这些连接器允许不同编程语言和框架与MySQL服务器进行通信。它们通过标准化的协议与MySQL服务器建立连接,执行SQL语句,并接收服务器返回的数据。

MySQL Server(MySQL服务器核心部分):

Connection Pool(连接池):负责连接管理、身份验证和安全性。它通过连接池减少频繁打开和关闭连接的开销,提高了性能。
Services & Utilities(服务和实用工具):包含诸如备份恢复、安全性、集群、分区管理等功能,以及用于管理数据库的工具
SQL Interface(SQL接口):提供了执行SQL语句(如DML、DDL等)的接口。支持存储过程、触发器、视图等高级功能。
Parser(解析器):包括词法分析、语法分析和代码生成:解析输入的SQL语句,将其分解为可以进一步处理的元素,并生成内部表示供优化器使用。
Optimizer(优化器):负责SQL查询的重写、扫描和索引的顺序选择等,确保SQL查询执行的效率达到最佳。
Caches(缓存):包括全局缓存和针对具体存储引擎的缓存,帮助加快数据查询和写入的速度。缓存用于减少磁盘I/O操作,提升查询性能。

Pluggable Storage Engines(可插拔存储引擎)
MySQL支持不同的存储引擎,用户可以根据不同的业务场景选择适合的存储引擎。
目前MySQL主流的引擎是 MyISAM (早期的默认存储引擎) 和 InnoDB (现在的默认引擎)

五、初识Linux下的MySQL

在Linux下,数据库目录一般是 /var/lib/mysql ,可以 cd 进入该目录然后查看。

5.1 创建数据库

mysql> create database helloworld;
Query OK, 1 row affected (0.01 sec)

当新建数据库时,可以在不同的终端上查看到新建的目录:

这就说明了在Linux下,数据库就是一个目录。

5.2 创建表

创建表之前,需要先使用数据库,至少让数据库知道你要操控的是哪个数据库吧!

mysql> use helloworld
Database changed

然后就可以进行创建表了,这里随便创建一个日期类:

mysql> create table date(
    -> year int,
    -> month int,
    -> day int);
Query OK, 0 rows affected (0.05 sec)

紧接着就可以在 helloworld 目录下查看到有一个新建的文件 date.ibd 

5.3 表中插入数据 

// 表中插入数据

mysql> insert into date (year, month, day) values (2021, 03, 22);
Query OK, 1 row affected (0.01 sec)

// 查看表中数据

mysql> select * from date;
+------+-------+------+
| year | month | day  |
+------+-------+------+
| 2021 |     3 |   22 |
+------+-------+------+
1 row in set (0.00 sec)

从查看表也能知道,MySQL是一个行列式的存储结构:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词