初始化提交
This commit is contained in:
214
README.md
Normal file
214
README.md
Normal file
@@ -0,0 +1,214 @@
|
||||
# 多数据库交互脚本
|
||||
|
||||
一个支持多种数据库的 Python 交互式命令行工具,可以方便地连接和操作各种数据库。
|
||||
|
||||
## 支持的数据库
|
||||
|
||||
- ✅ MySQL
|
||||
- ✅ MongoDB
|
||||
- ✅ Redis
|
||||
- ✅ SQLite
|
||||
- ✅ PostgreSQL
|
||||
|
||||
## 系统支持
|
||||
|
||||
- ✅ Windows
|
||||
- ✅ Linux
|
||||
- ✅ macOS
|
||||
- ✅ Termux (Android)
|
||||
|
||||
## 安装依赖
|
||||
|
||||
```bash
|
||||
# 安装所有依赖
|
||||
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. 启动脚本
|
||||
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
### 2. 选择数据库类型
|
||||
|
||||
启动后会提示选择数据库类型:
|
||||
|
||||
```
|
||||
请选择数据库类型:
|
||||
1. MySQL
|
||||
2. MongoDB
|
||||
3. Redis
|
||||
4. SQLite
|
||||
5. PostgreSQL
|
||||
```
|
||||
|
||||
### 3. 输入连接信息
|
||||
|
||||
根据提示输入数据库的连接信息(主机、端口、用户名、密码等)。
|
||||
|
||||
### 4. 执行命令
|
||||
|
||||
连接成功后,就可以输入相应的命令进行数据库操作。
|
||||
|
||||
## 命令示例
|
||||
|
||||
### MySQL / PostgreSQL / SQLite
|
||||
|
||||
```sql
|
||||
-- 查询
|
||||
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 格式的命令:
|
||||
|
||||
```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)
|
||||
- `quit` 或 `exit` - 退出程序
|
||||
|
||||
## 文件说明
|
||||
|
||||
- `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: 运行测试脚本:
|
||||
```bash
|
||||
python test_import.py
|
||||
```
|
||||
这将检查所有必需的数据库驱动是否正确安装。
|
||||
|
||||
### Q: 如何在 Termux 中使用?
|
||||
|
||||
A: 在 Termux 中需要先安装 Python 和必要的依赖:
|
||||
|
||||
```bash
|
||||
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
|
||||
Reference in New Issue
Block a user