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

数据库基础

什么是数据库?

数据库本质上也是一个文件,它是按照特定结构组织在一起的数据的集合!是存储数据、管理数据、组织数据的一套解决方案!
可是存储数据用文件就够了,为什么还要弄个数据库?
主要是因为,如果采用文件来存储数据的话,对于文件的维护需要我们程序员自己来进行,比如当我们想要在文件中查早一个数据时,我们得自己手动编写一个查找逻辑,查找完毕过后,我们还需要自己手动完成文件的关闭工作,我们程序员的维护成不就比较高;而使用数据库来进行维护的话,我们只需要告诉数据库服务端我们需要那些数据或者需要存储那些数据,数据库服务端在接收到我们的请求过后会按照自己维护的数据库结构来给予我们对应响应,对于数据库文件的维护不在需要我们程序员手动维护,这所有的维护工作都由数据库服务端完成,我们只需要等待数据库服务端给予我们响应即可!

主流数据库

  1. QL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  2. Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  3. MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电
    商,SNS,论坛。对简单的SQL处理效果好。
  4. PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研
    究使用,可以免费使用,修改和分发。
  5. SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库
    中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的
    低,在嵌入式设备中,可能只需要几百K的内存就够了。
  6. H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

数据库基本使用

连接数据库服务端:
mysql -h ip -P port -u root -p
-h:表示你要连接的数据库服务端部署的服务器的IP地址,如果不带-h:默认数据库服务端部署在本主机上ip地址为本主机回环地址;
-P:数据库服务端的绑定在那个端口上,如果不带-P默认数据库服务绑定3306的端口;
-u:表示以什么身份进行登录mysql客户端,一般用root
-p:表示本次登录需要输入密码;

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

  1. 所谓安装数据库服务器,只是在机器上安装了一个数据管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库!
  2. 为保存应用中实体数据,一般会在数据库中创建多个表,以保存程序中的实体数据!
  3. 数据库服务器、数据库、表的关系如下:
    在这里插入图片描述

数据逻辑存储

数据库的逻辑存储结构可以看作是由一张张表组成的。每张表代表特定类型的护具,包含多个字段来存储不同属性的信息。每一行则代表一个具体的数据记录,我们项数据库插入数据,逻辑上可以认为是向一张表中插入一行数据!
当然这是逻辑结构,底层的物理结构可能与我们的逻辑结构千差万别,但是我们只要知道在逻辑上插入数据是向一个表中插入一行数据即可!
这就好比,一个堆的逻辑结构是一个二叉树,但是实际上底层的数据结构确实一个数组,这就是逻辑结构与物理结构的差异!
在这里插入图片描述

MySQL结构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、
Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性.
在这里插入图片描述
MySQL服务端主要分为四部分
第一部分:主要负责客户端连接的管理和权限认证工作;
第二部分:堆客户端发送过来的SQL语句进行语法分析,词义分析,优化SQL语句;
第三部分:真正办事的部分,具体实现数据的存储、查找、删除工作;
第四部分:将上层数据写入磁盘或者从磁盘读取上来交给用户;(这是OS的文件系统);
总而言之:MySQL服务端就相当于一个在OS的文件系统之上的一个存储解决方案;OS的文件系统只是配合着上层进行写磁盘和读磁盘的工作!

SQL分类

  1. DDL【data definition language】 数据定义语言,用来维护存储数据的结构
    代表指令: create, drop, alter
  2. DML【data manipulation language】 数据操纵语言,用来对数据进行操作
    代表指令: insert,delete,update
    DML中又单独分了一个DQL,数据查询语言,代表指令: select
  3. DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
    代表指令: grant,revoke,commit

存储引擎

存储引擎位于MySQL架构的第三部分,负责数据的具体存储和管理方案;
不同的存储引擎有着自己独特的数据结构来对数据进行管理和存储,这样我们可以根据实际的应用环境来选择合适的存储引擎来进行数据的管理和存储!
MySQL的核心就是插件式存储引擎,支持多种存储引擎;

查看存储引擎

show engines;
在这里插入图片描述

存储引擎对比

在这里插入图片描述

相关文章:

数据库基础

什么是数据库? 数据库本质上也是一个文件,它是按照特定结构组织在一起的数据的集合!是存储数据、管理数据、组织数据的一套解决方案! 可是存储数据用文件就够了,为什么还要弄个数据库? 主要是因为&#xff…...

【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中动态链接库的文件,如果缺失或损坏&#xff0c…...

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&#xff1a; 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

在我之前的文章&#xff1a; Beats&#xff1a;Beats 入门教程 &#xff08;一&#xff09;Beats&#xff1a;Beats 入门教程 &#xff08;二&#xff09; 我详细描述了如何在 Elastic Stack 7.x 安装及配置 Beats。在那里的安装&#xff0c;它通常不带有安全及 Elasticsearc…...

openCV使用c#操作摄像头

效果如下&#xff1a; 1.创建一个winform的窗体项目&#xff08;框架.NET Framework 4.7.2&#xff09; 2.Nuget引入opencv的c#程序包&#xff08;版本最好和我一致&#xff09; 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 防火墙设置开…...

3步解锁Windows 11 LTSC应用商店:企业版系统的应用生态解决方案

3步解锁Windows 11 LTSC应用商店&#xff1a;企业版系统的应用生态解决方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 在企业环境中部署的Window…...

别再混淆了!一文搞懂目标检测中的AP、mAP和mAP@0.5:0.95区别

目标检测评估指标全解析&#xff1a;从AP到mAP0.5:0.95的实战指南 在计算机视觉领域&#xff0c;目标检测模型的性能评估一直是研究者关注的焦点。面对AP、mAP、mAP0.5:0.95等专业术语&#xff0c;不少开发者容易混淆它们的计算方式和适用场景。本文将深入剖析这些关键指标的技…...

核心产品强势放量,扭亏为盈的康希诺未来怎么看?

3月30日晚间&#xff0c;康希诺发布2025年年度报告。报告期内&#xff0c;公司实现营业收入10.68亿元&#xff0c;同比增长26.18%&#xff1b;实现归母净利润2787.27万元&#xff0c;成功实现扭亏为盈&#xff0c;较2024年实现重大逆转。2025年&#xff0c;康希诺凭借核心产品放…...

安卓手机秒变AI开发神器:Aid Learning零基础图形化Linux环境搭建指南

安卓手机秒变AI开发神器&#xff1a;Aid Learning零基础图形化Linux环境搭建指南 在移动互联网时代&#xff0c;开发者对便携开发环境的需求与日俱增。传统Termux虽然功能强大&#xff0c;但配置复杂、缺乏图形界面&#xff0c;让许多初学者望而却步。Aid Learning的出现彻底改…...

实战向 Python 汽车推荐系统 Django框架 可视化 协同过滤算法 数据分析 大数据 机器学习(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

AI模型版本控制:Git for ML最佳实践

当软件测试遇上AI模型迭代对于软件测试从业者而言&#xff0c;版本控制是保障软件质量、实现可追溯性的基石。然而&#xff0c;当测试对象从传统的功能模块转变为动态演进的AI模型时&#xff0c;版本管理的复杂性陡然增加。一个推荐模型本周表现优异&#xff0c;下周却因数据漂…...

通过 Langchain 框架实现 ChatGPT 的使用

一. 简介Langchain 框架&#xff1a;LangChain 是一个开源框架&#xff0c;是一个让大语言模型&#xff08;如ChatGPT&#xff09;能连接外部工具、记忆对话、执行复杂任务的“智能助手”开发框架&#xff0c;解决了LLM应用开发中的各种工程化问题。# LangChain 的核心定位&…...

Guardrails未来版本路线图:10大新功能全面展望与AI安全演进

Guardrails未来版本路线图&#xff1a;10大新功能全面展望与AI安全演进 【免费下载链接】guardrails Adding guardrails to large language models. 项目地址: https://gitcode.com/gh_mirrors/gu/guardrails 在大型语言模型&#xff08;LLM&#xff09;应用日益普及的今…...

NiceGUI实战:打造动态路由导航栏的3个关键技巧

1. 为什么需要动态路由导航栏&#xff1f; 如果你用过NiceGUI开发Web应用&#xff0c;肯定遇到过这样的尴尬&#xff1a;想做个导航菜单&#xff0c;却发现官方压根没提供现成组件。这就像装修房子时发现建材市场不卖门把手——虽然不影响主体结构&#xff0c;但用起来总感觉少…...

【实战】从理论到代码:用Python实现相位一致性特征提取

1. 相位一致性特征提取的核心原理 相位一致性&#xff08;Phase Congruency&#xff09;是计算机视觉领域一种强大的特征提取方法&#xff0c;它从根本上改变了传统边缘检测的思路。我第一次接触这个概念是在处理一组光照条件差异很大的工业检测图像时&#xff0c;当时用Sobel和…...