【Python】Python连接数据库pmysql

Pymysql的连接

import pymysql #命名空间
from pprint import pprint
#pip3 install pymysql
#1.确保MySQL服务器是开启的状态
#2.确保云端服务器中没有防火墙拦截,iptables默认拦截3306端口
#3.确保MySQL中有一个可以进行远程连接的用户(默认的root用户是不行的)

#连接使用的是tcp,连接会发生3次'握手事件
'''
#SYN请求同步
#ACK确认
C---->SYN---->S
C<----ACK+SYN<----S
C----->ACK----->S
'''
#断开发生4次'挥手'
'''
C---->FIN---->S
C<----ACK<----S
#服务区断在传送数据
C<----FIN<----S
C----->ACK--->S
'''
#tcp链接已经被pymysql封装过了
#链接
conn = pymysql.Connect(host='10.11.52.96',
                       port=3306,
                       user='hal',
                       passwd='123456',
                       db='demo',
                       charset='utf8')
#对服务器开启了游标
#用于查询以后的数据存储的
#配置返回成list+dict类型
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#开始查询
sql = "select * from stuinfo join score using(sid)"
#执行sql语句,需要使用cursor
cursor.execute(sql)
#不好用,对象动态解析获取
# pprint(cursor.__dict__.get('_rows'))
#正确的打开方式
# pprint(cursor.fetchone())
# pprint(cursor.fetchmany(2))
pprint(cursor.fetchall())

#使用pymysql注意每次查询完毕以后,应该要把链接断开
cursor.close()
conn.close()

插入数据

import pymysql
from pprint import pprint

conn = pymysql.connect(host='10.11.52.96', user='hal', passwd="123456",
                 db='demo', port=3306)

cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)



sql = "insert into stuinfo(`sname`,`sex`,`age`,`city`,`seat`)value(%s,%s,%s,%s,%s)"


# cursor.execute(sql,('qwer','男',18,'上海',100))
# cursor.executemany(sql,[('abcd','男',18,'上海',100),('poiu','男',18,'上海',100)])

#获取new表中的主键
cursor.execute(sql,('qaz123','男',18,'上海',100))
conn.commit()
#获取id在commit以后
sid = cursor.lastrowid
#python中默认使用事务
sql = "select * from stuinfo where sid="+str(sid)


cursor.execute(sql)


pprint(cursor.fetchall())

cursor.close()
conn.close()

执行存储过程

import pymysql
from pprint import pprint

conn = pymysql.connect(host='10.11.52.96', user='hal', passwd="123456",
                 db='demo', port=3306)

cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)

cursor.callproc('pro_demo',(21,))

pprint(cursor.fetchall())

cursor.close()
conn.close()


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值