2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00
2025-12-29 22:08:58 +08:00

多数据库交互脚本

一个支持多种数据库的 Python 交互式命令行工具,可以方便地连接和操作各种数据库。

支持的数据库

  • MySQL
  • MongoDB
  • Redis
  • SQLite
  • PostgreSQL

系统支持

  • Windows
  • Linux
  • macOS
  • Termux (Android)

安装依赖

# 安装所有依赖
pip install -r requirements.txt

# 或者单独安装需要的数据库驱动
pip install pymysql        # MySQL
pip install pymongo        # MongoDB
pip install redis          # Redis
pip install psycopg2-binary  # PostgreSQL
# SQLite 是 Python 内置模块,无需安装

使用方法

1. 启动脚本

python main.py

2. 选择数据库类型

启动后会提示选择数据库类型:

请选择数据库类型:
1. MySQL
2. MongoDB
3. Redis
4. SQLite
5. PostgreSQL

3. 输入连接信息

根据提示输入数据库的连接信息(主机、端口、用户名、密码等)。

4. 执行命令

连接成功后,就可以输入相应的命令进行数据库操作。

命令示例

MySQL / PostgreSQL / SQLite

-- 查询
SELECT * FROM users;
SELECT name, age FROM users WHERE age > 18;

-- 插入
INSERT INTO users (name, age) VALUES ('张三', 25);

-- 更新
UPDATE users SET age = 26 WHERE name = '张三';

-- 删除
DELETE FROM users WHERE name = '张三';

-- 创建表
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);

MongoDB

MongoDB 使用 JSON 格式的命令:

// 查询所有文档
{"collection": "users", "operation": "find", "query": {}}

// 条件查询
{"collection": "users", "operation": "find", "query": {"age": {"$gt": 18}}}

// 插入文档
{"collection": "users", "operation": "insert", "document": {"name": "张三", "age": 25}}

// 更新文档
{"collection": "users", "operation": "update", "query": {"name": "张三"}, "update": {"$set": {"age": 26}}}

// 删除文档
{"collection": "users", "operation": "delete", "query": {"name": "张三"}}

// 统计数量
{"collection": "users", "operation": "count", "query": {}}

Redis

# 字符串操作
SET name 张三
GET name
DEL name

# 哈希操作
HSET user:1 name 张三
HSET user:1 age 25
HGET user:1 name
HGETALL user:1

# 列表操作
LPUSH mylist item1 item2 item3
LRANGE mylist 0 -1

# 集合操作
SADD myset member1 member2
SMEMBERS myset

# 查询所有键
KEYS *

# 测试连接
PING

内置命令

  • help - 显示帮助信息
  • connect - 连接到数据库
  • disconnect - 断开数据库连接
  • status - 查看连接状态
  • switch <db> - 切换数据库类型 (mysql/mongodb/redis/sqlite/postgres)
  • quitexit - 退出程序

文件说明

  • main.py - 主程序入口
  • mysql.py - MySQL 数据库操作模块
  • mongodb.py - MongoDB 数据库操作模块
  • redis.py - Redis 数据库操作模块
  • sqlite.py - SQLite 数据库操作模块
  • postgres.py - PostgreSQL 数据库操作模块
  • requirements.txt - 依赖包列表

注意事项

  1. 首次使用前请确保已安装相应的数据库驱动
  2. SQLite 会在当前目录创建数据库文件
  3. 确保数据库服务已启动并可以访问
  4. 使用完毕后建议执行 disconnect 命令断开连接

常见问题

Q: 连接失败怎么办?

A: 请检查:

  • 数据库服务是否已启动
  • 主机地址和端口是否正确
  • 用户名和密码是否正确
  • 防火墙是否允许连接

Q: Redis 连接时提示 "module 'redis' has no attribute 'Redis'" 怎么办?

A: 这个问题已经修复。如果仍然遇到,请:

  1. 确保安装了正确的 redis 包:pip install redis
  2. 检查是否有其他名为 redis.py 的文件冲突
  3. 运行测试脚本检查依赖:python test_import.py

Q: 如何检查依赖是否正确安装?

A: 运行测试脚本:

python test_import.py

这将检查所有必需的数据库驱动是否正确安装。

Q: 如何在 Termux 中使用?

A: 在 Termux 中需要先安装 Python 和必要的依赖:

pkg install python
pkg install build-essential  # 编译某些包需要
pip install -r requirements.txt

Q: 如何切换数据库?

A: 使用 switch <数据库类型> 命令,例如:

switch mysql
switch mongodb

Q: MongoDB 需要用户认证怎么办?

A: 在配置时会询问是否需要认证,选择 y 后输入用户名和密码即可。

许可证

MIT License

Description
使用python交互主流数据库
Readme 39 KiB
Languages
Python 100%