# HypetSql **Repository Path**: supergren/hypet-sql ## Basic Information - **Project Name**: HypetSql - **Description**: 免费的数据库管理软件,支持mac、windows、linux等操作系统,操作友好、适合新手,开发者必备!!! - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-28 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: MySQL, 数据库管理软件 ## README # HypetSql > 一款基于 PyQt6 开发的跨平台数据库管理客户端,提供连接管理、数据浏览、SQL 编辑、表结构设计与数据导入导出等能力,定位为 Navicat 的轻量级开源替代方案。 --- ## 一、项目简介 HypetSql 使用 Python + PyQt6 构建图形界面,支持多种数据库的连接与日常管理。项目当前以 **SQLite** 为默认演示库,并预留了对 MySQL、PostgreSQL、MongoDB 的接入能力。所有数据库连接配置保存在本地 `connections.json` 中,方便快速重连。 | 项 | 说明 | | --- | --- | | 开发语言 | Python 3.10+ | | GUI 框架 | PyQt6 | | 数据库驱动 | mysql-connector-python / psycopg2-binary / pymongo / sqlite3 | | 打包工具 | PyInstaller(`hypet-sql.spec`) | | 适用平台 | macOS / Windows / Linux | | 启动方式 | `启动.command`(macOS 双击)/ `python3 main.py` | --- ## 二、功能特性 - **多类型连接管理**:支持 MySQL、PostgreSQL、SQLite、MongoDB 四种数据库类型的新建、编辑、保存与测试连接。 - **对象浏览器**:树形展示数据库 → 表(集合)层级结构,可查看表列表与结构。 - **数据浏览与编辑**:表格化展示查询结果,支持行内新增、编辑、删除数据。 - **SQL 编辑器**:关键字/字符串/数字/函数/注释/操作符语法高亮,支持执行、格式化、复制到剪贴板。 - **可视化表设计器**:通过表单增删字段,设置字段名、类型、长度、NULL、主键、默认值、注释,实时预览生成的 `CREATE TABLE` SQL。 - **数据筛选**:表格顶部过滤栏,支持按全部列或指定列、多关键词(空格分隔,AND 逻辑)快速筛选与重置。 - **数据导入导出**: - 导出:CSV / JSON / INSERT SQL / 完整 SQL Dump(含 `CREATE TABLE`)。 - 导入:CSV / JSON。 - **连接持久化**:连接配置自动保存在 `connections.json`,下次启动自动加载。 --- ## 三、项目结构 ``` HypetSql/ ├── main.py # 入口:启动主窗口、加载保存的连接 ├── main_window.py # 主窗口:菜单、连接树、数据表、SQL 标签页管理 ├── db_connector.py # 数据库连接与操作抽象层(ConnectionConfig / DB_TYPES / DBConnection) ├── connection_dialog.py # 新建/编辑连接配置对话框 ├── sql_editor.py # SQL 语法高亮(QSyntaxHighlighter 子类) ├── table_designer.py # 可视化表结构设计器 ├── table_filter.py # 表格数据筛选排序栏(TableFilterBar) ├── row_edit_dialog.py # 行数据新增/编辑对话框 ├── data_transfer.py # 数据导入导出工具(DataExporter / DataImporter) ├── connections.json # 已保存的数据库连接配置 ├── requirements.txt # Python 依赖 ├── hypet-sql.spec # PyInstaller 打包脚本 └── 启动.command # macOS 一键启动脚本 ``` --- ## 四、核心模块说明 ### 1. `db_connector.py` — 连接与操作抽象层 - `ConnectionConfig`:连接配置数据类,含 `name / type / host / port / username / password / database / db_file`。 - `DB_TYPES`:支持类型映射(`mysql / postgresql / sqlite / mongodb`)。 - `DBConnection`:根据类型返回具体连接实例,统一封装: - `connect()` / `close()`:建立或关闭连接; - `list_databases()` / `list_tables()`:列举库与表; - `get_table_columns()` / `get_table_structure()`:读取表结构; - `execute_query()`:执行查询并返回 `(columns, rows)`; - `get_create_table_sql()`:获取建表语句(用于导出 Dump); - `execute_write()` / `insert_row()` / `update_row()` / `delete_row()`:写操作; - `table_exists()`:判断表是否存在。 - `test_connection()`:测试连接是否可用(供对话框调用)。 ### 2. `main_window.py` — 主窗口 - 顶部菜单栏:管理连接、新建/保存 SQL、执行、格式化、复制、新建表、数据导出/导入。 - 左侧 `QTreeWidget`:连接与表对象树,双击表节点加载数据到右侧标签页。 - 右侧多标签页:每个查询/表独立为一个选项卡,支持数据表展示 + 过滤栏 + 行编辑。 - 连接数据存储在 `self.connections`,退出时写回 `connections.json`。 ### 3. `data_transfer.py` — 数据导入导出 - `DataExporter`: - `to_csv()`:导出 CSV(带 `utf-8-sig` BOM,Excel 友好)。 - `to_json()`:导出 JSON(保留中文、缩进格式化)。 - `to_sql_insert()`:导出 INSERT 语句,自动转义引号、处理 NULL 与数值。 - `to_sql_dump()`:导出完整 Dump,含 `USE`、建表语句与数据。 - `DataImporter`: - `from_csv()` / `from_json()`:返回 `(columns, rows)` 供后续写入。 ### 4. `table_designer.py` — 表设计器 内置 MySQL / PostgreSQL / SQLite 常用数据类型映射(`get_types()`),在表格中可视编辑字段并实时生成 `CREATE TABLE` SQL,结果通过 `get_result()` 返回 `table_name / columns / create_sql`。 ### 5. `sql_editor.py` — 语法高亮 `SQLSyntaxHighlighter` 对关键字、字符串、数字、注释(`--` 与 `/* */`)、函数、操作符分别着色,提升 SQL 可读性。 --- ## 五、环境准备 ### 依赖安装 ```bash pip install -r requirements.txt ``` `requirements.txt` 内容: ``` PyQt6>=6.5.0 mysql-connector-python>=8.0.0 psycopg2-binary>=2.9.0 pymongo>=4.0.0 ``` > SQLite 使用 Python 内置 `sqlite3`,无需额外安装。 ### 启动 - **macOS**:双击 `启动.command`,脚本会自动检测 Python 环境并在缺失 PyQt6 时安装。 - **通用**: ```bash python3 main.py ``` --- ## 六、打包为独立应用 使用 PyInstaller 与 `hypet-sql.spec` 打包(生成无控制台窗口的 `hypet-sql.app`): ```bash pip install pyinstaller pyinstaller hypet-sql.spec ``` 打包产物位于 `dist/hypet-sql.app`(macOS)或 `dist/hypet-sql`(Windows/Linux)。 --- ## 七、使用流程 1. 打开应用后,点击「连接 → 新建连接」(或编辑 `connections.json`)。 2. 填写连接名、类型、主机、端口、账号等信息,可「测试连接」后保存。 3. 在左侧对象树选择数据库与表,双击表名加载数据到右侧标签页。 4. 在 SQL 标签页编写 SQL,点击「执行」运行查询。 5. 使用顶部过滤栏对当前页数据做快速筛选。 6. 通过「导出/导入」菜单将数据在 CSV / JSON / SQL 之间转换。 7. 通过「新建表」打开表设计器,可视化设计结构并生成建表 SQL。 --- ## 八、注意事项 / 待完善 - 当前 `connections.json` 中的演示库指向 `hypet-sql/demo.db`(旧路径),实际仓库内为 `HypetSql` 目录,首次使用建议通过对话框重建连接。 - MongoDB 的 `DBConnection` 实现目前较为基础(集合级读取与插入),部分关系型特有功能(如 `CREATE TABLE` 预览)对 MongoDB 不适用。 - `table_designer.py` 生成的建表 SQL 默认使用双引号标识符,连接 MySQL 时可按需改为反引号。 - 行编辑对话框依据列名关键字(`_id`、`date`、`email`、`status`)做简单类型推断,复杂类型仍需手写。