【MySQL篇】数据库基础
目录
1,什么是数据库?
2,主流数据库
3,MySQL介绍
1,MySQL架构
2,SQL分类
3,MySQL存储引擎
1,什么是数据库?
数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库。它是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库管理系统(DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。 常见的数据库管理系统有MySQL、SQL Server、Oracle等。
存储数据用文件就可以了,为什么还要弄个数据库?
一般的文件确实提供了数据的存储功能,但是没有提供非常好的数据管理能力。站在我们程序员的角度,如果需要对文件内容进行修改,查找以及新增等操作,我们需要使用编程语言编写程序来实现对文件的操作。而如果文件内容太大,就不方便操作。
而数据库就可以很好解决这个问题,只需给出字段或者要求,数据库会给出想要的结果。
文件保存数据有以下缺点:
- 文件的安全性问题。
- 文件不利用数据查询和管理。
- 文件不利于存储海量数据。
- 文件在程序中操作不方便。
2,主流数据库
1,MySQL:开源,最受欢迎的数据库,并发性好,适合web应用和中小型程序,不适合做复杂的业务。
2,Oracle:商业数据库,适合大型项目,复杂的业务逻辑。
3,SQL Server:微软的产品,商业数据库,深度集成Windows生态,支持BI和大数据分析。
4,SQLite:嵌入式轻量级数据库,适合移动端和小型应用(如 Android、iOS)。
5,PostgreSQL:开源,支持 JSON、GIS、全文搜索等扩展,功能最丰富的关系型数据库。
6,H2:是一个用java开发的嵌入式数据库。
3,MySQL介绍
1,MySQL架构
MySQL是一个可移植的数据库,几乎能在当前所有操作系统上运行,如Unix/Linux、Windows、Mac 和 Solaris。 各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
架构图:
MySQL的架构大致可以分为以下几层:
1,连接层(Client Connectors):负责客户端与mysql服务器的通信。支持各种主流的编程技术:如Java、C、Python、.NET等,通过各自的API技术与MySQL建立连接。
2,服务层(Server Layer):这是MySQL的核心部分。主要包含以下内容:
(1)连接池(Connection Pool):负责存储和管理客户端与数据库的连接,一个线程负责管理一个连接。
(2)SQL接口:用于接受客户端发送的各种SQL命令,并返回用户需要查询的结果,如DML、DDL、存储过程、视图、触发器等。
(3)解析器(Parser):负责将请求的SQL解析生成一个“解析树”(AST),然后根据一些MySQL规则进一步检查解析树是否合法。
(4)查询优化器(Optimizer):当“解析树”通过解析器语法检查后,将交由优化器将其转化成执行计划,然后与存储引擎交互。
(5)缓存(Query Cache):缓存查询结果,如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。
3,存储引擎层(Storage Engines):负责MySQL中数据的存储与提取,与底层系统文件进行交互。MySQL存储引擎是插件式的,支持多种存储引擎。常见的存储引擎有InnoDB、MyISAM、Memory等。InnoDB是MySQL的默认存储引擎,它支持事务、行锁和外键等功能。
4,文件系统层(File System)
存储数据文件、日志文件及元数据。
表数据文件
InnoDB:
.ibd(独立表空间)或ibdata1(共享表空间)。MyISAM:
.MYD(数据文件)、.MYI(索引文件)。日志文件
Redo Log(重做日志):保证事务持久性(
ib_logfile0,ib_logfile1)。Undo Log(回滚日志):保证事务原子性(存储在
undo tablespaces)。Binlog(二进制日志):主从复制和数据恢复(
mysql-bin.000001)。配置文件:
my.cnf或my.ini。
可以总结如下图:

2,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
3,MySQL存储引擎
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。
连接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
mysql -u root -p
如果没有写-h 127.0.0.1,默认连接本地
如果没有写-P 3306 ,默认连接3306端口号
查看存储引擎:
show engines;
相关文章:
【MySQL篇】数据库基础
目录 1,什么是数据库? 2,主流数据库 3,MySQL介绍 1,MySQL架构 2,SQL分类 3,MySQL存储引擎 1,什么是数据库? 数据库(Database,简称DB…...
vscode java环境中文乱码的问题
先说我的结论: 由于我的系统是windows的,所以vscode使用的是默认gbk的编码进行的。 但是我的目的是全部都使用utf-8,因为我的程序始终是要去linux上去运行的,总不能在本地是好的,然后到服务器上就不行了吧,…...
基于SpringBoot+mybatisplus+vueJS的Cosplay文化展示与交流社区设计与实现
博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…...
组件传递props校验
注意:prop是只读的!不可以修改父组件的数据。 可以检验传过来的内容是否类型没问题。 App.vue <template><div><!-- <parentDemo/> --><componentA/></div></template> <script> import ComponentA …...
数据结构与算法-图论-最短路-拓展运用
选择最佳路线 分析: 这是一道图论中的最短路径问题,目标是在给定的公交网络中,找到从琪琪家附近的车站出发,到她朋友家附近车站(编号为 s )的最短时间。以下是对该问题的详细分析: 问题关键信息…...
0—QT ui界面一览
2025.2.26,感谢gpt4 1.控件盒子 1. Layouts(布局) 布局控件用于组织界面上的控件,确保它们的位置和排列方式合理。 Vertical Layout(垂直布局) :将控件按垂直方向排列。 建议:适…...
纷析云:赋能企业财务数字化转型的开源解决方案
在企业数字化转型的浪潮中,财务管理的高效与安全成为关键。纷析云凭借其开源、安全、灵活的财务软件解决方案,为企业提供了一条理想的转型路径。 一、开源的力量:自主、安全、高效 纷析云的核心优势在于其100%开源的财务软件源码。这意味着…...
P8716 [蓝桥杯 2020 省 AB2] 回文日期
1 题目说明 2 题目分析 暴力不会超时,O(n)的时间复杂度, < 1 0 8 <10^8 <108。分析见代码: #include<iostream> #include<string> using namespace std;int m[13]{0,31,28,31,30,31,30,31,31,30,31,30,31};// 判断日期…...
(十)趣学设计模式 之 外观模式!
目录 一、 啥是外观模式?二、 为什么要用外观模式?三、 外观模式的实现方式四、 外观模式的优缺点五、 外观模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…...
apache-maven-3.2.1
MAVEN_HOME D:\apache-maven-3.2.1 PATH D:\apache-maven-3.2.1\bin cmd mvn -v <localRepository>d:\localRepository</localRepository> setting.xml <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Soft…...
编程题-连接两字母单词得到的最长回文串(中等)
题目: 给你一个字符串数组 words 。words 中每个元素都是一个包含 两个 小写英文字母的单词。 请你从 words 中选择一些元素并按 任意顺序 连接它们,并得到一个 尽可能长的回文串 。每个元素 至多 只能使用一次。 请你返回你能得到的最长回文串的 长度…...
react 新手入门指南,常用命令
React 是一个用于构建用户界面的 JavaScript 库,它通过组件化的方式构建应用程序的 UI,适用于构建单页应用(SPA)。以下是一个详细的 React 新手入门指南,包括常用命令和基本概念。 1. 环境准备 在开始之前,确保你已经安装了 Node.js 和 npm。可以通过以下命令检查版本:…...
论文笔记(七十二)Reward Centering(三)
Reward Centering(三) 文章概括摘要3 基于值的奖励中心化4 案例研究: 以奖励为中心的 Q-learning5 讨论、局限性与未来工作致谢 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan…...
【论文笔记-ECCV 2024】AnyControl:使用文本到图像生成的多功能控件创建您的艺术作品
AnyControl:使用文本到图像生成的多功能控件创建您的艺术作品 图1 AnyControl的多控制图像合成。该研究的模型支持多个控制信号的自由组合,并生成与每个输入对齐的和谐结果。输入到模型中的输入控制信号以组合图像显示,以实现更好的可视化。 …...
Vue3核心编译库@vuecompiler-core内容分享
vue/compiler-core 是 Vue 3 中的一个核心编译库,主要用于编译 Vue 的模板。它为 Vue 3 提供了处理模板编译的功能,包含了将模板转换为抽象语法树(AST)、生成渲染函数以及与响应式系统进行集成等功能。 vue/compiler-core 的主要…...
Redisson使用场景及原理
目录 一、前言 二、安装Redis 1、Windows安装Redis 2、启动方式 3、设置密码 三、项目集成Redission客户端 1、引入依赖 四、实用场景 1、操作缓存 2、分布式锁 3、限流 3.1 创建限流器 3.2 设置限流参数 3.3 获取令牌 3.4 带超时时间获取令牌 3.5 总结 一、…...
【二分查找 图论】P8794 [蓝桥杯 2022 国 A] 环境治理|普及
本文涉及的基础知识点 本博文代码打包下载 C二分查找 C图论 [蓝桥杯 2022 国 A] 环境治理 题目描述 LQ 国拥有 n n n 个城市,从 0 0 0 到 n − 1 n - 1 n−1 编号,这 n n n 个城市两两之间都有且仅有一条双向道路连接,这意味着任意两…...
c/c++蓝桥杯经典编程题100道(22)最短路径问题
最短路径问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 最短路径问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1:Dijkstra算法(正权图,难度★★) 解法2:Bellman-Ford算法(含负权边&a…...
25中医研究生复试面试问题汇总 中医专业知识问题很全! 中医试全流程攻略 中医考研复试调剂真题汇总
各位备考中医研究生的小伙伴们,一想到复试,是不是立刻紧张到不行,担心老师会抛出一大堆刁钻的问题?别怕!其实中医复试也是有套路可循的,只要看完这篇攻略,你就会发现复试并没有想象中那么难&…...
stm32hal库寻迹+蓝牙智能车(STM32F103C8T6)
简介: 这个小车的芯片是STM32F103C8T6,其他的芯片也可以照猫画虎,基本配置差不多,要注意的就是,管脚复用,管脚的特殊功能,(这点不用担心,hal库每个管脚的功能都会给你罗列,很方便的.)由于我做的比较简单,只是用到了几个简单外设.主要是由带霍尔编码器电机的车模,电机…...
centos22.04 dpkg -l 输出状态标识含义
dpkg -l 输出状态标识含义 dpkg -l 命令用于列出系统中已安装的软件包,每行输出的前两个字符是软件包状态的标识,不同的组合代表不同的状态,具体含义如下: 第一个字符:表示期望的状态(Desired state) u:未知(Unknown)i:安装(Install)r:移除(Remove)p:清除(Pu…...
前端TypeScript 面试题及参考答案
目录 解释 unknown 与 any 的区别,如何安全使用 unknown 类型? 如何用类型守卫处理联合类型变量的方法调用? 实现一个工具类型 Nullable ,使 T 可被赋值为 null/undefined 如何用 keyof 和 in 关键字实现枚举类型到联合类型的转换? 类型断言 as 与尖括号语法有何差异…...
基于 Vue.js 和 Element UI 实现九宫格按钮拖拽排序功能 | 详细教程与代码实现
在Vue.js项目中使用vue-element-template(基于Element UI)实现按钮的九宫格拖拽排序功能,可以通过以下步骤实现。我们将使用vuedraggable库来实现拖拽排序功能。 1. 安装依赖 首先,确保你已经安装了vuedraggable库: …...
Spring Framework测试工具MockMvc介绍
目录 一、基本概念 二、主要特点 三、使用场景 四、工作原理 五、示例代码 接口创建 测试类创建 六、注解解释 AutoConfigureMockMvc WebMvcTest 一、基本概念 MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用…...
nginx 正向代理与反向代理
1. 正向代理(Forward Proxy) 正向代理是指 代理客户端 访问目标服务器,通常用于访问受限资源或隐藏客户端 IP。 工作原理 客户端请求代理服务器(如 nginx)。代理服务器代表客户端向目标网站发起请求。目标网站返回内…...
VUE 获取视频时长,无需修改数据库,前提当前查看视频可以得到时长
第一字段处 <el-table-column label"视频时长" align"center"> <template slot-scope"scope"> <span>{{ formatDuration(scope.row.duration) }}</span> </template> </el-ta…...
使用Jenkins实现Windows服务器下C#应用程序发布
背景 在现代化的软件开发流程中,持续集成和持续部署(CI/CD)已经成为不可或缺的一部分。 Jenkins作为一款开源的自动化运维工具,能够帮助我们实现这一目标。 本文将详细介绍如何在Windows服务器下使用Jenkins来自动化发布C#应用…...
蓝桥杯练习代码
一、最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl"示例 2: 输入:strs = ["dog",&q…...
算法-二叉树篇11-左叶子之和
左叶子之和 力扣题目链接 题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 解题思路 层次遍历的时候,保留每层第一个节点并相加即可。 题解 class Solution { public:int sumOfLeftLeaves(TreeNode* root) {if(root NULL){return 0;}re…...
[java基础-JVM篇]1_JVM自动内存管理
JVM内存管理涉及但不限于类加载、对象分配、垃圾回收等,本篇主要记录运行时数据区域与对象相关内容。 内容主要来源《深入理解Java虚拟机:JVM高级特性与最佳实践》与官方文档,理解与表述错漏之处恳请各位大佬指正。 目录 运行时数据区域 栈 栈…...
