什么是数据库?
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库管理系统(DBMS)是用于管理数据库的软件系统。
数据库类型
- 关系型数据库(MySQL, PostgreSQL, Oracle) - 使用表格结构存储数据
- 非关系型数据库(MongoDB, Redis) - 使用键值对、文档等形式存储数据
MySQL简介
MySQL是最流行的开源关系型数据库管理系统之一,由Oracle公司开发和支持。
特点:开源免费、性能高、可靠性强、易于使用、支持标准SQL
MySQL基本概念
- 数据库(Database) - 数据存储的容器
- 表(Table) - 数据的二维结构,由行和列组成
- 列(Column) - 表的字段,定义数据类型
- 行(Row) - 表中的记录
- 主键(Primary Key) - 唯一标识表中每行的字段
基本SQL操作
创建数据库
SQL示例
CREATE DATABASE my_database;
选择数据库
SQL示例
USE my_database;
创建表
SQL示例
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
插入数据
SQL示例
INSERT INTO users (username, email)
VALUES ('john_doe', 'john@example.com');
查询数据
SQL示例
SELECT * FROM users;
更新数据
SQL示例
UPDATE users
SET email = 'john.doe@example.com'
WHERE username = 'john_doe';
删除数据
SQL示例
DELETE FROM users
WHERE username = 'john_doe';
MySQL客户端工具
MySQL提供了多种客户端工具来管理和操作数据库:
| 工具 | 描述 | 特点 |
|---|---|---|
| MySQL命令行客户端 | 官方命令行工具 | 轻量、快速、功能完整 |
| MySQL Workbench | 官方图形化工具 | 可视化操作、建模、管理 |
| phpMyAdmin | Web版管理工具 | 基于浏览器、易于部署 |
| Navicat | 第三方图形化工具 | 功能强大、界面友好 |
MySQL体系结构
MySQL采用客户端/服务器架构,主要包含以下组件:
- 连接池 - 管理客户端连接
- SQL接口 - 接收SQL命令并返回结果
- 解析器 - 解析SQL语句
- 优化器 - 优化查询执行计划
- 存储引擎 - 负责数据的存储和检索
MySQL存储引擎
MySQL支持多种存储引擎,每种都有其特点和适用场景:
| 存储引擎 | 特点 | 适用场景 |
|---|---|---|
| InnoDB | 支持事务、外键、行级锁 | 事务处理、高并发应用 |
| MyISAM | 不支持事务、表级锁 | 读密集型应用、数据仓库 |
| MEMORY | 数据存储在内存中 | 临时表、高速缓存 |
| ARCHIVE | 高压缩比、只支持插入和查询 | 归档数据、日志存储 |
SQL语言分类
SQL语言按照功能可以分为以下几类:
- 数据定义语言(DDL) - 用于定义数据库对象,如CREATE、ALTER、DROP
- 数据操作语言(DML) - 用于操作数据,如INSERT、UPDATE、DELETE
- 数据查询语言(DQL) - 用于查询数据,主要是SELECT语句
- 数据控制语言(DCL) - 用于控制数据库访问权限,如GRANT、REVOKE
- 事务控制语言(TCL) - 用于管理事务,如COMMIT、ROLLBACK
数据库设计基础
良好的数据库设计是构建高效应用的基础:
规范化
规范化是数据库设计的过程,旨在减少数据冗余和提高数据一致性:
- 第一范式(1NF) - 每个列都是原子性的,不可再分
- 第二范式(2NF) - 满足1NF,且非主键列完全依赖于主键
- 第三范式(3NF) - 满足2NF,且非主键列之间没有传递依赖
实体关系模型
实体关系模型是数据库设计的重要工具:
- 实体 - 现实世界中可区分的对象
- 属性 - 实体的特征
- 关系 - 实体之间的联系
学习建议:初学者建议从MySQL命令行开始学习,可以更好地理解SQL语法和数据库操作原理。
MySQL应用场景
MySQL广泛应用于各种场景:
- Web应用 - 作为后端数据库存储用户数据、内容等
- 电子商务 - 存储产品信息、订单数据、客户信息
- 日志系统 - 存储应用日志、系统日志
- 数据分析 - 作为数据仓库的基础
- 内容管理系统 - 存储文章、页面、媒体信息
MySQL版本发展
MySQL自1995年发布以来,经历了多个重要版本:
- MySQL 3.x - 早期版本,功能基础
- MySQL 4.x - 引入InnoDB存储引擎
- MySQL 5.x - 功能大幅增强,包括存储过程、触发器、视图等
- MySQL 8.x - 当前主流版本,性能和安全大幅提升
下一步学习
掌握了MySQL基础概念后,您可以继续学习:
- MySQL安装与配置 - 学习如何安装和配置MySQL环境
- MySQL数据类型 - 了解MySQL支持的各种数据类型
- SQL语法详解 - 深入学习SQL语句的语法规则