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

MySQL 架构、存储引擎、库表操作一站式掌握

⭐️所属专栏:MySQL

目录

      • 什么是数据库?
      • 认识MySQL
      • MySQL架构
      • SQL分类
      • 存储引擎
      • 核心考点补充(期末考试必记)
    • 库操作
      • 数据库的创建
      • 字符集与校验规则
      • 三、数据库的修改
      • 数据库的删除
      • 数据库的备份与恢复
      • 查看数据库连接情况
    • 表操作
      • 表的创建
      • 表结构的查看
      • 表的修改
      • 表的删除

什么是数据库?

文件也可以存储数据,为什么还要有数据库?

  • 虽然一般的文件也提供了数据存储的功能,但是没有提供非常好的数据管理能力(在用户角度)。

文件保存数据有以下几个缺点:

  1. 安全性问题;
  2. 不利于数据查询和管理;
  3. 不利于存储海量数据;
  4. 文件在程序中控制不方便;

数据库的存储介质有磁盘内存,它能更高效的管理数据。

  • 数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据(在磁盘上存储的一套数据库方案)。

  • 数据库本质:对数据内容存储的一套解决方案,根据字段或要求,得到想要的结果。

  • 建立数据库,本质就是在Linux下建立一个目录。

  • 在数据库内建表,本质就是在Linux下创建对应的文件。

  • 数据库本质也是文件,只不过这些文件不由我们直接操作,而是由数据库服务帮我们操作。


认识MySQL

MySQL 是一种开源的关系型数据库管理系统,数据以表(Table) 的形式存储,表由 行(记录) 和 列(字段) 组成,通过主键、外键建立表间关联(如一对一、一对多关系),保证数据的一致性和完整性。

  • mysql 是数据库服务的客户端;
  • mysqld 是数据库服务的服务器端。

MySQL本质是一种基于C(mysql)S(mysqld)模式的网络服务。

登录MySQL:

  • 初始基本都是免密码登录,后面必须设置密码;
  • 输入密码时不会回显。



MySQL架构

SQL分类

  • DDL(data definition language):数据定义语言,用来维护存储数据的结构。createdropalter等;
  • DML(data manipulation language):数据操作语言,用来对数据进行操作。
    insertdeleteupdate等;DML中又单独分了一个DQL,数据查询语言,例如select
  • DCL(Data Control Language):数据控制语言,主要负责权限管理和事务。
    grantrevokecommit等。

存储引擎

  • 数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法,就是存储引擎。
  • MySQL的核心就是插件式存储引擎,支持多种存储引擎

InnoDB vs MyISAM 核心对比:

对比维度InnoDBMyISAM
事务支持支持 ACID 事务、事务回滚 / 提交不支持事务
锁机制行级锁(粒度细,高并发友好)(注:查询时也会加意向锁)表级锁(粒度粗,写操作阻塞全表)
外键约束支持外键不支持外键
崩溃恢复支持崩溃恢复(redo/undo 日志)不支持,崩溃后易数据损坏
索引类型聚簇索引(主键索引存储数据,二级索引指向主键)非聚簇索引(索引和数据分开存储)
全文索引5.6 版本后支持原生支持全文索引
存储结构数据 + 索引存储在.ibd 文件数据 (.MYD)、索引 (.MYI)、表结构 (.frm) 分开
计数效率count(*)需全表扫描(无专门计数存储)count(*)极快(单独存储表行数)
适用场景高并发、需事务 / 外键(如电商订单、金融系统)读多写少、无需事务(如日志、报表查询)
数据安全高(事务 + 崩溃恢复)低(无事务,崩溃易丢数据)

核心考点补充(期末考试必记)


库操作

数据库的创建

CREATEDATABASE[IFNOTEXISTS]库名[CHARACTERSET字符集][COLLATE校验规则];
  • IF NOT EXISTS:避免库已存在时报错;

  • CHARACTER SET:指定字符集(如utf8支持中文);

  • COLLATE:指定字符集的校验规则(如utf8_general_ci不区分大小写)。

  • 简单创建:create database db1;(默认字符集utf8、校验规则utf8_general_ci);

  • 指定字符集:create database db2 charset=utf8;

  • 指定字符集+校验规则:create database db3 charset=utf8 collate utf8_general_ci;

字符集与校验规则

  • 查看系统默认字符集/校验规则:

    showvariableslike'character_set_database';showvariableslike'collation_database';
  • 查看数据库支持的字符集/校验规则:

    showcharset;showcollation;
  • 例如utf8_general_ci(不区分大小写):创建库时指定该规则,后续表中字符串比较会忽略大小写。

三、数据库的修改

ALTERDATABASE库名[CHARACTERSET新字符集][COLLATE新校验规则];
  • 仅支持修改字符集和校验规则。
alterdatabasemytestcharset=gbk;-- 将mytest的字符集改为gbk

数据库的删除

DROPDATABASE[IFEXISTS]库名;
  • 说明:删除后库文件及内部表会被级联删除,需谨慎操作。

数据库的备份与恢复

  • 语法:
    mysqldump -P端口 -u用户 -p密码-B库名>备份文件路径;
  • 案例:
    mysqldump-P3306-uroot-p123456-Bmytest>D:/mytest.sql;
  • 扩展:
    • 备份单表:mysqldump -u root -p 库名 表名 > 路径;
    • 备份多库:mysqldump -u root -p -B 库1 库2 > 路径;
source 备份文件路径;-- 如:source D:/mytest.sql;
  • 注意:若备份时未加-B,需先创建空库,切换到该库后再执行source

查看数据库连接情况

  • 语法:
    showprocesslist;
  • 作用:查看当前连接MySQL的用户、状态,可用于排查异常连接/入侵。

表操作

表的创建

CREATETABLE表名(列名1数据类型,列名2数据类型[COMMENT'注释'])[characterset字符集][collate校验规则][engine存储引擎];
  • 字符集/校验规则默认继承数据库的配置;
  • COMMENT可给列加说明。
createtableusers(idint,namevarchar(20)comment'用户名',passwordchar(32)comment'密码是32位的md5值',birthdaydatecomment'生日')charactersetutf8engineMYISAM;

表结构的查看

  • 语法:desc 表名;
  • 示例:desc users;(展示列名、类型、是否允许空等信息)

表的修改

支持对列、表名的修改,常用操作:

  1. 新增列
    altertableusersaddassetsvarchar(100);-- 新增assets列
  2. 修改列类型/长度
    altertableusersmodifynamevarchar(60);-- 将name长度改为60
  3. 删除列
    altertableusersdroppassword;-- 删除password列(数据会被删除)
  4. 修改表名
    altertableusersrenametoemployee;-- 表名改为employee
  5. 修改列名
    altertableemployee change name xingmingvarchar(60);-- name改为xingming(需指定类型)

表的删除

  • 语法:DROP TABLE [IF EXISTS] 表名;
  • 示例:drop table t1;
  • 说明:删除表会同时删除表结构、数据和索引,需谨慎操作。

本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

http://www.cnnetsun.cn/news/1870986.html

相关文章:

  • 别再凭感觉估算!用ADS的EBOND库精确仿真Bonding线寄生电感(附完整参数设置指南)
  • 你的网卡支持PTP吗?手把手教你用ethtool和Wireshark诊断Linux硬件时间戳与同步精度
  • Linux上免费运行Photoshop CC的终极解决方案:3个简单步骤实现专业图像编辑
  • 终极Cursor Pro破解指南:三步免费解锁AI编程无限体验
  • Moonlight安卓端阿西西修改版:15个实用功能完整指南,打造极致游戏串流体验
  • 【OpenClaw】通过 Nanobot 源码学习架构---()总体频
  • 如何用Fay AI Agent框架构建智能数字人助手的完整指南
  • 哥本哈士奇(aspnetx)唤
  • 终极飞书文档批量导出工具:25分钟完成700+文档迁移的完整指南
  • Qwerty Learner终极指南:如何用打字练习提升英语肌肉记忆与编程技能
  • BiliTools哔哩哔哩工具箱:2026年跨平台B站视频下载终极指南
  • 如何快速实现GitHub界面全面中文化:终极汉化插件使用指南
  • 【AIAgent迁移学习权威白皮书】:基于17个真实产线案例的策略分级矩阵(含LLM→Agent微调阈值表)
  • 2026届最火的十大降AI率方案推荐榜单
  • 信捷PLC驱动的七轴伺服插补联动设备——XD5-48T6-E的配方喷涂机程序及中文注释详解,具...
  • PyBroker量化交易框架终极指南:从零构建机器学习交易策略
  • 【化工】基于端点模型预测控制器(MPC)控制青霉素和CHO细胞生产多变量,目标是通过优化饲料来减少变异性附matlab代码
  • Guohua Diffusion从安装到出图:完整部署流程,体验纯正国风水墨绘画生成
  • 科研降本增效:Pixel Epic智识终端替代传统研报外包的实证分析
  • 【EB tresos 与 Mcal】深入解析S32K14x芯片的DIO模块配置
  • 如何在浏览器中畅玩经典游戏:EmulatorJS终极指南 [特殊字符]
  • Optimizing Clock Tree Synthesis: From Library Path Delays to Pin-Level Latencies
  • Volatility插件开发指南:如何为Windows内存取证定制专属工具
  • Diffusion-based Trajectory Planning for Robust Long-horizon Robot Manipulation
  • Qlib量化回测实战:从安装到策略优化的完整指南
  • Redis 删除缓存失败怎么办?重试、死信、补偿的工程化方案
  • 写给传统 IT 部门:AI Agent Harness Engineering 转型指南
  • C语言逆向学习基础课 第 11 课:宏定义与位运算陷阱详解
  • Nginx-UI 终极安装指南:快速解决端口配置与访问失败的完整方案
  • Python实战:利用cdsapi高效批量下载ERA5日尺度气象数据