人工智能之编程进阶 Python高级
第七章 数据库类模块
@
目录
- 人工智能之编程进阶 Python高级
- 前言
- 🗄️ 一、MySQL(关系型数据库)
- 1. 安装(本地开发)
- Windows / macOS:
- 启动服务:
- 初始设置:
- 2. Python 连接
- 3. 增删改查(CRUD)
- ✅ 插入(Create)
- 🔍 查询(Read)
- ✏️ 更新(Update)
- ❌ 删除(Delete)
- 📦 二、MongoDB(文档型 NoSQL 数据库)
- 1. 安装(本地开发)
- 官方方式:
- 启动服务:
- 验证:
- 2. Python 连接
- 3. 增删改查(CRUD)
- ✅ 插入(Create)
- 🔍 查询(Read)
- ✏️ 更新(Update)
- ❌ 删除(Delete)
- 🔍 三、MySQL vs MongoDB 对比总结
- ✅ 四、怎么选?一句话建议
- 🧰 附:常用命令速查
- 资料关注
前言
本文主要讲述两类数据库,关系型数据库mysql和非关系型数据库mongodb的常见操作步骤。
🗄️ 一、MySQL(关系型数据库)
1. 安装(本地开发)
Windows / macOS:
- 推荐使用 MySQL Installer(官方图形化安装)
- 或用包管理器:
- macOS:
brew install mysql - Windows (WSL):
sudo apt install mysql-server
- macOS:
启动服务:
# macOS (Homebrew)
brew services start mysql# Linux
sudo systemctl start mysql
初始设置:
-- 登录(默认无密码或 root 密码是你设的)
mysql -u root -p-- 创建数据库和用户(可选)
CREATE DATABASE testdb;
CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON testdb.* TO 'dev'@'localhost';
FLUSH PRIVILEGES;
2. Python 连接
安装驱动:
pip install PyMySQL # 纯 Python 实现,推荐
# 或
pip install mysql-connector-python # 官方驱动
连接代码(以 PyMySQL 为例):
import pymysqlconn = pymysql.connect(host='localhost',user='dev', # 或 'root'password='123456',database='testdb',charset='utf8mb4'
)
cursor = conn.cursor()
✅ 建议搭配 ORM:
SQLAlchemy(更安全、易维护)
3. 增删改查(CRUD)
先建表:
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100) NOT NULL,email VARCHAR(100),age INT
);
✅ 插入(Create)
cursor.execute("INSERT INTO users (name, email, age) VALUES (%s, %s, %s)",("Alice", "alice@example.com", 30)
)
conn.commit() # 必须提交!
🔍 查询(Read)
cursor.execute("SELECT * FROM users WHERE age > %s", (25,))
rows = cursor.fetchall()
for row in rows:print(f"ID: {row[0]}, Name: {row[1]}")
✏️ 更新(Update)
cursor.execute("UPDATE users SET age = %s WHERE name = %s",(31, "Alice")
)
conn.commit()
❌ 删除(Delete)
cursor.execute("DELETE FROM users WHERE name = %s", ("Alice",))
conn.commit()
⚠️ 注意:所有写操作(INSERT/UPDATE/DELETE)都要
conn.commit()!
📦 二、MongoDB(文档型 NoSQL 数据库)
1. 安装(本地开发)
官方方式:
- 下载社区版:https://www.mongodb.com/try/download/community
- 或用包管理器:
- macOS:
brew tap mongodb/brew && brew install mongodb-community - Windows: 用 MSI 安装包
- Linux: 按官方文档配置 apt/yum 源
- macOS:
启动服务:
# macOS (Homebrew)
brew services start mongodb-community# 默认数据目录:/data/db(需提前创建并赋权限)
sudo mkdir -p /data/db
sudo chown -R `id -un` /data/db
验证:
mongosh # 进入交互 shell
> show dbs
2. Python 连接
安装驱动:
pip install pymongo
连接代码:
from pymongo import MongoClientclient = MongoClient('mongodb://localhost:27017/') # 默认端口 27017
db = client['myapp'] # 数据库名(不存在会自动创建)
collection = db['users'] # 集合名(相当于“表”)
💡 MongoDB 不需要提前建库/建集合,首次插入时自动创建。
3. 增删改查(CRUD)
MongoDB 中的数据是 BSON(类似 JSON)文档。
✅ 插入(Create)
# 插入单个文档
result = collection.insert_one({"name": "Bob","email": "bob@example.com","age": 28,"hobbies": ["gaming", "music"]
})
print("Inserted ID:", result.inserted_id)# 插入多个
collection.insert_many([{"name": "Charlie", "age": 35},{"name": "Diana", "tags": ["admin"]}
])
🔍 查询(Read)
# 查所有
for doc in collection.find():print(doc)# 条件查询(年龄 > 25)
for doc in collection.find({"age": {"$gt": 25}}):print(doc["name"])# 只返回部分字段
doc = collection.find_one({"name": "Bob"}, {"name": 1, "email": 1, "_id": 0})
print(doc) # {'name': 'Bob', 'email': 'bob@example.com'}
✏️ 更新(Update)
# 更新第一个匹配项
collection.update_one({"name": "Bob"},{"$set": {"age": 29}, "$push": {"hobbies": "reading"}}
)# 更新所有匹配项
collection.update_many({"age": {"$lt": 30}},{"$set": {"young": True}}
)
❌ 删除(Delete)
# 删除一个
collection.delete_one({"name": "Bob"})# 删除多个
collection.delete_many({"young": True})# 清空整个集合
collection.delete_many({})
✅ MongoDB 所有操作都是自动提交的,无需手动 commit。
🔍 三、MySQL vs MongoDB 对比总结
| 项目 | MySQL | MongoDB |
|---|---|---|
| 类型 | 关系型(RDBMS) | 文档型(NoSQL) |
| 数据结构 | 表(固定列) | 集合(灵活 JSON 文档) |
| Schema | 强 Schema(必须先定义) | 动态 Schema(随时变) |
| 查询语言 | SQL | MongoDB 查询语法(字典风格) |
| 事务 | ✅ 强 ACID(默认支持) | ✅ 多文档事务(4.0+,但慎用) |
| 扩展性 | 垂直扩展为主,分片复杂 | 天然支持水平分片(Sharding) |
| 性能特点 | 复杂 JOIN 快,写入中等 | 写入快,高吞吐,JOIN 弱 |
| 适用场景 | 订单、支付、财务等强一致性系统 | 日志、内容管理、用户画像、IoT 等灵活场景 |
| Python 驱动 | PyMySQL,mysql-connector |
pymongo |
| 是否需要预建表 | ✅ 是 | ❌ 否 |
✅ 四、怎么选?一句话建议
- 选 MySQL:
如果你的数据关系明确、不能出错(比如银行转账、电商订单),或者团队熟悉 SQL。 - 选 MongoDB:
如果你的数据结构经常变、需要快速迭代(比如 App 用户配置、行为日志),或者讨厌写复杂的表结构。
💡 现实建议:
很多公司 两者都用!
- 核心业务用 MySQL(保安全)
- 灵活数据用 MongoDB(提效率)
🧰 附:常用命令速查
| 操作 | MySQL | MongoDB |
|---|---|---|
| 启动服务 | sudo systemctl start mysql |
brew services start mongodb-community |
| 进入命令行 | mysql -u root -p |
mongosh |
| 查数据库 | SHOW DATABASES; |
show dbs |
| 切换库 | USE testdb; |
use myapp |
| 查表/集合 | SHOW TABLES; |
show collections |
资料关注
公众号:咚咚王

《Python编程:从入门到实践》
《利用Python进行数据分析》
《算法导论中文第三版》
《概率论与数理统计(第四版) (盛骤) 》
《程序员的数学》
《线性代数应该这样学第3版》
《微积分和数学分析引论》
《(西瓜书)周志华-机器学习》
《TensorFlow机器学习实战指南》
《Sklearn与TensorFlow机器学习实用指南》
《模式识别(第四版)》
《深度学习 deep learning》伊恩·古德费洛著 花书
《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》
《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen) 》
《自然语言处理综论 第2版》
《Natural-Language-Processing-with-PyTorch》
《计算机视觉-算法与应用(中文版)》
《Learning OpenCV 4》
《AIGC:智能创作时代》杜雨+&+张孜铭
《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》
《从零构建大语言模型(中文版)》
《实战AI大模型》
《AI 3.0》