MySQL数据库入门指南
目录
- 数据库核心概念
- 什么是数据库?
- 数据库管理系统
- 为什么需要数据库?
- 主流数据库
- SQL 语言简介
- 基本使用
- MySQL安装
- 连接服务器
- 服务器,数据库,表关系
- 使用案例
- MySQL架构
- 存储引擎
- 查看存储引擎
- 存储引擎对比
数据库核心概念
什么是数据库?
- 定义:数据库是一个长期存储在计算机内、有组织的、可共享的、统一管理的数据集合。
- 简单理解:就像一个电子化的文件柜,你可以在这个文件柜里创建不同的抽屉(数据库),在每个抽屉里放不同的文件夹(表),每个文件夹里是结构化的文件(数据记录)。
数据库管理系统
- ** DBMS:**我们通常说的“数据库”软件,如 MySQL、Oracle、SQL Server,其实准确来说是数据库管理系统。它是位于用户和操作系统之间的一层数据管理软件,它帮助我们科学地组织、存储和管理数据。
DBMS 的主要功能:
- 数据定义:提供数据定义语言(DDL),用于创建、修改数据库和表结构。
- 数据操作:提供数据操作语言(DML),用于对数据进行增、删、改、查。
- 数据控制:提供数据控制语言(DCL),管理权限和事务,保证数据的安全性和完整性。
- 数据维护:提供数据备份、恢复、完整性检查等功能。
为什么需要数据库?
相比于直接使用文件(如 Excel、TXT)存储数据,数据库的优势在于:
- **持久化存储:**数据被可靠地保存在存储设备中。
- **结构化存储与管理:**数据按特定的数据模型(如关系模型)组织,管理高效。
- **数据共享:**允许多个用户或应用程序同时安全地访问数据。
- **减少数据冗余:**通过合理的数据库设计,可以极大避免数据的重复存储。
- **数据独立性:**数据的逻辑结构(用户看到的)和物理存储(磁盘上的)是分开的,物理存储的改变不影响应用程序。
- **数据一致性:**通过事务和约束,保证数据符合预定义的规则。
- **并发控制:**当多个用户同时修改数据时,DBMS 能防止数据出现混乱。
主流数据库
- SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
- Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
- **MySQL:**世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
- **PostgreSQL 😗*加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研
究使用,可以免费使用,修改和分发。 - ** SQLite:** 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
- H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
SQL 语言简介
SQL 是用于与关系型数据库通信的标准语言。
- DDL - 数据定义语言:用于定义和修改数据库结构。
- CREATE: 创建数据库、表、索引等。
- ALTER: 修改已有的数据库对象。
- DROP: 删除数据库、表等。
- DML - 数据操作语言:用于操作表中的数据。
- INSERT: 插入新数据。
- UPDATE: 更新已有数据。
- DELETE: 删除数据。
- DQL - 数据查询语言:用于查询数据。
- SELECT: 从一个或多个表中检索数据。这是最核心、最常用的命令。
- DCL - 数据控制语言:用于控制访问权限。
- GRANT: 授予用户权限。
- REVOKE: 撤销用户权限。
基本使用
MySQL安装
- 方式一:使用 MySQL Installer(Windows 用户推荐)
官方安装包一键安装
- 下载
* 访问 dev.mysql.com/downloads/mysql/
* 下载 MySQL Community Server 安装包- 安装
* 运行安装程序
* 选择 “Developer Default”(开发者默认)
* 一路点击 “Next” 直到安装完成- 配置
* 设置 root 用户密码(务必牢记!)
* 其他选项保持默认
* 完成配置- 验证
* 打开 MySQL Command Line Client
* 输入设置的 root 密码
* 看到 mysql> 提示符即表示成功
- 方式二:云服务器MySQL安装
Ubuntu/Debian:
sudo aptupdate
sudo apt install mysql-server -y
sudosystemctl start mysql
sudo systemctl enable mysql
CentOS/RHEL:
sudo yum install mysql-server -y
# 或对于新版本:sudo dnf install mysql-server -y
sudosystemctl start mysqld
sudo systemctl enable mysqld
连接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
服务器,数据库,表关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
- 数据库服务器、数据库和表的关系如下:

使用案例
- 创建数据库
create database helloworld;
- 使用数据库
use helloworld;
- 创建数据库表
create table student(
id int,
name varchar(32),
gender varchar(2)
);
- 表中插入数据
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
- 查询表中的数据
select * from student;
MySQL架构
MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

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

存储引擎对比

