python操作数据库
一、python操作mysql数据库
python3中操作mysql数据需要安装一个第三方模块,pymysql,使用pip install pymysql安装即可,在python2中是MySQLdb模块,在python3中没有MySQLdb模块了,所以使用pymysql。
在Navicat连接mysql,并设置密码为123456,新建一个students的表格,设置id为主键并自动递增,如下:
在python中操作数据库,执行MySQL
import pymysql
# 创建连接,指定数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='szz',charset='utf8')
# 创建游标
cursor = conn.cursor()
# 执行SQL,更新ID=1的name,并返回收影响行数
effect_row = cursor.execute("update students set name = 'jay' where id = 1;")
print(effect_row)
conn.commit()
# 执行SQL,并返回受影响行数
effect_row = cursor.execute("update students set name = 'niuhy' where id = %s;", (1,))
print(effect_row)
# 执行SQL,插入2条新数据,并返回受影响行数
effect_row = cursor.executemany("insert into students (name,age,sex) values (%s,%s,%s); ", [("andashu",18,'boy'),("zouweiwei",20,'boy')])
#执行select语句
cursor.execute("select * from students;")
#获取查询结果的第一条数据,返回的是一个元组
row_1 = cursor.fetchone()
print(row_1)
# 获取前n行数据
row_2 = cursor.fetchmany(3)
print(row_2)
# 获取所有数据
row_3 = cursor.fetchall()
print(row_3)
# 提交,不然无法保存新建或者修改的数据
conn.commit()
# 获取最新自增ID
new_id = cursor.lastrowid
print(new_id)
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
下面是执行结果:
操作后的数据库: