当前位置: 首页 > news >正文

[python]mysqlclient常用命令

mysqlclient是Python的一个MySQL数据库驱动程序,它是Python DB API v2.0的实现之一。

它提供了一组函数和方法来连接MySQL数据库,并执行各种数据库操作。

连接到MySQL数据库:

Bash

import MySQLdbconn = MySQLdb.connect(host='localhost', user='user', passwd='password', db='database')

创建游标对象:

Bash

cursor = conn.cursor()

执行SQL查询:

cursor.execute('SELECT * FROM table')

获取查询结果:

result = cursor.fetchall()

插入数据:

cursor.execute('INSERT INTO table (column1, column2) VALUES (%s, %s)', ('value1', 'value2'))

提交事务:

conn.commit()

回滚事务:

conn.rollback()

获取受影响的行数:

affected_rows = cursor.rowcount

获取插入的自增ID:

last_insert_id = cursor.lastrowid

更新数据:

cursor.execute('UPDATE table SET column1 = %s WHERE column2 = %s', ('new_value', 'condition'))

删除数据:

cursor.execute('DELETE FROM table WHERE column = %s', ('value',))

批量插入数据:

data = [('value1', 'value2'), ('value3', 'value4')]
cursor.executemany('INSERT INTO table (column1, column2) VALUES (%s, %s)', data)

获取字段信息:

fields = cursor.description

获取表的主键:

cursor.execute('SHOW KEYS FROM table WHERE Key_name = "PRIMARY"')
primary_key = cursor.fetchone()[0]

获取表的索引:

cursor.execute('SHOW INDEX FROM table')indexes = cursor.fetchall()

获取表的创建语句:

cursor.execute('SHOW INDEX FROM table')
indexes = cursor.fetchall()

执行存储过程:

cursor.callproc('procedure_name', args)

获取存储过程的输出参数:

output_param = cursor.fetchone()

执行事务:

try:cursor.execute('START TRANSACTION')# 执行其他SQL语句cursor.execute('COMMIT')
except:cursor.execute('ROLLBACK')

设置字符集:

conn.set_charset('utf8')

设置自动提交模式:

conn.autocommit(True)

设置超时时间:

conn.set_timeout(10)

设置查询缓存:

conn.query('SET SESSION query_cache_type = ON')

设置连接池大小:

conn.set_max_connections(10)

关闭游标对象:

cursor.close()

关闭数据库连接:

conn.close()

使用上下文管理器连接数据库:

import MySQLdbwith MySQLdb.connect(host='localhost', user='user', passwd='password', db='database') as conn:cursor = conn.cursor()# 执行数据库操作

使用上下文管理器执行事务:

import MySQLdbwith MySQLdb.connect(host='localhost', user='user', passwd='password', db='database') as conn:with conn.cursor() as cursor:try:cursor.execute('START TRANSACTION')# 执行其他SQL语句cursor.execute('COMMIT')except:cursor.execute('ROLLBACK')

设置连接属性:

conn.set_session(sql_mode='ANSI')

获取连接属性:

sql_mode = conn.get_session().get('sql_mode')

设置连接超时时间:

conn.set_connect_timeout(10)

获取连接超时时间:

connect_timeout = conn.get_connect_timeout()

设置查询超时时间:

conn.set_query_timeout(10)

获取查询超时时间:

query_timeout = conn.get_query_timeout()

设置读取超时时间:

conn.set_read_timeout(10)

获取读取超时时间:

read_timeout = conn.get_read_timeout()

设置写入超时时间:

conn.set_write_timeout(10)

获取写入超时时间:

write_timeout = conn.get_write_timeout()

打开SSL连接:

conn.ssl_set(ca='path/to/ca.pem', cert='path/to/cert.pem', key='path/to/key.pem')

获取SSL连接状态:

ssl_enabled = conn.ssl_in_use()Python

执行带参数的SQL查询:

cursor.execute('SELECT * FROM table WHERE column = %s', ('value',))

执行带参数的SQL查询,并获取结果:

cursor.execute('SELECT * FROM table WHERE column = %s', ('value',))
result = cursor.fetchall()

获取查询结果的字段名:

fields = [desc[0] for desc in cursor.description]

获取查询结果的字段类型:

field_types = [desc[1] for desc in cursor.description]

使用连接池连接数据库:

import MySQLdb
from DBUtils.PersistentDB import PersistentDBdb_pool = PersistentDB(MySQLdb, host='localhost', user='user', passwd='password', db='database')
conn = db_pool.connection()
cursor = conn.cursor()
# 执行数据库操作

这些示例涵盖了mysqlclient模块的一系列功能,包括连接数据库、执行SQL语句、事务处理、批量插入、获取表信息等。希望对你有所帮助!

相关文章:

  • 力扣每日一题78:子集
  • pycharm远程连接Linux服务器
  • 【C++进阶】异常
  • 3D模型格式转换工具HOOPS Exchange对工业级3D产品HOOPS的支持与应用
  • 微服务初始和Nacos安装
  • 11.与JavaScript深入交流-[js一篇通]
  • 报错:Error: error:0308010C:digital envelope routines::unsupported
  • 用 docker 创建 jmeter 容器, 实现性能测试
  • 4.1 Bloom算法
  • 目标检测与图像识别分类的区别?
  • 图的深度优先遍历的六种应用附Java代码
  • 一体化模型图像去雨+图像去噪+图像去模糊(图像处理-图像复原-代码+部署运行教程)
  • (SpringBoot)第二章:Spring创建和使用
  • 矢量图形编辑软件illustrator 2023 mac中文软件特点
  • 微信开放平台账号
  • Angular 响应式表单 基础例子
  • Apache的80端口被占用以及访问时报错403
  • git 常用命令
  • IndexedDB
  • Python 反序列化安全问题(二)
  • select2 取值 遍历 设置默认值
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 猴子数据域名防封接口降低小说被封的风险
  • 记录:CentOS7.2配置LNMP环境记录
  • 记一次和乔布斯合作最难忘的经历
  • 经典排序算法及其 Java 实现
  • 我从编程教室毕业
  • 怎样选择前端框架
  • ​secrets --- 生成管理密码的安全随机数​
  • ()、[]、{}、(())、[[]]命令替换
  • (07)Hive——窗口函数详解
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2)(2.10) LTM telemetry
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)甲方乙方——赵民谈找工作
  • (转)重识new
  • (转载)hibernate缓存
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .Net7 环境安装配置
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .Net下的签名与混淆
  • /etc/fstab 只读无法修改的解决办法
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [2669]2-2 Time类的定义
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [IOI2018] werewolf 狼人
  • [JS]JavaScript 注释 输入输出语句
  • [LOJ 6213]「美团 CodeM 决赛」radar