mysql菜鸟教程

首页 >> mysql菜鸟教程

1.1 什么是数据库?为什么需要它?

1.1.1 从一个生活场景开始

想象一下,你经营着一家小型书店。每天你需要记录:

  • 书店里有哪些书?(书名、作者、价格、库存数量)

  • 哪些顾客买了书?(顾客姓名、购买时间、买了什么书)

  • 每天的收入和支出情况

如果你只有几张纸来记录这些信息,很快就会发现:

  1. 查找困难:想找某本书的库存?得翻遍所有记录

  2. 容易出错:手工记录可能写错价格或数量

  3. 更新麻烦:书卖出一本,要修改多处记录

  4. 容易丢失:纸张可能被损坏或遗失

这就是我们需要数据库的原因!

1.1.2 数据库的正式定义

     数据库(Database) 是一个有组织的、存储在计算机内的数据集合。你可以把它想象成一个电子化的文件柜,但比文件柜聪明得多。

更专业地说,数据库是:

  • 按照特定结构组织的数据集合

  • 能够被计算机程序高效地访问管理更新

  • 通常由数据库管理系统(DBMS)来管理

1.1.3 数据库 vs 文件系统

你可能会问:“我可以用Excel或文本文件存数据吗?”

当然可以!但对于复杂的数据管理,数据库有明显优势:

对比项

文件系统(如Excel)

数据库系统

数据量

适合少量数据(通常几万行以内)

可以处理数百万甚至数十亿条记录

多人同时使用

通常只能一人编辑

支持多人同时安全访问

数据一致性

容易产生不一致

保证数据完整性和一致性

查询能力

简单筛选和排序

复杂的多条件查询和连接

安全性

有限的安全控制

精细的权限管理

故障恢复

容易丢失数据

有备份和恢复机制

1.1.4 为什么我们需要数据库?

1. 数据持久化存储

计算机内存(RAM)是临时的,断电就丢失。数据库将数据永久保存在硬盘上,即使关机也不会丢失。

2. 高效的数据管理

想象一下在100万条记录中找一条数据。人工可能需要几天,数据库只需要零点几秒!

-- 数据库只需要这样简单的命令 
SELECT * FROM books WHERE title = 'MySQL入门指南'; 
-- 瞬间就能从百万本书中找到你要的那本

3. 数据共享与协作

在团队或企业中,多人需要访问相同数据:

  • 销售部门需要查看库存

  • 财务部门需要统计销售额

  • 客服部门需要查询客户订单

数据库让这些部门可以同时工作而不会互相干扰。

4. 保证数据一致性

假设你在网上书店买书:

  • 库存减少1本

  • 你的订单增加1条记录

  • 商家的收入增加

这些操作必须要么全部成功,要么全部失败。数据库的事务功能确保不会出现“钱扣了但没收到书”的情况。

5. 数据安全性

数据库可以:

  • 为不同用户设置不同权限(经理能看到全部,员工只能看部分)

  • 记录谁在什么时候做了什么操作

  • 对敏感数据(如密码)进行加密存储

6. 备份与恢复

数据库可以定期自动备份,万一出现硬件故障或人为错误,可以快速恢复数据,最大限度地减少损失。

1.1.5 生活中的数据库应用

数据库无处不在!你每天都在与数据库交互:

场景

使用的数据库

网上购物

商品信息、订单、用户数据都存储在数据库

社交媒体

你的朋友圈、聊天记录、点赞信息

银行系统

账户余额、交易记录、转账信息

医院系统

病历、药品库存、医生排班

学校管理

学生成绩、课程安排、教师信息

手机通讯录

联系人姓名、电话、地址

音乐APP

歌曲库、播放列表、用户偏好

1.1.6 数据库的类型

数据库主要分为两大类:

1. 关系型数据库(SQL数据库)

像Excel表格一样,数据以行和列的形式组织在中,表与表之间可以建立关系。

特点

  • 使用SQL(结构化查询语言)进行操作

  • 数据有严格的结构

  • 强调数据的一致性和完整性

  • 例子:MySQL、Oracle、SQL Server、PostgreSQL

-- 关系型数据库的表类似这样
-- 用户表
+----+----------+----------+
| id | username | email    |
+----+----------+----------+
| 1  | 张三     | zs@xx.com|
| 2  | 李四     | ls@xx.com|
+----+----------+----------+

-- 订单表(通过user_id与用户表关联)
+----+---------+------------+--------+
| id | user_id | order_date | amount |
+----+---------+------------+--------+
| 101| 1       | 2023-10-01 | 100.00 |
| 102| 2       | 2023-10-02 | 200.00 |
+----+---------+------------+--------+

2. 非关系型数据库(NoSQL数据库)

更灵活,不以表格形式存储数据,适合存储非结构化或半结构化数据。

特点

  • 不使用SQL或使用类SQL语言

  • 数据结构灵活

  • 适合大数据和实时应用

  • 例子:MongoDB(文档型)、Redis(键值型)、Cassandra(列存储)

// 非关系型数据库可能这样存储数据
 {
  "user_id": 1,
  "username": "张三",
  "email": "zs@xx.com",
  "orders": [
    {"order_id": 101, "date": "2023-10-01", "amount": 100.00},
    {"order_id": 103, "date": "2023-10-05", "amount": 150.00}
  ]
}

1.1.7 为什么选择MySQL?

在众多数据库中,MySQL特别适合初学者:

  1. 完全免费:开源软件,可以自由使用和修改

  2. 简单易学:相比Oracle等商业数据库,MySQL更轻量、更易上手

  3. 功能强大:虽然免费,但功能非常全面,能满足大多数应用需求

  4. 广泛应用:被Facebook、Twitter、YouTube等众多大型网站使用

  5. 社区活跃:遇到问题容易找到解决方案

  6. 跨平台:可以在Windows、Linux、Mac等系统上运行

1.1.8 本章小结

  • 数据库是电子化的、有组织的数据集合,比文件系统更强大

  • 我们需要数据库来实现持久化存储高效管理数据共享一致性保证安全保护备份恢复

  • 数据库分为关系型(如MySQL)和非关系型两大类

  • MySQL因其免费、易学、强大而成为初学者的理想选择

思考题

  1. 你日常生活中接触的哪些应用或网站可能使用了数据库?它们存储了什么数据?

  2. 如果你要开发一个简单的博客系统,需要存储哪些数据?这些数据之间有什么关系?

  3. 为什么大型电商网站(如淘宝、京东)必须使用数据库而不是Excel来管理数据?

动手实践(不需要安装MySQL)

即使还没有安装MySQL,你也可以开始思考:

  1. 列出你手机通讯录中需要存储的信息(如姓名、电话、地址等)

  2. 设计一个简单的表格来整理这些信息

  3. 思考:如果要快速找到某个人的电话,怎样组织数据最有效率?


发表评论

昵称:
联系方式:
评论内容:

所有评论

关于我 备案号:蜀ICP备2023042032号-1