python怎么安装pymysql_python pymysql安装「建议收藏」

python怎么安装pymysql_python pymysql安装「建议收藏」==================mysql.connector===================最近发现mysql5.7有一个bug会引起pymysql报警,lib\site-packages\pymysql\cursors.py:170:Warning:(1265,”Datatruncatedforcolumn’使用mysql.connector可以避免该问题,安装pyth…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

==================mysql.connector===================

最近发现mysql5.7有一个bug会引起pymysql报警,

lib\site-packages\pymysql\cursors.py:170: Warning: (1265, “Data truncated for column ‘

使用mysql.connector可以避免该问题,安装

python -m pip install mysql-connector

连接数据库

import mysql.connector

# 接收参数:user, password, host, port=3306, unix_socket and database

# 返回一个MySQLConnection Object

conn = mysql.connector.connect(

host=’localhost’,

user=’root’,

password=’root’,

database=’test’

)

==================pymysql===================

由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块。

pymysql 模块可以通过 pip 安装。但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块。

[File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按钮]

875028-20161002000403750-123452875.png

由于Python统一了数据库连接的接口,所以 pymysql 和 MySQLdb 在使用方式上是类似的:

copycode.gif

pymysql.Connect()参数说明

host(str): MySQL服务器地址

port(int): MySQL服务器端口号

user(str): 用户名

passwd(str): 密码

db(str): 数据库名称

charset(str): 连接编码

connection对象支持的方法

cursor() 使用该连接创建并返回游标

commit() 提交当前事务

rollback() 回滚当前事务

close() 关闭连接

cursor对象支持的方法

execute(op) 执行一个数据库的查询命令

fetchone() 取得结果集的下一行

fetchmany(size) 获取结果集的下几行

fetchall() 获取结果集中的所有行

rowcount() 返回数据条数或影响行数

close() 关闭游标对象

copycode.gif

==================MySQL===================

首先在连接数据库之前,先创建一个交易表,方便测试 pymysql 的功能:

copycode.gif

DROP TABLE IF EXISTS `trade`;

CREATE TABLE `trade` (

`id` int(4) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(6) NOT NULL COMMENT ‘用户真实姓名’,

`account` varchar(11) NOT NULL COMMENT ‘银行储蓄账号’,

`saving` decimal(8,2) unsigned NOT NULL DEFAULT ‘0.00’ COMMENT ‘账户储蓄金额’,

`expend` decimal(8,2) unsigned NOT NULL DEFAULT ‘0.00’ COMMENT ‘账户支出总计’,

`income` decimal(8,2) unsigned NOT NULL DEFAULT ‘0.00’ COMMENT ‘账户收入总计’,

PRIMARY KEY (`id`),

UNIQUE KEY `name_UNIQUE` (`name`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

INSERT INTO `trade` VALUES (1,’乔布斯’,’18012345678′,0.00,0.00,0.00);

copycode.gif

==================Python===================

使用Python脚本实现增删改查和事务处理,源码如下:

copycode.gif

import pymysql.cursors

# 连接数据库

connect = pymysql.Connect(

host=’localhost’,

port=3310,

user=’woider’,

passwd=’3243′,

db=’python’,

charset=’utf8′

)

# 获取游标

cursor = connect.cursor()

# 插入数据

sql = “INSERT INTO trade (name, account, saving) VALUES ( ‘%s’, ‘%s’, %.2f )”

data = (‘雷军’, ‘13512345678’, 10000)

cursor.execute(sql % data)

connect.commit()

print(‘成功插入’, cursor.rowcount, ‘条数据’)

# 修改数据

sql = “UPDATE trade SET saving = %.2f WHERE account = ‘%s’ “

data = (8888, ‘13512345678’)

cursor.execute(sql % data)

connect.commit()

print(‘成功修改’, cursor.rowcount, ‘条数据’)

# 查询数据

sql = “SELECT name,saving FROM trade WHERE account = ‘%s’ “

data = (‘13512345678’,)

cursor.execute(sql % data)

for row in cursor.fetchall():

print(“Name:%s\tSaving:%.2f” % row)

print(‘共查找出’, cursor.rowcount, ‘条数据’)

# 删除数据

sql = “DELETE FROM trade WHERE account = ‘%s’ LIMIT %d”

data = (‘13512345678’, 1)

cursor.execute(sql % data)

connect.commit()

print(‘成功删除’, cursor.rowcount, ‘条数据’)

# 事务处理

sql_1 = “UPDATE trade SET saving = saving + 1000 WHERE account = ‘18012345678’ “

sql_2 = “UPDATE trade SET expend = expend + 1000 WHERE account = ‘18012345678’ “

sql_3 = “UPDATE trade SET income = income + 2000 WHERE account = ‘18012345678’ “

try:

cursor.execute(sql_1) # 储蓄增加1000

cursor.execute(sql_2) # 支出增加1000

cursor.execute(sql_3) # 收入增加2000

except Exception as e:

connect.rollback() # 事务回滚

print(‘事务处理失败’, e)

else:

connect.commit() # 事务提交

print(‘事务处理成功’, cursor.rowcount)

# 关闭连接

cursor.close()

connect.close()

copycode.gif

==================测试结果===================

875028-20161002001957094-148578946.png

转载:https://www.cnblogs.com/hank-chen/p/6624299.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234391.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月5日 下午9:43
下一篇 2025年6月5日 下午10:22


相关推荐

  • EVE-NG模拟器升级并添加H3C设备

    EVE-NG模拟器升级并添加H3C设备EVE-NG模拟器升级并添加H3C系列模板和镜像欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它…

    2022年5月23日
    227
  • mysql左连接 右连接 内连接的区别[通俗易懂]

    mysql左连接 右连接 内连接的区别[通俗易懂]1.内连接,显示两个表中有联系的所有数据;2.左链接,以左表为参照,显示所有数据,右表中没有则以null显示3.右链接,以右表为参照显示数据,,左表中没有则以null显示例子:————————————————-a表idnameb表idjobparent_…

    2022年6月1日
    37
  • PHP之——PHPStorm配置PHP运行环境

    PHP之——PHPStorm配置PHP运行环境至此 PHPStorm 配置 PHP 运行环境完成

    2026年1月26日
    2
  • 【Fungus笔记】No.3:与 Sprite(精灵) 交互,Click(点击) or Drag(拖拽)

    【Fungus笔记】No.3:与 Sprite(精灵) 交互,Click(点击) or Drag(拖拽)当 Block 段落 的响应事件为 Sprite 类时 可以通过跟 Sprite 精灵 的交互来执行指令 交互行为包括拖拽和点击两种 nbsp 首先是 ObjectClicke 点击 设置为点击事件后 它要求我们选定一个 nbsp ClickableObj nbsp 作为被点击物体 除了 nbsp ClickableObj nbsp 外 我们还可以看到与拖拽事件相关的其他物体 Fungus 默认给

    2026年3月18日
    2
  • linux取消设置环境变量,linux设置环境变量

    linux取消设置环境变量,linux设置环境变量1 临时生效性 只对当前会话有效 exporthttp proxy socks 192 168 0 1 10808 2 永久生效性 1 在 etc profile 尾部添加 这个文件是每个用户登录时都会运行的环境变量 exporthttp proxy socks 192 168 0 106 10808 exporthttps proxy socks 192 168 0 106

    2026年3月20日
    2
  • IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)

    IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)IntelliJIDEA使用教程(总目录篇)我们用Eclipse或者IntelliJIDEA编程,有时候需要将整个项目的某个字符串替换成其他的。全局搜索我会,我还给调成ctrl+g了呢,但是遇到要全局(整个项目)替换字符串。哎哟,我有点蒙了。这不换了编辑器吗。我用的是eclipse的keymap而且电脑又不是mac。那么问题来啦。怎么找快捷键呢。如下;额,顺便说下…

    2025年6月9日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号