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

MySQL——基础知识

目录

一、为什么选择数据库而非文件存储?

二、主流数据库简介

三、MySQL安装与连接

1. 安装方式

2. 连接服务器

四、核心操作实战

1. 数据库与表管理

2. 数据逻辑存储示例

五、MySQL架构解析

六、SQL分类与存储引擎

1. SQL分类

2. 存储引擎对比

七、学习建议


一、为什么选择数据库而非文件存储?

文件存储数据存在以下问题:

  • 安全性低:文件易被误删或非法访问。

  • 管理困难:数据查询、修改效率低,难以支持复杂操作。

  • 扩展性差:无法高效处理海量数据。

  • 程序控制复杂:需自行实现数据读写逻辑。

数据库通过结构化存储、高效查询、事务支持等特性解决了上述问题,成为数据管理的核心工具。


二、主流数据库简介

数据库特点
MySQL最流行的开源数据库,并发性能好,适合电商、论坛等场景。
Oracle功能强大,适合复杂业务逻辑,但成本高。
SQL Server微软生态首选,适合中大型项目。
SQLite轻量级嵌入式数据库,资源占用极低。
PostgreSQL开源且功能丰富,支持复杂查询和自定义类型。

三、MySQL安装与连接

1. 安装方式

  • Linux(CentOS)

    # CentOS 7 安装 MariaDB(MySQL分支)
    sudo yum install mariadb-server
    sudo systemctl start mariadb

  • Windows
    下载MySQL 5.7安装包,按向导完成安装。

2. 连接服务器

mysql -h 127.0.0.1 -P 3306 -u root -p
  • -h 默认为本地(127.0.0.1),-P 默认为3306端口。


四、核心操作实战

1. 数据库与表管理

-- 创建数据库
CREATE DATABASE helloworld;
USE helloworld;

-- 创建表
CREATE TABLE student (
    id INT PRIMARY KEY,
    name VARCHAR(32) NOT NULL,
    gender VARCHAR(2)
);

-- 插入数据
INSERT INTO student (id, name, gender) VALUES
(1, '张三', '男'),
(2, '李四', '女'),
(3, '王五', '男');

-- 查询数据
SELECT * FROM student;

2. 数据逻辑存储示例

执行 SELECT * FROM student; 输出:

+----+--------+--------+
| id | name   | gender |
+----+--------+--------+
| 1  | 张三   | 男     |
| 2  | 李四   | 女     |
| 3  | 王五   | 男     |
+----+--------+--------+

五、MySQL架构解析

MySQL采用分层设计,核心组件包括:

  1. 连接池:管理客户端连接与认证。

  2. SQL接口:处理DML、DDL等操作。

  3. 解析器与优化器:解析SQL语法并优化执行计划。

  4. 存储引擎:插件式设计,支持InnoDB、MyISAM等。

  5. 文件系统:存储数据文件、日志(如Binlog、Undo Log)。


六、SQL分类与存储引擎

1. SQL分类

类型功能示例指令
DDL定义数据结构CREATEALTERDROP
DML操作数据INSERTUPDATEDELETE
DQL查询数据(DML子集)SELECT
DCL权限与事务控制GRANTREVOKECOMMIT

2. 存储引擎对比

引擎特点
InnoDB支持事务、外键,适合高并发写入(默认引擎)。
MyISAM查询速度快,不支持事务,适合读多写少场景。
Memory数据存于内存,速度快,但服务重启后数据丢失。

查看支持的引擎:

SHOW ENGINES;

 


七、学习建议

  1. 实践优先:从简单项目(如学生管理系统)入手,练习表设计和CRUD操作。

  2. 工具辅助:使用MySQL Workbench或Navicat管理数据库。

  3. 深入原理:学习索引优化、事务隔离级别等高级主题。

  4. 官方文档:MySQL官方文档 是最权威的参考资料。


通过本文,您已掌握MySQL的核心概念、基础操作与架构原理。下一步可探索复杂查询、性能调优及分布式数据库设计,逐步成为数据库领域的高手!

相关文章:

  • 【机器学习-基础知识】统计和贝叶斯推断
  • Flutter_学习记录_device_info_plus 插件获取设备信息
  • 12 | 给应用添加优雅关停功能
  • Webpack 优化深度解析:从构建性能到输出优化的全面指南
  • Vue项目上传到GitHub,vscode拉取vue项目更新后推送到GitHub上
  • vllm.LLM 的参数
  • Linux——进程初步
  • FI模块功能范围的基本概念、用途、配置介绍
  • java登神之阶之顺序表
  • SpringAI+Ollama+DeepSeek本地大模型调用
  • yolov8在昇腾芯片上的测试
  • ESP32-S3-WROOM-1-N16R8 微控制器,搭配 SI4732-A10-GSR 的收音机(源码+PCB+3D模型)
  • libpcap捕捉过滤wifi beacon包解析国标飞行器drone id报文
  • Machine Learning: 十大基本机器学习算法
  • vue3在ts中动态添加DOM(1、使用render函数,2、使用tsx)
  • 【抽奖项目】|第二篇
  • 环境配置 | 5分钟极简Git入门:从零上手版本控制
  • vb编程有哪些相关的IDE开发工具vb.net,Basic语言?
  • JVM常用概念之常量
  • zsh: command not found: adb 报错问题解决
  • 重庆党政代表团在沪考察,陈吉宁龚正与袁家军胡衡华共商两地深化合作工作
  • 中国难以承受高关税压力?外交部:任何外部冲击都改变不了中国经济基本面
  • 科技日报刊文批院士专家“赶场式”跑会:助长浮躁之气功利之心
  • 辽宁召开假期安全生产工作调度会:绝不允许层层失守,绝不允许“带病运行”
  • 张求会谈陈寅恪的生前身后事
  • 武汉大学新闻与传播学院已由“80后”副院长吴世文主持工作