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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大数据平台展示可视化效果,echarts图表实战项目(源码50套)「建议收藏」

    大数据平台展示可视化效果,echarts图表实战项目(源码50套)「建议收藏」最近接了个任务需要用H5在前台两个大电视上做两页数据展示公司的产品数据,效果要高大上,充分展示咱们公司的实力,给各位来公司参观的大能们留下深刻的印象。还好之前接触过HTML5,所以第一时间想到就是echarts,这个框架对于数据展示尤其图表类处理的还是非常强大和炫酷的。说干就干,首先到官网上把框架下下来,各组件Demo和API都熟悉下,对于你想要的东西和效果心里有个底,就开始动工了。官网地址是:https://echarts.apache.org,里面的Demo都是代码和效果图文并貌,还可以在线修改

    2022年10月12日
    7
  • 最快的 Hexo 博客搭建方法

    最快的 Hexo 博客搭建方法

    2021年6月8日
    112
  • 局域网内不同网段的设备互相连接设置

    局域网内不同网段的设备互相连接设置这个问题是我在实际中遇到的,如下图所示,我的主机有一个公司内网的IP,可以自动获取,也可以设置固定IP,不管怎么样,网段是172.16.0.xxx,不同的部分只是这里的xxx,我的主机IP是172.16.0.83。但是有时候,我们会从别的地方拿过来一块开发板,而开发板内部的IP基本是写死的,假如这个IP是192.168.253.10,我们会使用一个交换机,然后把外网引进来,而我…

    2025年10月26日
    3
  • Python-画图(散点图scatter、保存savefig)及颜色大全「建议收藏」

    Python-画图(散点图scatter、保存savefig)及颜色大全「建议收藏」最近忙着写大论文,用Python画论文里一个示意图,效果还不错,顺便总结一下。一,直接上代码#-*-coding:utf-8-*-importnumpyasnpimportmatplotlib.pyplotaspltplt.rcParams[‘font.sans-serif’]=[‘SimHei’]plt.rcParams[‘axes.unicode_mi…

    2022年6月6日
    182
  • 二叉树性质盘点

    二叉树性质盘点==========================================================================================基础部分

    2022年5月6日
    43
  • [Linux]F5负载均衡器「建议收藏」

    [Linux]F5负载均衡器「建议收藏」F5负载均衡器是硬件的负载均衡设备F5配置最简单负载均衡,需要配置的参数有Node(节点)、Pool(资源池)、和VirtualServer(虚拟服务器),它们的关系是,先配置Node,然后配置V

    2022年8月2日
    5

发表回复

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

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