MySQL基础(二)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL基础

3.3 使用案例

数据存储路径


通过MySQL创建的数据库和各种表结构,最终会以文件的形式存储下来,通过查看MySQL的配置文件中的datadir可以得知数据文件的存储路径


比如博主的MySQL配置文件的绝对路径为/etc/my.cnf,配置文件中datadir对应的值为/var/lib/mysql


f9884d10e1f548169975ea2a636c239a.png


将来MySQL创建的数据库文件都会存储在该目录下,可以看到该目录下有很多MySQL相关的数据文件


61c197856ab745ddbfb6f445c3985a6c.png


创建数据库


连接MySQL服务器后,通过create语句创建一个名为helloworld的数据库


ab778a7f18bb4a0b86df058ab9e3bb72.png


这时 /var/lib/mysql 目录下,就会多出一个名为helloworld的目录


e9d1891699dc48ea920cb6a9349b64dc.png


目前helloworld目录下只有一个名为的db.opt的文件,该文件中指明了当前数据库的默认字符编码和字符校验规则


5e23f3886cb648b885d436da291f8043.png


创建数据库时,本质就是在MySQL的数据存储路径下新建了一个目录,而当这个数据库删除后,这个目录也就不存在了


1a044dc827ba4efab2158d1202ef7fbb.png


此时在MySQL的数据存储路径下的helloworld目录也就不存在了


a1eae04d79964c2284d9bc638915d3bd.png


使用数据库


使用数据库之前,可以先通过show语句查看当前都有哪些数据库,然后再通过use语句使用指定的数据库


1c8d1cd4b981469cbb5183413a5e884f.png


使用数据库可以理解成,就是使用cd命令进入到该数据库对应的目录中


创建数据库表


可以通过create语句创建一个简单的student表


3d8906aef3c8408a9213098718fe7f5a.png


通过show语句可以查看创建的student表结构


9e0007734fe14e408ee078d25beeb8f1.png


由于student表采用的存储引擎是InnoDB,因此在MySQL的数据存储路径下的helloworld目录下,就会多出两个文件,分别是student.frm和student.ibd


916d29858b794224a05973a7853c9b39.png


其中student.frm是表结构文件,student.ibd是表数据和索引的文件


若创建数据库的本质是在数据存储路径下新建一个目录的话,那么创建表本质实际就是在特定的数据库目录下新建若干个文件(InnoDB存储引擎对应的是两个,MyISAM存储引擎对应的是三个),因此在创建表之前一定要先选择一个数据库


表中插入数据


通过desc语句可以查看对应的表结构


5da58bee43a44614af6c0a8a3ec63a27.png


通过insert语句可以向表中插入数据


79021f3d89e8469bb5ab683d9d5a069b.png


查询表中的数据


通过select语句可以查看表中的数据


d24fc21de42b4f90a233b8668a84f85c.png


数据的逻辑存储


表中的数据是以二维表格的形式进行呈现的,包括行和列


c8e8930fb015447186ffaaee5a1f6f46.png


其中每一行被称为是一条记录,而每一列都代表一个属性(属性列)


四、MySQL架构

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


所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库

为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据

fd62153ad33949299c3aa194944c4b44.png


MySQL架构


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


ea2795f3d00442478d9968e3939829c2.png


连接层:主要完成一些类似连接处理,授权认证及相关的安全方案

服务层:在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断、SQL接口、SQL解析、SQL分析优化、缓存查询的处理以及部分内置函数执行等。各个存储引擎提供的功能都集中在这一层,如存储过程、触发器、试图等

引擎层:由多种可拔插的存储引擎共同组成,真正负责MySQL中数据的存储和提取,每个存储引擎都有各自的优点和缺陷,服务层是通过存储引擎API来与其交互

存储层:将数据存储在裸设备的文件系统之上,完成存储引擎的交互

MySQL客户端


MySQL服务器会收到MySQL客户端发来的SQL语句,并根据SQL语句执行对应的操作


MySQL客户端不仅仅指的是连接MySQL时使用的mysql命令,MySQL客户端还包括语言接口客户端

MySQL给各种语言提供的用于访问数据库的接口,用户通过调用这些接口也可以向MySQL服务器发送SQL语句

mysql命令本质是一个可执行程序,通过file命令可以看到该可执行程序是采用动态链接的方式生成的,通过ldd命令可以看到该可执行程序依赖的C/C++库文件


4139e9fbf43848b7994cf52965d4164e.png


mysql命令本身是C/C++编写的,因此在编写mysql程序时,一定需要调用MySQL提供给C/C++的语言接口客户端。MySQL不仅仅提供了C/C++对应的语言接口,像Python、Java、PHP等都有对应的MySQL接口


五、SQL分类

SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统


SQL语句可分为如下三类:


DDL(Data Definition Language)数据定义语言,用来维护存储数据的结构。比如create语句、drop语句、alter语句等

DML(Data Manipulation Language)数据操作语言,用来对数据进行操作。比如insert语句、delete语句、update语句等

DCL(Data Control Language)数据控制语言,主要负责权限管理和事务。比如grant语句、revoke语句、commit语句

注意: DML中又单独分了一个DQL(Data Query Language)数据查询语言,比如select语句、from语句、where语句等

六、存储引擎

存储引擎就是数据库管理系统如何存储数据、如何为存储的数据建立索引、如何更新数据、如何查询数据等技术的实现方法,MySQL中的存储引擎是插件式的存储引擎,可以支持多种存储引擎


6.1 查看存储引擎

通过show语句可以查看MySQL支持的存储引擎


fb11a8ae5da04e04a00dbbb854fef581.png


MySQL底层默认使用的存储引擎是InnoDB,该存储引擎支持事务、行级锁、外键等


6.2 存储引擎对比

b8aa96ee00a442a1ae978e68403da420.png


注意:InnoDB存储引擎支持事务,而MyISAM存储引擎不支持


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
SQL 存储 关系型数据库
MySQL基础2
MySQL基础
35 0
MySQL基础2
|
8月前
|
关系型数据库 MySQL 数据库
|
9月前
|
存储 关系型数据库 MySQL
MySQL基础
MySQL基础
|
关系型数据库 MySQL 数据库
MySQL基础知识
MySQL基础知识
80 0
|
关系型数据库 MySQL
MySQL基础(二)下
MySQL基础(二)下
88 0
MySQL基础(二)下
|
SQL 存储 NoSQL
MySQL基础(一)上
MySQL基础(一)上
154 0
|
关系型数据库 MySQL 数据库
Mysql基础篇:必知必会(上)
Mysql基础篇:必知必会(上)
Mysql基础篇:必知必会(上)
|
关系型数据库 MySQL Serverless
Mysql基础篇:必知必会(中)
Mysql基础篇:必知必会(中)
Mysql基础篇:必知必会(中)
|
SQL 存储
T-SQL基础
T-SQL基础
226 0
T-SQL基础
|
关系型数据库 MySQL