当前位置: 首页 > article >正文

MySQL之数据库基础

目录

一、数据库

1、基本概念

2、常见的数据库

3、MySQL数据库

连接MySQL服务器

数据逻辑存储

二、数据库和表的本质

三、SQL语句

四、服务器,数据库,表的关系

五、存储引擎

查看存储引擎


一、数据库

1、基本概念

一般来说,数据库就是,在内存或者磁盘中存储的由某种特定的数据结构组织起来的数据,数据库对其提供的一种在磁盘上存储的解决方案。

为什么要有数据库?

数据库可以存储数据,但是我们使用文件同样可以存储数据啊。既然已经有了文件,那么为什么还需要数据库呢?

首先,文件保存数据有以下几个缺点:1、文件的安全性问题        2、文件不利于数据查询和管理
3、文件不利于存储海量数据        4、文件在程序中控制不方便。

总结来说,一般的文件确实提供了数据的存储功能,但是却没有提供非常好的数据管理能力,也就是说,如果程序员要对文件中的数据进行读取,修改,条件筛选的时候,就需要自己通过对文件操作的代码进行操作。而如果有了数据库,当我们需要对数据进行读取,修改,条件筛选的时候,我们只需要给数据库服务提供字段或者要求,数据库就可以直接返回我们想要的结果。

2、常见的数据库

MySQL,SQLite,SQL Sever,H2。

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

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

3、MySQL数据库

连接MySQL服务器

命令解释:

-h:指明登录部署了MySQL服务的主机。这里的127.0.0.1就说明MySQL服务是部署在本地机器上的。
-P:指明要访问MySQL服务端的端口号。如果没有写-P 3306,默认是连接配置文件中默认的3306端口号。
-u:指明登录用户。
-p:指明需要输入密码。

然后我们通过netstat命令进行网络进程查看:

我们发现有一个处于listen状态的网络服务,mysqld。

所以说,MySQL本质:基于C(mysql)S(mysqld)模式的一种网络服务,是一套提供数据存取服务的网络程序。mysql是数据库服务的客户端,mysqld是数据库服务的服务端。

数据逻辑存储

数据库是一种行列式结构,是一种表结构:

二、数据库和表的本质

我们首先在/var/lib/mysql/ 路径下,查看一下已有的数据库:

我们然后再创建一个新的数据库:

 接着再次在/var/lib/mysql/ 路径下,查看已有的数据库:

我们发现,数据库,本质就是Linux的/var/lib/mysql/ 路径下的一个目录,我们创建一个数据库,就是在/var/lib/mysql/ 路径下创建一个新的目录。

下面,我们在zdl数据库下创建一张表:

然后,我们进入zdl目录,查询这个目录下的文件:

所以说,在数据库内建立表,本质就是Linux目录下创建对应的文件。

总的来说,数据库本质其实也是文件,只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行完成,这些工作都是mysqld服务帮我们做的。我们可以通过mysqld,来帮助我们对这些数据库文件进行操作,这样可以大大提高效率。

三、SQL语句

SQL (Structured Query Language) 是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。

SQL语句一般分为三类:

DDL (data definition language):数据定义语言,用来维护存储数据的结构。代表指令:create,drop,,alter。

DML (data manipulation language):数据操纵语言,用来对数据进行操作。代表指令: insert,delete,update。DML中又单独分了一个DQL,数据查询语言。代表指令: select。

DCL (Data Control Language):数据控制语言,主要负责权限管理和事务。代表指令: grant,revoke,commit。

四、服务器,数据库,表的关系

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

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

数据库服务器、数据库和表的关系如下:

五、存储引擎

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些技术被统称为存储引擎。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎

show engines

 

其中,最常用的是InnoDB和MyISAM 。而InnoDB,现为MySQL的默认存储引擎。

我们去查看配置文件,发现MySQL的默认存储引擎就是innodb。 


http://www.kler.cn/a/287970.html

相关文章:

  • 大学语文教材电子版(第十一版)教学用书PDF及课件
  • 【链路层】空口数据包详解(4):数据物理通道协议数据单元(PDU)
  • 金山云Java 开发面试题及参考答案
  • Android 中的 Zygote 和 Copy-on-Write 机制详解
  • STM32+AI语音识别智能家居系统
  • 微信小程序navigateTo:fail webview count limit exceed
  • SpringBoot项目集成支付宝
  • 2024.8.28 C++
  • 物联网之云平台架构
  • 详细解说:ansible自动化运维项目
  • python基础(16面试题附答案一)
  • 【随记】开源 AI(Open source AI)
  • read()和readlines()的区别
  • DReg-NeRF: Deep Registration for Neural Radiance Fields论文解读
  • Flask框架 完整实战案例 附代码解读 【3】
  • 【ag-grid】列宽设置不生效探索
  • 基于vue框架的超市管理系统y9992(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • Linux_kernel简介01
  • JavaEE 第21节 UDP数据报结构剖析
  • 【区块链 + 物联网】可信保密的海洋大数据分析平台 | FISCO BCOS应用案例
  • SpringAOPSpring事物管理
  • UE5蓝图 抽卡出货概率
  • 批量替换字符串中的某子串序列为对应的另一子串序列(z3求解器解多元方程时很好用)
  • 【C#】字段
  • 在麒麟系统安装php7.4中遇到的问题
  • uniapp微信小程序3D XR-FRAME