概述

BabySql 是一个专为简化数据库操作设计的 Python 库,支持多种数据库后端(MySQL、MariaDB、PostgreSQL 和 SQLite)。它通过统一的接口提供 表管理、数据操作、数据库管理 等功能,旨在降低开发者与不同数据库交互的复杂度。

✅ 核心特性

  • 多数据库支持:MySQL、MariaDB、PostgreSQL、SQLite。

  • 统一接口:通过链式调用实现增删改查、表结构管理。

  • 高可扩展性:支持自定义字段类型、索引、注释等。

  • 轻量易用:无需复杂的 SQL 编写,通过方法链快速操作。


📦 安装方式

# 通过 PyPI 安装
pip install babySql

# 或从源码安装
git clone https://github.com/yanshi121/BabySql.git
cd BabySql
python setup.py install

🔧 快速入门

1. 获取数据库连接

支持直接使用 BabySql 类或指定数据库的子类(如 MySQL, PostgreSQL)。

使用通用类

from babySql import BabySql

ms = BabySql(
    dt_type="mysql",          # 数据库类型
    host="127.0.0.1",
    port=3306,
    user="root",
    passwd="root123",
    db="test",
    max_connections=50        # 最大连接数
)

使用子类

from babySql import MySQL, PostgreSQL, SqLite

# MySQL 示例
db = MySQL(
    host="127.0.0.1",
    port=3306,
    user="root",
    passwd="root123",
    db="test"
)

# PostgreSQL 示例(注意端口为 5432)
pg = PostgreSQL(
    host="127.0.0.1",
    port=5432,
    user="postgres",
    passwd="123456",
    db="mydb"
)

# SQLite 示例(无需主机和端口)
sl = SqLite(db="test.db")

🛠️ 核心功能

1. 数据操作

插入数据

db.insert("test_table", ["id", "name", "age"], [1, "Rose", 4])

查询数据

# 查询 name 为 "Rose" 的记录
data = db.select("test_table", ["id", "name", "age"]).equal("name", "Rose").run()

# 查询 name 包含 "R" 的记录
data = db.select("test_table", ["id", "name", "age"]).like("name", "R").run()

更新数据

# 将 name 包含 "R" 的记录的 age 修改为 3
db.update("test_table", {"age": 3}).like("name", "R").run()

删除数据

# 删除 age < 2 或 name 以 "B" 开头的记录
db.delete("test_table").less("age", 2).like_start("name", "B", "or").run()

2. 数据库管理

创建数据库

db.create_database("test_database", collate="utf8mb4_general_ci", character="utf8mb4")

删除数据库

db.drop_database("test_database")

查看数据库

databases = db.show_database()  # 显示所有数据库

3. 数据表管理

创建表

table = db.create_table("test_table", "测试表")

# 添加字段
table.column("id").type("int").auto_increment().comment("主键")
table.column("name").type("varchar", 255).comment("姓名")
table.column("age").type("int").comment("年龄")

# 添加索引
table.add_index("id", "idx_id")  # 为 id 字段添加索引

# 创建表
table.build()

修改表

# 修改表名
db.alter_table_name("old_table", "new_table")

# 添加字段
db.add_column("test_table", "email", "varchar", 255)

# 删除字段
db.drop_column("test_table", "email")

# 修改字段名和类型
db.alter_column_name("test_table", "email", "new_email", "text")
db.alter_column_type("test_table", "new_email", "varchar", 512)

删除表

db.drop_table("test_table")

查看表

tables = db.show_table()  # 当前数据库的所有表
tables_in_db = db.show_table_by_database_name("test_database")  # 指定数据库的表

⚠️ 注意事项

  1. SQLite 路径:SQLite 无需主机和端口,直接指定数据库文件路径即可。

  2. 字段类型兼容性:不同数据库的字段类型(如 textvarchar)可能略有差异,需根据目标数据库调整。


📚 项目资源


📞 联系与贡献

  • 提交 Issues:在 GitHub 上反馈问题或提出建议。

  • 贡献代码:Fork 仓库并提交 Pull Request。

  • 联系方式:GitHub 或邮件(DY39project@outlook.com)。


🌟 结语

BabySql 的目标是为开发者提供一个 低门槛、高效率 的数据库操作工具。无论你是新手还是资深开发者,都可以通过它快速实现数据库交互。欢迎尝试并贡献你的想法!


📝 附:版本信息

  • 当前版本0.1.0.2(发布于 2025-07-08)

  • 许可证:MIT License(请查看 LICENSE 文件)