【MySQL篇】数据库基础

news/2025/2/24 20:07:00

目录

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_logfile0ib_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;

 

 


http://www.niftyadmin.cn/n/5864774.html

相关文章

Office和WPS中使用deepseek,解决出错问题,生成速度极快,一站式AI处理文档

让office集成deepseek,支持office和WPS办公软件,无需本地部署一站式使用! WPS中集成deepseek,一站式搞定AI排版、润色和翻译! 但是由于deepseek官方的某些原因导致无法正常使用,会出现不回答或者是回答报…

HOW - 服务接口超时时间和建议策略

目录 1. 常见超时时间设置2. 影响超时时间的因素3. 建议避免长任务超时:异步任务轮询1. 为什么要用异步任务 轮询?2. 实现方案后台示例:Node.js Redis Queue 实现前端示例:React Axios 轮询示例 3. 其他优化方案WebSocket 实时…

什么是完全前向保密(PFS)?

在当今数字化时代,信息安全至关重要。而密码学中的完全前向保密(Perfect Forward Secrecy,简称PFS)技术,已经成为保障信息安全的关键一环。如果没有完全前向保密,一旦长期密钥被泄露,攻击者就可…

C++ 编程语言简介

C 是一种通用编程语言,它是作为 C 语言的增强而开发的,以包含面向对象的范例。它是一种命令式和编译语言。 C 是一种高级的通用编程语言,专为系统和应用程序编程而设计。它由贝尔实验室的 Bjarne Stroustrup 于 1983 年开发,作为…

去中心化 AI:赋权还是混乱?

DeepSeek 如何在 AI 去中心化方面迈出了巨大的一步,以及为什么这比你想象的更重要 Nadia Piet AIxDESIGN & Archival Images of AI / Better Images of AI / AI Am Over It / CC-BY 4.0 2025 年 1 月 27 日星期一,DeepSeek —— 一家几乎凭空冒出来…

LeetCode 热题 100 206. 反转链表

LeetCode 热题 100 | 206. 反转链表 大家好,今天我们来解决一道经典的算法题——反转链表。这道题在 LeetCode 上被标记为简单难度,要求我们将一个单链表反转,并返回反转后的链表。下面我将详细讲解解题思路,并附上 Python 代码实…

递归调用讲解

打卡28天 一般基数较小时才用递归,若基数较大则用递归会使得内存压力过大,所以能不用递归就不用递归。 package com.sun.method;public class Demo06 {public static void main(String[] args) {System.out.println(f(5));}//5!5*4*3*2*1public static …

Linux中的查看命令

路径分为相对路径(行相对当前工作目录开始的路径)和绝对路径(不管是)#:命令提示符,从这个位置可以开始输入命令,另一个提示符为$,如果是root,则提示为#;如果是…