Skip to content

MySQL数据库

更新: 2025/10/16 字数: 0 字 时长: 0 分钟

该模块依赖[db]

bash
pip install sch-lib[db]

提供了 MySQL 数据库的常用操作接口,简化了连接管理、表创建、数据查询、数据更新等流程,适用于需要快速对接 MySQL 数据库的 Python 项目。

配置文件

使用该模块前,需要在config目录中的配置文件中添加mysql配置,下面以json格式为例

json
{
  "mysql": {
    "host": "localhost",
    "port": 3306,
    "user": "root",
    "pass": "12345678",
    "name": "root"
  }
}
toml
[mysql]
host = "localhost"
port = 3306
user = "root"
pass = "12345678"
name = "root"

初始化MySQL对象

MySQL

MySQL(config: Config, echo: bool = False)

参数类型说明
configConfig配置对象
echobool是否输出MySQL执行日志
python
from sch import MySQL, Config

config = Config.load_json()
mysql = MySQL(config.mysql)

连接数据库

connect

connect()

连接数据库,该操作在初始化对象时自动执行,无需手动调用。

设置输出日志

设置输出日志

echo

设置/获取是否输出MySQL执行日志。

python
from sch import Config, MySQL

config = Config.load_json()
mysql = MySQL(config)
mysql.echo = True
print(mysql.echo) # True

创建表

创建表

create_table(table: Table)

创建表,Table对象参考MySQL表

python
from .table import UserList
from sch import Config, MySQL

config = Config.load_json()
mysql = MySQL(config)
mysql.create_table(UserList)
python
from sch import MySQL

UserList = MySQL.table(
    "user_list",
    [
        ('id', int, True),
        ('username', str, 100),
        ('password', str, 100),
    ]
)

通过语句获取所有数据

通过语句获取所有数据

fetchall(statement: Executable|str)

通过语句获取所有数据,statement可以是Executable对象或str类型的SQL语句。

通过语句获取单条数据

通过语句获取单条数据

fetchone(statement: Executable|str)

通过语句获取单条数据,statement可以是Executable对象或str类型的SQL语句。

查询数据

查询数据

select(table: Table, *where)

查询数据,Table对象参考MySQL表*where为查询条件,可以指定多个条件。

查询数据是否存在

查询数据是否存在

exist(table: Table, *where)

查询数据是否存在,Table对象参考MySQL表*where为查询条件,可以指定多个条件。

插入数据

插入数据

insert(table: Table, values: dict, commit: bool = True)

插入数据,Table对象参考MySQL表values为插入数据,commit为是否立即提交,默认为True

更新数据

更新数据

update(table: Table, values: dict, *where, commit: bool = True)

更新数据,Table对象参考MySQL表values为更新数据,*where为更新条件,可以指定多个条件,commit为是否立即提交,默认为True

删除数据

删除数据

delete(table: Table, *where, commit: bool = True)

删除数据,Table对象参考MySQL表*where为删除条件,可以指定多个条件,commit为是否立即提交,默认为True

执行语句

执行语句

execute(statement: Executable|str, commit: bool = True)

执行语句,Executable对象或str类型的SQL语句,commit为是否立即提交,默认为True

提交执行

提交执行

commit()

提交执行,在执行语句时,如果commitFalse,则需要手动提交。

获取数据库版本

获取数据库版本

get_version()

获取数据库版本。

查询表是否存在

查询表是否存在

table_exists(table: Table)

查询表是否存在,Table对象参考MySQL表

删除表

删除表

drop_table(table: Table)

删除表,Table对象参考MySQL表

获取表

获取表

get_tables()

获取所有表名。