【Python】Pymyql模块的execute()总结

部署运行你感兴趣的模型镜像

Pymysql模块用于驱动在Python中驱动mysql数据库。

通过此模块可以直接写sql语句运行


基本用法

#! python3
# @Project:  mysite - sqlhelper.py
# @Info   :  提取sql的基本方法
import pymysql


def get_connection():
    """连接数据库"""
    # 连接数据库
    connect = pymysql.Connect(
        host='localhost',
        port=3306,
        user='root',
        passwd='123456',
        db='test1',
        charset='utf8'
    )
    # 获取游标(指定获取的数据格式,这里设定返回dict格式)
    return connect, connect.cursor(cursor=pymysql.cursors.DictCursor)


def select_all(sql, args=None):
    """查询所有"""
    conn, cursor = get_connection()
    cursor.execute(sql, args)
    results = cursor.fetchall()
    cursor.close()
    conn.close()
    return results


def select_one(sql, args):
    """查询一个"""
    conn, cursor = get_connection()
    cursor.execute(sql, args)
    result = cursor.fetchone()
    cursor.close()
    conn.close()
    return result


def update(sql, args):
    """修改数据"""
    conn, cursor = get_connection()
    cursor.execute(sql, args)
    conn.commit()
    cursor.close()
    conn.close()


def create(sql, args):
    """新增数据"""
    conn, cursor = get_connection()
    cursor.execute(sql, args)
    conn.commit()
    cursor.close()
    conn.close()


def delete(sql, args):
    """删除数据"""
    conn, cursor = get_connection()
    cursor.execute(sql, args)
    conn.commit()
    cursor.close()
    conn.close()


execute(sql,args)方法注意事项:

1、execute方法中sql语句占位符是%s,与mysql中的?不同。

2、%s必须用括号包裹,如:

insert into teacher(name) values (%s) 正确
insert into teacher(name) values %s 报错

3、args一般是list或tuple格式,如果只有一个参数,可直接传入

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

05-25
### EXECUTE 的定义与用法 #### 数据库中的 EXECUTE 命令 在数据库管理系统的上下文中,`EXECUTE` 是一种用于执行动态SQL语句的命令。它通常被用来运行存储过程或函数调用。对于像 Oracle 和 MySQL 这样的关系型数据库管理系统来说,`EXECUTE` 可能有不同的实现方式。 在 **Oracle** 中,`EXECUTE` 或 `EXEC` 关键字主要用于交互式工具(如 SQL*Plus)中快速测试存储过程或匿名PL/SQL块[^1]。例如: ```sql -- 调用一个无返回值的过程 EXEC my_procedure(param1 => 'value', param2 => 10); ``` 而在 **MySQL** 中,并不存在独立的 `EXECUTE` 命令,而是通过 `CALL` 来调用存储过程[^1]。然而,在某些情况下可以使用 `PREPARE` 和 `EXECUTE` 组合来处理动态SQL查询。下面是一个简单的例子: ```sql SET @s = CONCAT('SELECT SQRT(POW(', ?, ',2) + POW(', ?, ',2)) AS hypotenuse'); PREPARE stmt FROM @s; SET @a = 6; SET @b = 8; EXECUTE stmt USING @a, @b; -- 计算直角三角形斜边长度 DEALLOCATE PREPARE stmt; ``` #### 编程语言中的 EXECUTE 方法 除了直接应用于数据库外,许多高级编程语言也提供了自己的机制去支持类似的“execute”行为。比如 Java JDBC API 提供了一个名为 `execute()` 的方法,该方法允许开发者发送任意类型的 SQL 请求给目标数据库服务器并获取响应状态。 以下是基于Java的一个简单实例展示如何利用Connection对象创建Statement并通过其execute()方法提交一条DDL/DML语句至后台数据库引擎进行解析和执行[^2]: ```java try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement()) { String sqlCreateTable = "CREATE TABLE IF NOT EXISTS Employees (" + "id INT PRIMARY KEY AUTO_INCREMENT," + "name VARCHAR(50)," + "salary DECIMAL(10, 2)" + ")"; boolean isResultSet = stmt.execute(sqlCreateTable); // 执行建表语句 System.out.println("Table created? " + !isResultSet); } catch (SQLException e) { e.printStackTrace(); } ``` 同样地,在 Python 使用 pymysql 库连接到 MySQL 数据源时也可以发现相似的操作模式[^3]: ```python import pymysql.cursors connection = pymysql.connect(host='localhost', user='root', password='', database='testdb') with connection.cursor() as cursor: create_table_sql = """ CREATE TABLE IF NOT EXISTS employees ( id INT AUTO_INCREMENT, name VARCHAR(50), salary FLOAT, PRIMARY KEY(id) ) """ result = cursor.execute(create_table_sql) # 返回受影响行数或者None print(f"Result of execution: {result}") ``` 以上就是关于 EXECUTE 在不同环境下的基本概念及其实际应用案例介绍。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值