在这里插入图片描述

永远记住,你的存在是有意义的,
你很重要,
你是被爱着的,
而且你为这个世界带来了无可取代的东西。
-- 麦克西 《男孩、鼹鼠、狐狸和马》--

从零开始了解数据库开发

  • 安装MySQL
  • 什么是数据库
  • 常见主流数据库
  • 初步了解SQL语句
  • 存储引擎

安装MySQL

学习数据库开发之前首先要正确安装MySQL,可以寻找网上的教程。这里我们先讲解数据库的基础知识。
安装好之后,MySQL程序是一直在运行的。这里存在两个进程mysqld与mysql
在这里插入图片描述
那么如何使用数据库呢?我们先来了解mysql提供的选项:

  • -h:选择连接的主机地址,mysql本质是一种网络服务,mysql可以连接指定主机的数据库服务。不指定默认本机服务
  • -P:指明服务端口号,不指定使用默认配置
  • -u:使用谁的身份登录
  • -p:使用密码

mysql -h 127.0.0.1 -P 3306 -u root -p 我们输入密码就能连接到数据库:
在这里插入图片描述

什么是数据库

下面我们来了解数据库基础,首先来了解mysql与mysqld:

  1. mysql:MySQL服务的客户端
  2. mysqld:MySQL服务的服务端

两者结合在一起才是MySQL,是一种网络服务。
在这里插入图片描述
MySQL是一套给我们通过数据存取服务的网络程序,而数据库一般指在磁盘或者内存中存储的特定结构的数据。

说到存储数据为什么不直接使用文件进程存储呢,为什么还需要数据库?一般的文件确实提供了数据的储存功能,但是文件并没有提供非常好的数据内容的管理能力,并且存在安全性问题。如果想要便捷的增删查改数据内容,使用数据库是必须的。

数据库本质是对数据存储管理的一套解决方案。

我们来在linux里看一看数据库具体是什么,我们建立数据库,建立数据表来看下。我们进入MySQL,可以查看当前的数据库:

在这里插入图片描述
这些数据库是储存在哪里呢?我们去MySQL配置的储存路径查看一下

在这里插入图片描述
可以发现这些数据库就是这个目录下的蓝色目录,执行创建数据库来验证一下create database helloworld;
在这里插入图片描述
确实是出现了。所以建立数据库的本质就是创建linux下的一个目录。我们再来看一下数据表
create table student( name varchar(32), age int, gender varchar(32) );创建了数据表就建立了对应的文件
在这里插入图片描述
总结一下:

  • 建立数据库本质就是linux下的一个目录
  • 在数据库内建立表本质就是在linux下创建对应的文件
  • 这些工作都是MySQL帮助我们进行的,数据库本质也是文件,只不过不需要程序员手动进行操作,程序员只需要访问MySQL管理数据即可。
    在这里插入图片描述

常见主流数据库

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

初步了解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中最主要的就是MyISAM和InnoDB,如果遇到这两种引擎解决不好的问题,既可以不考虑使用MySQL数据库了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98224.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98224.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/98224.shtml

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

相关文章

Altium Designer(AD24)切换工作界面为浅灰色的方法

🏡《专栏目录》 目录 1,概述 2,界面介绍 1,概述 本文演示AD24软件黑色界面切换为浅灰色的方法。 2,界面介绍 第1步:点击设置小图标,然后点击View 第2步:在UI Theme,点击Current旁边的Altium Dark Gtay ,在下拉选项中选择Altium Light Gtay,然后点击OK确认 第4步…

SDRAM详细分析—07 存储器阵列寻址

大家好,这里是大话硬件 这篇文章将分析实际SDRAM内部是如何进行寻址以及内存单元分布方式。 根据前面的内容,从小容量到大容量进行迭代分析。 1. 1bit容量 这个存储单元只能存储1个bit位。假设现在需要8bit内存容量颗粒,则需要8颗这样的存储器件。 2. 4bit容量 这个存储…

【GitOps】Argo CD高级操作钩子

Argo CD高级操作钩子 文章目录Argo CD高级操作钩子资源列表一、Argo CD钩子1.1、钩子介绍1.2、构建的几个执行阶段1.3、钩子删除策略1.4、示例二、钩子演示2.1、创建GitLab公共仓库2.2、Argo CD创建Application2.3、同步(SYNC)资源列表 操作系统配置主机…

谙流 ASK 技术解析(一):秒级扩容

谙流 ASK 是谙流团队自主研发的国产新一代云原生流平台,与 Apache Kafka 100% 协议兼容,全栈自主可控,专注私有化部署与行业场景赋能。传统Kafka存储之殇IO模型缺陷每个分区对应独立文件,采用单分区异步批量顺序写机制。当多分区并…

从挑西瓜到树回归:用生活智慧理解机器学习算法

一、生活中的决策树:妈妈的挑瓜秘籍夏天的菜市场里,妈妈总能精准挑出最甜的西瓜。她的秘诀是一套简单的决策流程:先看色泽,青绿有光泽的优先;再敲一敲,声音沉闷的更可能熟;最后摸硬度&#xff0…

SpringBoot+PDF.js实现按需分片加载(包含可运行样例源码)

SpringBootPDF.js实现按需分片加载前言一、实现思路与实现效果1.1 pdf.js的分片加载的实现思路1.2 pdf分片加载的效果二、前端项目2.1 项目引入2.2 核心代码2.3 项目运行三、后端项目3.1 项目结构3.2 核心代码3.3 项目运行四、项目运行效果4.1 首次访问4.2 分片加载五、项目优化…

常见Bash脚本漏洞分析与防御

引言 在Unix/Linux系统中,Bash脚本因其简洁、高效而成为自动化任务、系统管理和快速原型开发的首选工具。然而,Bash的强大功能和其独特的语法特性,也为安全漏洞埋下了隐患。许多开发者在追求便捷性的过程中,无意间引入了命令注入、…

JAVA快速学习(二)

类与对象因为本质是写python的所以类与对象的概念就不赘述了,先看java中类与对象的创建方式public class Main {public static void main(String[] args) {Cat cat new Cat(); // Cat cat new Cat("zh",18); 这样直接不对,这样传参就需要写构造函数…

登录优化(双JWT+Redis)

流程 前端 → 后端 → 拦截器 → 限流 → AOP → Controller → 刷新 → 退出 前端登录并获取双 JWT 1、前端:用户在前端输入用户名和密码,调用 /auth/login 接口。 fetch("/auth/login", {method: "POST",headers: {"Content-Type": &quo…

【杂类】Spring 自动装配原理

这张图,​​正是理解现代 Spring Boot 自动配置的钥匙​​。它指出的 AutoConfiguration.imports 文件,是 Spring Boot 2.7 之后的新标准,比老式的 spring.factories 更简洁。咱们就从这个文件开始说。一、自动配置是啥?为啥需要它…

【CSS,DaisyUI】自定义选取内容的颜色主题

当你的网站使用了多个主题,比如 light/dark。当用户选择一段文本,常常会出现一个主题没问题,另一个主题颜色怪怪的。是因为选择区域的主题通常没有变化,导致与当前主题不配合。 下面四种方法可解决这个问题: The probl…

Linux网络接口命名详解:从eth0到ens33

在Linux系统中,网络接口的命名方式直接影响管理员对设备的理解与管理。从早期的eth0、wlan0到现代的ens33、enp0s3、eno1,Linux网络接口命名规则经历了显著的演变。一、Linux网络接口命名的历史与演变 Linux网络接口命名的历史可以分为两个主要时代&…

如何在 FastAPI 中巧妙覆盖依赖注入并拦截第三方服务调用?

url: /posts/2d992ef9e8962dc0a4a0b5348d486114/ title: 如何在 FastAPI 中巧妙覆盖依赖注入并拦截第三方服务调用? date: 2025-09-06T03:34:14+08:00 lastmod: 2025-09-06T03:34:14+08:00 author: cmdragon summary: FastAPI 的依赖注入系统允许解耦复杂依赖关系,便于代码重…

linux上nexus安装教程

下载页面 https://help.sonatype.com/en/download.html选择 Unix/Linux Arch64 一栏点击下载; 选择非root 组的用户登录linux ,此处注意必须保证linux内存大于4G,否则无法启动 解压nexus包 tar -xzvf nexus-3.83.2-01-linux-aarch_64.tar.gz进入bin目录 …

大语言模型的“思考”逻辑:从Token生成到上下文理解的内部流程

当你问“明天天气如何”时,AI在“想”什么?当你向ChatGPT或文心一言输入“明天北京天气如何”,模型秒速回复“明天北京晴转多云,气温15-25℃”——这个过程看似“思考”,实则是一套精密的“数据处理流水线”。大语言模…

Linux笔记---TCP套接字编程

1. 核心接口 1.1 监听连接&#xff1a;listen() 使 TCP 套接字进入被动监听状态&#xff0c;准备接受客户端连接&#xff08;仅服务器端使用&#xff09;。 #include <sys/socket.h>int listen(int sockfd, int backlog); 参数&#xff1a; sockfd&#xff1a;已绑定…

从零开始的python学习——文件

ʕ • ᴥ • ʔ づ♡ど &#x1f389; 欢迎点赞支持&#x1f389; 个人主页&#xff1a;励志不掉头发的内向程序员&#xff1b; 专栏主页&#xff1a;python学习专栏&#xff1b; 文章目录 前言 一、文件是什么 二、文件路径 三、文件操作 &#xff08;1&#xff09;打开文件 …

set与multset的区别;less greater 函数对象实现比较 作为排序依据

Set 和 multiset 特点 set中元素插入过程是按排序规则插入&#xff0c;所以不能指定插入位置。set不可以直接存取元素。&#xff08;不可以使用at.(pos)与[]操作符&#xff09;。multiset与set的区别&#xff1a;set支持唯一键值&#xff0c;每个元素值只能出现一次&#xff1b…

计算机视觉(八):开运算和闭运算

计算机视觉中的开运算&#xff08;Opening&#xff09;和闭运算&#xff08;Closing&#xff09;是两种非常重要的形态学&#xff08;Morphological&#xff09;图像处理操作。它们主要用于图像的去噪、分割、特征提取等任务。这两种运算都基于两种更基础的操作&#xff1a;腐蚀…

nginx常用命令(备忘)

一、引言&#xff1a;Nginx 为何成为前端开发必备工具 ** 在前端开发的广阔领域中&#xff0c;Nginx 已然成为了一个不可或缺的强大工具。它是一款轻量级的 HTTP 服务器和反向代理服务器&#xff0c;采用事件驱动的异步非阻塞处理方式框架&#xff0c;这赋予了它卓越的 I/O 性…