pymysql的使用

一: 安装pymysql

pip3 install pymysql

二: 查询操作

import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost', user='root', password='123456', db='userinfo', port=3306)

# 使用cursor()方法获取操作游标
cur = db.cursor()

#1, 查询操作
# 编写sql,查询语句 s_info 对应的表名
sql = "select * from s_info"
try:
    cur.execute(sql)    # 执行sql语句

    # results = cur.fetchall()

    # 获取一行
    # result_one = cur.fetchone()
    # print(result_one)

    # 获取多个
    result_many = cur.fetchmany(3)
    print(result_many)
    # print(results) # 返回所有的数据一元组套元组的形式
    # print("id", "name", "pwd")
    # #遍历结果
    # for row in results:
    #     id = row[0]
    #     name = row[1]
    #     password = row[2]
    #     print(id, name, password)
except Exception as e:
    raise e
finally:
    db.close()

查询
View Code

在fetchone示例中,在获取行数据的时候,可以理解开始的时候,有一个行指针指着第一行的上方,获取一行,它就向下移动一行,所以当行指针到最后一行的时候,就不能再获取到行的内容,所以我们可以使用如下方法来移动行指针:

cursor.scroll(1,mode='relative')  # 相对当前位置移动
cursor.scroll(2,mode='absolute') # 相对绝对位置移动
第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动
# 1.Python实现用户登录
# 2.Mysql保存数据

import pymysql

# 1.连接
conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8')


# 2.创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

sql = 'select * from userinfo'
cursor.execute(sql)


# 查询第一行的数据
row = cursor.fetchone()
print(row) # (1, 'mjj', '123')

# 查询第二行数据
row = cursor.fetchone() # (3, '张三', '110')
print(row)

cursor.scroll(-1,mode='relative') #设置之后,光标相对于当前位置往前移动了一行,所以打印的结果为第二行的数据
row = cursor.fetchone() 
print(row)

cursor.scroll(0,mode='absolute') #设置之后,光标相对于首行没有任何变化,所以打印的结果为第一行数据
row = cursor.fetchone() 
print(row)

# 4.关闭游标
cursor.close()

# 5.关闭连接
conn.close()

#结果如下

{'id': 1, 'username': 'mjj', 'pwd': '123'}
{'id': 3, 'username': '张三', 'pwd': '110'}
{'id': 3, 'username': '张三', 'pwd': '110'}
{'id': 1, 'username': 'mjj', 'pwd': '123'}
View Code

三: 插入操作

import pymysql

#2 插入操作
db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='userinfo')

# 使用游标
cur = db.cursor()

sql_insert =  "insert into s_info(name, pwd) values('egon', '456')"

try:
    cur.execute(sql_insert)

    db.commit()
except Exception as e:
    db.rollback()
    raise e
finally:
    cur.close()
    db.close()

插入数据
View Code

四: 修改操作

import pymysql

# 获取数据库
db = pymysql.connect(host='localhost', user='root', password='123456', db='userinfo', port=3306)

# 获取游标
cur = db.cursor()

# sql改语句
sql = "update s_info set name=%s where id=7"
try:
    cur.execute(sql, "egon")
    db.commit()
except Exception as e:
    raise e
finally:
    cur.close()
    db.close()

改操作
View Code

五: 删除操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='userinfo')

cur = db.cursor()

sql = "delete from s_info where id=1"

try:
    cur.execute(sql)
    db.commit()
except Exception as e:
    raise e
finally:
    cur.close()
    db.close()
View Code
原文地址:https://www.cnblogs.com/zxmbky/p/9581092.html