
一、数据库基础
1.1 什么是数据库
简单来说,数据库就是一个结构化存储和管理数据的 "数据仓库",它能帮我们高效地存储、查询、修改和管理数据,解决了传统文件存储的诸多痛点:
- 文件存储的问题:数据分散、查询效率低、不支持并发访问、难以保证数据安全和一致性;
- 数据库的优势:结构化存储、支持复杂查询、事务保证数据一致性、权限控制保障数据安全、可应对高并发场景。
我们常说的数据库,大多指关系型数据库(数据以表格形式存储,表之间通过关系关联),也是 MySQL 所属的类别,后面的学习都会围绕这个类型展开。
1.2 主流数据库介绍
目前市面上主流的数据库分为关系型和非关系型两大类,我们重点聊聊 Web 开发中最常见的几款:
| 类型 | 代表数据库 | 特点与适用场景 |
|---|---|---|
| 关系型数据库 | MySQL | 开源免费、社区活跃、跨平台、性能优异,是中小企业和互联网项目的首选,也是我们今天的主角 |
| 关系型数据库 | PostgreSQL | 开源、功能强大,支持复杂查询和高级特性,适合对数据一致性要求高的场景 |
| 关系型数据库 | Oracle | 商用数据库,性能和稳定性极强,适合大型企业、金融等核心业务场景 |
| 非关系型数据库 | Redis | 内存数据库,以键值对存储,读写速度极快,常用于缓存、会话存储 |
| 非关系型数据库 | MongoDB | 文档型数据库,适合存储非结构化数据,如日志、用户行为数据 |
而 MySQL 凭借开源免费、轻量高效、生态完善的优势,成为了 Web 开发的 "标配" 数据库,也是我们学习后端开发绕不开的核心技能。
1.3 MySQL 基本使用
1.3.1 连接 MySQL 服务器
安装完成后,我们需要连接 MySQL 服务器才能操作数据,打开终端 / 命令提示符,输入以下命令:

注意: 如果没有写**-h 127.0.0.1** 默认是连接本地;如果没有写**-P 3306** 默认是连接3306端口号
1.3.2理解mysql

1.mysql是数据库服务的客服端
2.mysqld是数据库服务的服务器端
3.mysql本质是基于C(mysql)S(mysqld)模式的一种网络服务
1.mysql是一套给我们提供数据存取服务的网络程序
2.数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据----将来在磁盘上存储的一套数据库方案
3.数据库服务----mysqld
1.3.3使用案例---见一见数据库
使用mysql建立一个数据库,建立一张表结构,插入一个数据-------对比一下mysql在Linux中是如何表现的
建立数据库:
cpp
create database helloworld;
使用(进入)数据库:
cpp
use helloworld;
创建数据库表:
cpp
mysql> create table student(
-> name varchar(32),
-> age int,
-> gender varchar(2)
-> );
表中插入数据:
cpp
mysql> insert into student (name,age,gender) values ('cqw',19,'女');
查询表中的数据:
cpp
select * from student;

1.3.4服务器,数据库,表之间的关系

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多 个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
1.3.5数据逻辑存储

1.4MySQL架构
MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

1.5 SQL分类
DDL【data definition language】 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML【data manipulation language】 数据操纵语言,用来对数据进行操作 ;DML中又单独分了一个DQL,数据查询语言,代表指令: select
代表指令: insert,delete,update
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit
1.6存储引擎
1.6.1存储引擎
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎
1.6.2查看储存引擎
cpp
show engines;

1.6.3 存储引擎对比
大部分情况下我们使用的都是MyISAM和InnoDB
