python pymysql常用操作

安装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()

猜你喜欢

转载自blog.csdn.net/u012902518/article/details/106109741