安装PyMySql
pip3 install pymysql
建立数据库连接
# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(
host=“你的数据库地址”,
user=“用户名”,password=“密码”,
database=“数据库名”,
charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor() # 执行完毕返回的结果集默认以元组显示,
cursor = conn.cursor(pymysql.cursors.DictCursor) #以字典方式返回数据,带字段名, 操作方便
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
#cursor = conn.cursor()
游标类型
- DictCursor: 字典类型
- DictCursorMixin: 支持自定义的游标类型,需先自定义才可使用
- SSCursor: 无缓冲元组类型
- SSDictCursor: 无缓冲字典类型
# 执行SQL语句
cursor.execute("insert into user (name, age) values (%s, %s)", ("Marsen", '26'))
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()
cursor.lastrowid 获取最新插入数据id
撤销数据cursor.rollback()
获取结果集中的一条 cursor.fetchone() 返回一个元组 如 (1,‘妲己’,18),因为在获取数据时,游标是移动的,所以前面取过的数据,后面不会再取了
获取全部 cursor.fetchall()
cursor.rowcount 返回数据的数量或者操作的数据的数量
获取结果集中的一条 cursor.fetchmany(2) 返回一个元组 如 ((1,‘妲己’,18),2,‘公孙离’,20))
cursor.scroll #数据位置移动,方便反复移动数据指针位置,反复读取操作数据
cur.scroll(0,mode='absolute') # 相对绝对位置移动, 移动到首行
dbdata = cur.fetchone(),#位置自动移动到下一行
print(dbdata)
cur.scroll(1,mode='relative') # 相对当前位置移动
dbdata = cur.fetchone()
print(dbdata)
cur.scroll(0,mode='absolute') # 相对绝对位置移动, 移动到首行
cur.scroll(2,mode='absolute') # 相对绝对位置移动\
dbdata = cur.fetchall()
print(dbdata)
cursor.callproc()调用存储过程,暂不详展,还未用过
数据库连接配置文件分离
mysql.py:
import pymysql
# 打开数据库连接
mysql_db = pymysql.connect("localhost","root","root","python_bbs", charset='utf8')
cur = mysql_db.cursor(pymysql.cursors.DictCursor)#s使用字典游标,带字段名,方便操作
其它py文件
from mysql import mysql_db,cur
sql = "select * from user"
cur = mysql_db.cursor()
dbre = cur.execute(sql)
cur.close()
mysql_db.close()