数据库基础
什么是数据库?
数据库本质上也是一个文件,它是按照特定结构组织在一起的数据的集合!是存储数据、管理数据、组织数据的一套解决方案!
可是存储数据用文件就够了,为什么还要弄个数据库?
主要是因为,如果采用文件来存储数据的话,对于文件的维护需要我们程序员自己来进行,比如当我们想要在文件中查早一个数据时,我们得自己手动编写一个查找逻辑,查找完毕过后,我们还需要自己手动完成文件的关闭工作,我们程序员的维护成不就比较高;而使用数据库来进行维护的话,我们只需要告诉数据库服务端我们需要那些数据或者需要存储那些数据,数据库服务端在接收到我们的请求过后会按照自己维护的数据库结构来给予我们对应响应,对于数据库文件的维护不在需要我们程序员手动维护,这所有的维护工作都由数据库服务端完成,我们只需要等待数据库服务端给予我们响应即可!
主流数据库
- QL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
- Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
- MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电
商,SNS,论坛。对简单的SQL处理效果好。- PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研
究使用,可以免费使用,修改和分发。- SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库
中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的
低,在嵌入式设备中,可能只需要几百K的内存就够了。- H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
数据库基本使用
连接数据库服务端:
mysql -h ip -P port -u root -p
-h:表示你要连接的数据库服务端部署的服务器的IP地址,如果不带-h:默认数据库服务端部署在本主机上ip地址为本主机回环地址;
-P:数据库服务端的绑定在那个端口上,如果不带-P默认数据库服务绑定3306的端口;
-u:表示以什么身份进行登录mysql客户端,一般用root
-p:表示本次登录需要输入密码;
服务器、数据库、表的关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库!
- 为保存应用中实体数据,一般会在数据库中创建多个表,以保存程序中的实体数据!
- 数据库服务器、数据库、表的关系如下:
数据逻辑存储
数据库的逻辑存储结构可以看作是由一张张表组成的。每张表代表特定类型的护具,包含多个字段来存储不同属性的信息。每一行则代表一个具体的数据记录,我们项数据库插入数据,逻辑上可以认为是向一张表中插入一行数据!
当然这是逻辑结构,底层的物理结构可能与我们的逻辑结构千差万别,但是我们只要知道在逻辑上插入数据是向一个表中插入一行数据即可!
这就好比,一个堆的逻辑结构是一个二叉树,但是实际上底层的数据结构确实一个数组,这就是逻辑结构与物理结构的差异!
MySQL结构
MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、
Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性.
MySQL服务端主要分为四部分
第一部分:主要负责客户端连接的管理和权限认证工作;
第二部分:堆客户端发送过来的SQL语句进行语法分析,词义分析,优化SQL语句;
第三部分:真正办事的部分,具体实现数据的存储、查找、删除工作;
第四部分:将上层数据写入磁盘或者从磁盘读取上来交给用户;(这是OS的文件系统);
总而言之:MySQL服务端就相当于一个在OS的文件系统之上的一个存储解决方案;OS的文件系统只是配合着上层进行写磁盘和读磁盘的工作!
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;
存储引擎对比

相关文章:
数据库基础
什么是数据库? 数据库本质上也是一个文件,它是按照特定结构组织在一起的数据的集合!是存储数据、管理数据、组织数据的一套解决方案! 可是存储数据用文件就够了,为什么还要弄个数据库? 主要是因为ÿ…...
【RocketMQ】安装
文章目录 下载RocketMQ配置环境变量 下载RocketMQ 下载RocketMQ安装包 下载DashBoard 这里版本推荐选择4.9.x,因为比较稳定。 下载完毕之后,将安装包拖入到Linux环境。 之后使用unzip命令解压缩RocketMQ的安装包。 unzip ./rocketmq-all-4.9.2-bin-rel…...
二十二、策略模式
目录 1、项目需求2、传统方案解决鸭子问题的分析和代码实现3、传统方式实现存在的问题分析和解决方案4、策略模式基本介绍5、使用策略模式解决鸭子问题6、策略模式的注意事项和细节7、策略模式的使用场景 以具体项目来演示为什么需要策略模式,策略模式的优点&#x…...
[K8s]问题描述:k8s拉起来的容器少了cuda的so文件
问题解决:需要设置Runtimes:nvidia的同时设置Default Runtimenvidia...
Postman如何做接口测试:什么?postman 还可以做压力测试?
我们都知道, postman 是一款很好用的接口测试工具。不过 postman 还可以做简单的压力测试,而且步骤只需要 2 步。 首先,打开 postman, 编写接口的请求参数。 然后,点击右下方的 runner 运行器,把需要测试的接口拖动到…...
MySQL 自增 ID 默认从 1 开始,如何设置自增 ID 从 0 开始
MySQL 是一种关系型数据库,它是世界上最流行的关系型数据库之一。在 MySQL 中,自增是一种非常有用的功能,它可以自动给主键赋值,并保证每个主键是唯一的。然而,许多人不知道的是,MySQL 默认情况下从 1 开始…...
WebRTC音视频通话-实现iOS端调用ossrs视频通话服务
WebRTC音视频通话-实现iOS端调用ossrs视频通话服务 之前搭建ossrs服务,可以查看:https://blog.csdn.net/gloryFlow/article/details/132257196 这里iOS端使用GoogleWebRTC联调ossrs实现视频通话功能。 一、iOS端调用ossrs视频通话效果图 iOS端端效果图…...
uniapp的UI框架组件库——uView
在写uniapp项目时候,官方所推荐的样式库并不能满足日常的需求,也不可能自己去写相应的样式,费时又费力,所以我们一般会去使用第三方的组件库UI,就像vue里我们所熟悉的elementUI组件库一样的道理,在uniapp中…...
由于找不到msvcp140.dll无法继续执行代码是什么原因
使用计算机过程中,有时会遇到一些错误提示,其中之一就是关于msvcp140.dll文件丢失或损坏的错误。msvcp140.dll是Windows系统中非常重要的文件,是Microsoft Visual C Redistributable中动态链接库的文件,如果缺失或损坏,…...
kafka生产者幂等与事务
目录 前言: 幂等 事务 总结: 参考资料 前言: Kafka 消息交付可靠性保障以及精确处理一次语义的实现。 所谓的消息交付可靠性保障,是指 Kafka 对 Producer 和 Consumer 要处理的消息提供什么样的承诺。常见的承诺有以下三…...
Docker容器:docker基础概述、安装、网络及资源控制
文章目录 一.docker容器概述1.什么是容器2. docker与虚拟机的区别2.1 docker虚拟化产品有哪些及其对比2.2 Docker与虚拟机的区别 3.Docker容器的使用场景4.Docker容器的优点5.Docker 的底层运行原理6.namespace的六项隔离7.Docker核心概念 二.Docker安装 及管理1.安装 Docker1.…...
实验篇——亚细胞定位
实验篇——亚细胞定位 文章目录 前言一、亚细胞定位的在线网站1. UniProt2. WoLFPSORT3. BUSCA4. TargetP-2.0 二、代码实现1. 基于UniProt(不会)2. 基于WoLFPSORT后续(已完善,有关代码放置于[python爬虫学习(一&#…...
【日常积累】HTTP和HTTPS的区别
背景 在运维面试中,经常会遇到面试官提问http和https的区别,今天咱们先来简单了解一下。 超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果…...
Qt creator之对齐参考线——新增可视化缩进功能
Qt creator随着官方越来越重视,更新频率也在不断加快,今天无意中发现qt creator新版有了对齐参考线,也称可视化缩进Visualize Indent,默认为启用状态。 下图为旧版Qt Creator显示设置栏: 下图为新版本Qt Creator显示设…...
Go语言之依赖管理
go module go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。 GO111MODULE 要启用go module支持首先要设置环境变量GO111MODULE 通过它可以开启或关闭模块支持,它有三个可选…...
【定时任务处理中的分页问题】
最近要做一个定时任务处理的需求,在分页处理上。发现了大家容易遇到的一些"坑",特此分析记录一下。 场景 现在想象一下这个场景,你有一个定时处理任务,需要查询数据库任务表中的所有待处理任务,然后进行处理…...
Vue3 Vuex状态管理多组件传递数据简单应用
去官网学习→安装 | Vuex cd 项目 安装 Vuex: npm install --save vuex 或着 创建项目时勾选Vuex vue create vue-demo ? Please pick a preset: Manually select features ? Check the features needed for your project: (Press <space> to se…...
Beats:安装及配置 Metricbeat (一)- 8.x
在我之前的文章: Beats:Beats 入门教程 (一)Beats:Beats 入门教程 (二) 我详细描述了如何在 Elastic Stack 7.x 安装及配置 Beats。在那里的安装,它通常不带有安全及 Elasticsearc…...
openCV使用c#操作摄像头
效果如下: 1.创建一个winform的窗体项目(框架.NET Framework 4.7.2) 2.Nuget引入opencv的c#程序包(版本最好和我一致) 3.后台代码 using System; using System.Collections.Generic; using System.ComponentModel;…...
Centos 防火墙命令
查看防火墙状态 systemctl status firewalld.service 或者 firewall-cmd --state 开启防火墙 单次开启防火墙 systemctl start firewalld.service 开机自启动防火墙 systemctl enable firewalld.service 重启防火墙 systemctl restart firewalld.service 防火墙设置开…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...




