python-PyMySQL(MySQL交互)

11 篇文章 1 订阅


模块说明

  • pymysql模块是通过游标操作数据库的,除了查询语句以外,增删改都需要commit提交语句才能生效。当然,也可以设置事物自动提交。
connect.autocommit(True)		#connect为创建链接变量

安装模块,cmd终端命令行:pip3 install pymysql
导入模块import pymysql

创建链接

connect = pymysql.connect(
	host = 'localhost',       #数据库服务器地址,默认localhost
	user = 'root',        #用户名,默认为当前程序运行用户
	password = '123456',      #登录密码,默认为空字符串
	database = 'yy',      #默认操作的数据库
	port = 3306,      #数据库端口,默认为3306,注意这里传入的是整数
	charset = 'utf8')      #数据库编码                      

游标

pymsql操作数据库是通过游标操作的。

游标类型:

  • Cursor:默认,返回元组类型
  • DictCursor:字典类型
  • SSCursor:无缓冲元组类型
  • SSDictCursor:无缓冲字典类型
'''通过cursor参数指定游标类型,也可以在创建链接时指定cursorclass参数,参数内容跟这里的cursor一样。'''
cursor = connection.cursor(cursor=pymysql.cursors.DictCursor)

关闭游标、关闭链接

使用后记得关闭链接,可用with语句

connect.close()		#关闭链接
cursor.close()		#关闭游标

提交事务

增删改时提交才生效

connect.commit()

事务回滚

connect.rollback()

执行sql语句

比如:增删改查等语句, args可以是tuple、list、dict,通过args传参可以防止sql注入,sql的null传参:None。

  • cursor.execute(sql, args) 执行单条语句
  • cursor.executemany(sql, args) 可以批量执行
'''cursor.execute'''
cursor.executemany('insert into qq_name values(567,"test")')
connect.commit()

'''cursor.executemany'''
try:
    cursor.executemany('insert into qq_name values(%s,%s)',((567,'g'),(789,'y')))
    connect.commit()
    print('Done!')
except Exception as e:
    connect.rollback()		#发生错误时回滚。
    print('似乎发生了意外的事情~~')
finally:
	connect.close()		#关闭数据库链接

移动游标

'''相对当前位置移动'''
cursor.scroll(1, mode='relative') 
'''相对绝对位置移动'''
cursor.scroll(2, mode='absolute')  

查询相关

table = cursor.execute("select * from user;")

'''fetchone:取出一条数据'''
for each in table:		#遍历逐条取出数据记录
	print(cursor.fetchone())		

'''fetchmany(size):取出多条记录'''
cursor.fetchmany(2)		#取出两条记录
cursor.scroll(1, mode='relative')		#往下偏移一个位置
cursor.fetchmany(2)		#取出第四条和第五条记录

'''fetchall():取出全部数据'''
cursor.fetchall()

'''rowcount:返回影响的行数,只读'''
cursor.rowcount

与pandas交互

# connect为pymysql创建的链接对象。
user = pd.read_sql('select * from user',connect)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值