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.mzph.cn/bicheng/53140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

es映射配置(_mapping)

文章目录 1、创建映射字段2、查看映射关系 1、创建映射字段 PUT /索引库名/_mapping {"properties": {"字段名": {"type": "类型","index": true,"store": true,"analyzer": &q…

Vue转React踩坑记录——useEffect组件卸载时使用useState定义的值返回undefined

bug背景:vue转react踩坑。在vue数据是响应式的,卸载时不会出现数据已经赋值但是卸载是undefined情况,除非手动更改为undefined。而在react流行的hooks写法,你要一直操作数据,react提供的useEffect方法的return 里其实就…

视频结构化从入门到精通——视频结构化主要技术介绍

视频结构化主要技术 1 视频接入 “视频接入”是视频结构化管道的起点(SRC Point)视频接入是视频结构化处理的第一步,它涉及将视频数据从各种采集源获取到系统中进行进一步处理。视频接入的质量和稳定性对后续的数据处理、分析和应用至关重要…

多参数遥测终端科技守护水电站生态流量下泄

随着我国水电事业的蓬勃发展,水电站在推动地方经济快速增长、缓解能源压力方面发挥了不可替代的作用。然而带来的生态环境问题日益凸显,因水电站下泄流量不足造成部分河段减水、脱水甚至干涸,影响了河流的正常生态功能和居民的生产、生活。因…

Android12 添加设置控制导航栏显示和状态栏下拉

添加key值 位置: frameworks/base/core/java/android/provider/Settings.java /*** Control navigation bar enabled*/ReadableSuppressLint("NoSettingsProvider")public static final String NAVIGATIONBAR_ENABLED "navigationbar_enabled"…

【硬件操作入门】2--GPIO与门电路、二极管三极管、LED电路与操作

【硬件操作入门】2–GPIO与门电路(二极管&三极管)、LED电路与操作 文章目录 【硬件操作入门】2--GPIO与门电路(二极管&三极管)、LED电路与操作一、GPIO与门电路1.1、GPIO的应用1.2、GPIO引脚操作1.2.1 设置引脚为GPIO功能…

【计算机组成原理】3.2.4 双端口RAM和多模块存储器

3.2.4 双端口RAM和多模块存储器 本视频涉及两种内存优化技术,分别是“双端口RAM”和“多模块存储器”。其中,“双端口RAM”已从408大纲删除,但由于部分自命题院校依然会考这个概念,视频中仍然保留了这部分内容。 408考生简要了解…

Flutter Riverpod状态管理之AutoDisposeNotifierProvider

Flutter Riverpod状态管理之AutoDisposeNotifierProvider Flutter的Riverpod状态管理,目前来看是官方出的最好用的状态管理库了,今天我们主要看AutoDisposeNotifierProvider的使用,AutoDisposeNotifierProvider具有如下的优势: 1…

day39(8/29)——harbor私有仓库管理

一、harbor私有仓库管理 是python的包管理工具,和yum对redhat的关系是一样的 yum -y install epel-release yum -y install python2-pip pip install --upgrade pip pip list pip 8x pip install --upgrade pip pip install --upgrade pip20.3 -i https://mirror…

RFID光触发标签在文件柜管理中的创新应用

在当今信息化时代,文件管理对于企业和机构的重要性不言而喻。传统的文件柜管理方式存在诸多问题,如查找文件困难、管理效率低下、安全性难以保障等。而 RFID 光触发标签技术的出现,为文件柜管理带来了全新的解决方案。 一、传统文件柜管理的…

高效学习的方式

一、如何确定一个知识点是否值得投入学习? 1、目标对齐:考虑这个知识点是否与你的个人目标、职业发展或兴趣爱好相符。 2、需求分析:分析当前市场或学术界对这个知识点的需求,是否具有普遍性和紧迫性。 3、资源可用性&#xff…

Spring扩展点系列-@PostConstruct

简介 spring的Bean在创建的时候会进行初始化,而初始化过程会解析出PostConstruct注解的方法,并反射调用该方法。 PostConstruct 的使用和特点 只有一个非静态方法能使用此注解;被注解的方法不得有任何参数;被注解的方法返回值必…

行为型设计模式-中介者(mediator)模式-python实现

设计模式汇总:查看 通俗示例 想象一下你正在参与一个团队项目,团队成员包括设计师、前端开发者、后端开发者、测试工程师等。每个团队成员都需要与其他成员沟通协作,比如设计师完成设计后需要通知前端开发者开始开发,前端开发者完…

实际开发中git在IDEA中的使用

相信搜索这个的同学代码都已经拉取到本地了,并且已经在idea中打开了。 1.一般我们从远程colone下来的代码默认是在主分支下的,也就是说我们从远程的主分支拉取的代码并且在本地创建了一个主分支。 2.一般主分支是不允许修改的,所以我们可以基…

Logistic分类算法原理及Python实践

一、Logistic分类算法原理 Logistic分类算法,也称为逻辑回归(Logistic Regression),是机器学习中的一种经典分类算法,主要用于解决二分类问题。其原理基于线性回归和逻辑函数(Sigmoid函数)的组…

SpringBoot2:配置绑定与自动配置功能源码解读

一、配置绑定 1、作用说明 我们在开发springboot项目时,会有个配置文件,application.properties文件。 我们知道,像什么访问端口、上传功能的相关配置,都会在这里进行配置。 而这些,都是springboot自带的或者第三方j…

Linux | 匿名管道和命名管道:进程间通信数据流的桥梁

目录 1、进程间通信目的 2、管道——匿名管道和命名管道 匿名管道 匿名管道的示例代码:将数据写入管道、子进程从管道读取数据并将其输出到bash中 父子进程通过匿名管道建立通信 重点:管道的五个特点 命名管道(也称为FIFO)…

每日一题,零基础入门FPGA——工程师在线精讲,直播预告

题目传送门:F学社 zzfpga.com/StudentPlatform/Sheet/QuestionBankhttp://zzfpga.com/StudentPlatform/Sheet/QuestionBank 【第Ⅰ期题目 * 5】 请使用D触发器和必要的逻辑门实现此同步时序电路,用Verilog语言描述。 【第Ⅰ期题目 * 4】 请设计一个0…

观测云核心技术揭秘:基于时间的半结构化数据模型

前言 众所周知,真正意义上的统一监控观测平台本质上是一个超大的数据湖,其存储了大量的来自监控指标,各种各样的日志,各种各样的链路追踪以及包括用户访问行为等海量的可观测性数据。 这些海量数据有什么特点呢? 首先…

【网络安全】逻辑漏洞:绕过应用程序重要功能

未经许可,不得转载。 文章目录 正文漏洞影响正文 目标:xxx.com 一个流行的汽车平台,允许用户为经销商留下评论。该平台有一个功能,用户可以点赞评论,并且它限制每个用户对每个评论只能点赞一次。 然而,我找到了绕过的方法(并不是并发)。 在点击“点赞”按钮时拦截请…