mysql数据库增加模块_第二百七十九节,MySQL数据库-pymysql模块操作数据库

本文详细介绍了如何使用Python的pymysql模块连接并操作MySQL数据库,包括建立连接、创建游标、执行SQL(插入、更新、查询等)、提交数据以及关闭连接。示例代码涵盖了一次性执行SQL、批量执行SQL和获取自增ID等常见操作。
摘要由CSDN通过智能技术生成

MySQL数据库-pymysql模块操作数据库

pymysql模块是python操作数据库的一个模块

connect()创建数据库链接,参数是连接数据库需要的连接参数

使用方式:

模块名称.connect()

参数:

host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码

cursor()创建数据库操作游标,无参

使用方式:

游标变量.cursor()

execute()操作数据库,参数1 sql语句,参数2 字符串占位符变量

使用方式:

游标变量.execute()

execute()操作数据库会返回,操作数据库后影响的行数,我们可以以此判断是否操作成功

commit()提交数据到数据库,无参

使用方式:

创建数据库链接变量.commit()

close()关闭游标

使用方式:

游标变量.close()

close()关闭数据库

使用方式:

创建数据库变量.close()

向数据库添加一条数据

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi')#创建游标

cursor =conn.cursor()#执行SQL,并返回收影响行数

effect_row = cursor.execute("INSERT INTO db1(yhm,mim) VALUES('adc8868','279819')") #添加一条数据

print(effect_row) #返回影响行数

#提交,不然无法保存新建或者修改的数据

conn.commit()#关闭游标

cursor.close()#关闭连接

conn.close()

execute(sql语句%s,(占位符变量))执行sql语句时的占位符使用

execute()操作一条数据

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi')#创建游标

cursor =conn.cursor()#执行SQL,并返回收影响行数

effect_row = cursor.execute("INSERT INTO db1(yhm,mim) VALUES(%s,%s)",('adc279819',279819)) #添加一条数据

print(effect_row) #返回影响行数

#提交,不然无法保存新建或者修改的数据

conn.commit()#关闭游标

cursor.close()#关闭连接

conn.close()

397f9fc0b9cd6847cc649d6b4cc2d458.png

executemany(sql语句,[(占位符变量),(占位符变量)])执行sql语句时的占位符使用

executemany()操作多条数据

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi')#创建游标

cursor =conn.cursor()#执行SQL,并返回收影响行数

effect_row = cursor.executemany("INSERT INTO db1(yhm,mim) VALUES(%s,%s)",[('a1',123),('a2',456),('a3',789)])print(effect_row) #返回影响行数

#提交,不然无法保存新建或者修改的数据

conn.commit()#关闭游标

cursor.close()#关闭连接

conn.close()

1f91cb57c9086bf47a497c65466078f5.png

查询数据库数据

注意:操作数据库的增、删、改都需要commit()提交数据到数据库,而查询是不需要commit()的

fetchall()获取游标查询数据库里的数据,返回元祖

使用方式:

游标变量.fetchall()

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')#创建游标

cursor =conn.cursor()#执行SQL,并返回收影响行数

effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")

shuju= cursor.fetchall() #获取游标里的数据

print(shuju)#提交,不然无法保存新建或者修改的数据#conn.commit()

#关闭游标

cursor.close()#关闭连接

conn.close()

7e2e8a2a069e6f52d1742b22658e1e8f.png

查询数据库内容时更改游标返回字典类型数据【推荐】

返回字典类型将数据库表的列(字段)作为键返回

默认查询数据时游标返回的元祖类型,如果想返回字典类型就需要设置游标

cursor=pymysql.cursors.DictCursor设置游标返回字典类型数据,当做参数写在execute()里,execute(cursor=pymysql.cursors.DictCursor)

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')#创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#执行SQL,并返回收影响行数

effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")

shuju= cursor.fetchall() #获取游标里的数据

print(shuju)#提交,不然无法保存新建或者修改的数据#conn.commit()

#关闭游标

cursor.close()#关闭连接

conn.close()

39a78e629321348a95d366bd3d47fcd3.png

fetchone()获取游标里第一条数据,如果多次执行fetchone()就依次获取数据

使用方式:

游标变量.fetchone()

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')#创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#执行SQL,并返回收影响行数

effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")

shuju= cursor.fetchone() #获取游标里第一条数据

print(shuju)#提交,不然无法保存新建或者修改的数据#conn.commit()

#关闭游标

cursor.close()#关闭连接

conn.close()

31e5e2a98fd9c2aa4f8407f99b4399a7.png

fetchmany()获取游标里,指定条数据,参数是要获取数据的条数

使用方式:

游标变量.fetchmany(3)

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')#创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#执行SQL,并返回收影响行数

effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")

shuju= cursor.fetchmany(3) #获取游标里,指定条数据

print(shuju)#提交,不然无法保存新建或者修改的数据#conn.commit()

#关闭游标

cursor.close()#关闭连接

conn.close()

9ba403eadc17c7d2cd7298932bc5e1ae.png

移动游标里数据指针获取对应数据

scroll(1,mode='relative')相对当前位置移动

使用方式:

游标变量.scroll(1,mode='relative')

第一个参数正数相对当前位置向下移动数值对应指针,第一个负数相对当前位置向上移动数值对应指针

scroll(2,mode='absolute')相对绝对位置移动

使用方式:

游标变量.scroll(2,mode='absolute')

将指针位置移动到第一个参数数值对应指针

相对当前位置移动获取数据mode='relative'

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')#创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#执行SQL,并返回收影响行数

effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")

shuju= cursor.fetchone() #获取游标里第一条数据,指针在第一个位置

shuju = cursor.fetchone() #指针在第二个位置

shuju = cursor.fetchone() #指针在第三个位置

print(shuju) #打印应该是第三条

cursor.scroll(-2,mode='relative') #调整指针,相对当前位置向上移动2位

shuju = cursor.fetchone() #指针第二位

print(shuju)#提交,不然无法保存新建或者修改的数据#conn.commit()

#关闭游标

cursor.close()#关闭连接

conn.close()

c0e5d064cef1fb0d864feb538ab7e264.png

相对绝对位置移动mode='absolute'

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')#创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#执行SQL,并返回收影响行数

effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")

shuju= cursor.fetchone() #获取游标里第一条数据,指针在第一个位置

shuju = cursor.fetchone() #指针在第二个位置

shuju = cursor.fetchone() #指针在第三个位置

print(shuju) #打印应该是第三条

cursor.scroll(3,mode='absolute') #调整指针,相对绝对位置移动3位

shuju = cursor.fetchone() #指针第四位

print(shuju)#提交,不然无法保存新建或者修改的数据#conn.commit()

#关闭游标

cursor.close()#关闭连接

conn.close()

9b9b5ce72f2e3bcaa05d0304d149c6ff.png

添加数据库时获取到添加数据的自增id

lastrowid获取添加数据时的自增id

使用方式:

游标变量.lastrowid

注意:如果是添加的多条数据,获取到的自增id是最后一条的自增id

#!/usr/bin/env python#-*- coding:utf-8 -*-

importpymysql#创建连接

"""host=数据库ip

port=数据库端口

user=数据库用户名

passwd=数据库密码

db=数据库名称

charset=数据库编码"""conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')#创建游标

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#执行SQL,并返回收影响行数

effect_row = cursor.execute("INSERT INTO db1 (yhm,mim) VALUES (%s,%s)",('bb3',8889))

zzid= cursor.lastrowid #获取添加数据时的自增id

print(zzid) #打印自增id#提交,不然无法保存新建或者修改的数据

conn.commit()#关闭游标

cursor.close()#关闭连接

conn.close()

8b509d71709887c0a537047669e7c0dd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值