基于pymysql的MYSQL数据库操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于pymysql的MYSQL数据库操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1954字,纯文字阅读大概需要3分钟。
内容图文
![基于pymysql的MYSQL数据库操作](/upload/InfoBanner/zyjiaocheng/876/af938bf1efa6490aba2284c919c27cb6.jpg)
一、机制
pymysql库的操作有点类似os.system(),需要直接给出mysql语句,会返回影响行数、数据等信息。
二、安装库及创建数据库、表
PyMySQL-0.9.3 (至少安装这个版本以上,否则会在connect时报错)
为进行试验,绕开一些权限的问题,创建了新的数据库及表
create database test_databases;
create table newtable(key1 char(20) NOT NULL,key2 int(11) NOT NULL);
这里实验的表名为newtable,具体信息如下:
三、基本操作
注意对一行操作和对N行操作的不同。
注意游标的移动及类型。
import pymysql
# 创建连接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='3gynj20J', db='test_databases')
# # 创建游标,返回元祖型数据
# cursor = conn.cursor()
# 创建游标,返回字典型数据
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
#增1
effect_row = cursor.execute("insert into newtable values('a',1)")
print(effect_row)
#增N
effect_row = cursor.executemany("insert into newtable values(%s,%s)",[('b',2),('c',3)])
print(effect_row)
#改
effect_row = cursor.execute("update newtable set key1='A' where key2=1")
print(effect_row)
# 注意mysql的fetch*会使cursor查一条少一条,游标自动向后移动,row_1和row_N是不重复的
#查1
cursor.execute("select * from newtable")
row_1 = cursor.fetchone()
print(row_1)
#查N
row_N = cursor.fetchmany(2)
#查all
row_all = cursor.fetchall()
print(row_1,row_N,row_all)
# print(cursor) # 是一个对象,不是list,<pymysql.cursors.Cursor object at 0x0000000002A51AC8>
# for i in cursor:
# print(i)
#查某个位置开始的几个
# cursor.scroll(1,mode='relative') # 相对当前位置移动
cursor.scroll(2,mode='absolute') # 相对绝对位置移动
row_1 = cursor.fetchone()
print(row_1)
四、常见报错
1、KeyError: 255
安装更高版本的pymysql。pip install --upgrade PyMySQL
https://www.jianshu.com/p/f69e846558ab
2、pymysql.err.OperationalError: (1142, "UPDATE command denied to user 'root'@'localhost' for table 'status_by_user'")
对于mysql安装时自带的数据库及表,可以进行查询,但无法修改的问题,可以自己创建数据库及表。
https://www.cnblogs.com/aylin/p/5770888.html
内容总结
以上是互联网集市为您收集整理的基于pymysql的MYSQL数据库操作全部内容,希望文章能够帮你解决基于pymysql的MYSQL数据库操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。