Aloha MySQL Query Builder
Aloha MySQL Query Builder 是一个 Python 库,用于简化 MySQL 查询的构建,支持构建常见的 SQL 查询语句,包括 SELECT、INSERT、UPDATE、DELETE 等。该库提供了一个简洁的 API,使得在 Python 中构建和执行 MySQL 查询变得更加方便。
特性
- 支持
SELECT,INSERT,UPDATE,DELETE等常见 SQL 查询类型。 - 支持
WHERE,ORDER BY,GROUP BY,LIMIT等 SQL 子句。 - 支持批量插入和批量更新。
- 支持构建完整的 SQL 查询字符串,便于执行。
- 支持检查记录是否存在(
IF EXISTS)。 - 支持仅返回一条记录的查询(
SELECT ONE)。
安装
你可以通过 pip 安装 Aloha MySQL Query Builder:
pip install aloha-mysql-query-builder
用法
1. 基本用法
1.1 SELECT 查询
from aloha_mysql.query_builder import AlohaQueryBuilder
query = AlohaQueryBuilder('users')
query = query.select('id', 'name').where('age', '>', 18)
sql = str(query)
print(sql) # 输出: SELECT id, name FROM users WHERE age > '18'
1.2 INSERT 查询
query = AlohaQueryBuilder('users')
query = query.insert(id=1, name='John', age=30)
sql = str(query)
print(sql) # 输出: INSERT INTO users (id, name, age) VALUES ('1', 'John', '30')
1.3 UPDATE 查询
query = AlohaQueryBuilder('users')
query = query.update(name='John Doe', age=31).where('id', '=', 1)
sql = str(query)
print(sql) # 输出: UPDATE users SET name = 'John Doe', age = '31' WHERE id = '1'
1.4 DELETE 查询
query = AlohaQueryBuilder('users')
query = query.delete().where('age', '<', 18)
sql = str(query)
print(sql) # 输出: DELETE FROM users WHERE age < '18'
2. 高级用法
2.1 批量插入
query = AlohaQueryBuilder('users')
query = query.insert_batch(
['id', 'name', 'age'], # 明确列名
[(1, 'Alice', 22), (2, 'Bob', 24)]
)
sql = str(query)
print(sql) # 输出: INSERT INTO users (id, name, age) VALUES ('1', 'Alice', '22'), ('2', 'Bob', '24')
2.2 批量更新
query = AlohaQueryBuilder('users')
query = query.update_batch(
{'name': 'John Doe', 'age': 31},
'id',
[1, 2, 3]
)
sql = str(query)
print(sql) # 输出: UPDATE users SET name = 'John Doe', age = '31' WHERE id IN ('1', '2', '3')
3. 添加排序、分组和限制
3.1 添加排序 (ORDER BY)
query = AlohaQueryBuilder('users')
query = query.select('id', 'name').where('age', '>', 18).order_by('age', 'DESC')
sql = str(query)
print(sql) # 输出: SELECT id, name FROM users WHERE age > '18' ORDER BY age DESC
3.2 添加分组 (GROUP BY)
query = AlohaQueryBuilder('users')
query = query.select('age', 'COUNT(*)').group_by('age')
sql = str(query)
print(sql) # 输出: SELECT age, COUNT(*) FROM users GROUP BY age
3.3 添加限制 (LIMIT)
query = AlohaQueryBuilder('users')
query = query.select('id', 'name').limit(10)
sql = str(query)
print(sql) # 输出: SELECT id, name FROM users LIMIT 10
4. 其他功能
4.1 select_one 方法
query = AlohaQueryBuilder('users')
query = query.select_one().select('id', 'name').where('id', '=', 1)
sql = str(query)
print(sql) # 输出: SELECT id, name FROM users WHERE id = '1' LIMIT 1
4.2 if_exist 方法
query = AlohaQueryBuilder('users')
query = query.if_exist('age > 18')
sql = str(query)
print(sql) # 输出: IF EXISTS (SELECT 1 FROM users WHERE age > 18)
运行测试
运行 pytest 来执行单元测试:
pytest tests/
贡献
欢迎提交 Issues 或 Pull Requests,参与改进本项目。
License
Aloha MySQL Query Builder 使用 MIT 许可证。详细信息请参阅 LICENSE 文件。
Release files for aloha-mysql-query-builder 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aloha_mysql_query_builder-0.1.0.tar.gz | 6.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aloha_mysql_query_builder-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.3 kB
Release files / aloha_mysql_query_builder-0.1.0.tar.gz
| Download URL | aloha_mysql_query_builder-0.1.0.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf538da5bdaa20e79ad7a7cf71f8bc151349cb13936e3baa436f6d36573b4244
|
|
BLAKE2b-256 checksum How to use checksums |
53b202d33bd437fb19f6ffa626bb43d49b9cf2059b135fa8ee2c9d99df1cd91f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.3
|
Release files / aloha_mysql_query_builder-0.1.0-py3-none-any.whl
| Download URL | aloha_mysql_query_builder-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7899990ae59a66033530ec7194fe6a80608cf64e36060ed87909e38dc52ef7e3
|
|
BLAKE2b-256 checksum How to use checksums |
68ffe39d9768399fd702fa1332606531f07c62a23a5217c7fff886ad5be11a34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.3
|