pymysql操作mysql数据库
- 安装pymysql
pip install pymysql
pymysql操作数据库
1.连接数据库 使用Connect方法连接数据库 pymysql.Connections.Connection(host=None, user=None, password='', database=None, port=0, charset='') 参数说明: host -- 数据库服务器所在的主机。 user -- 登录用户名。 password -- 登录用户密码。 database -- 连接的数据库。 port -- 数据库开放的端口。(默认: 3306) charset -- 连接字符集。 返回值: 返回连接对象
例子: link = pymysql.Connect(host='localhost', port=3306, user='root', password='123456', db='shop', charset='utf8')
方法 | 说明 |
---|---|
begin() | 开启事务 |
commit() | 提交事务 |
cursor(cursor=None) | 创建一个游标用来执行sql语句 |
rollback() | 回滚事务 |
close() | 关闭连接 |
select_db(db) | 选择数据库 |
- 连接对象方法
2.创建游标
cursor = link.cursor() print(cursor.rowcount) #打印受影响行数
方法 | 说明 |
---|---|
close() | 关闭游标 |
execute(query, args=None) | 执行单条语句,传入需要执行的语句,是string类型;同时可以给查询传入参数,参数可以是tuple、list或dict。执行完成后,会返回执行语句的影响行数。 |
fetchone() | 取一条数据 |
fetchmany(n) | 取多条数据 |
fetchall() | 取所有数据 |
3.执行sql语句
# 执行sql语句
sql = 'select * from user1'
# 执行完sql语句,返回受影响的行数 num = cursor.execute(sql)
4.获取结果集 result1 = cursor.fetchone() print(result1)
5.关闭连接 cursor.close() link.close()
pymysql中事务处理
pymysql默认是没有开启自动提交事务,所以我们如果进行增、删、改,就必须手动提交或回滚事务。
sql
sql = 'delete from user where id=%s' % user_id
# 如果要执行增删改语句的时候,下面的就是固定格式
try:
cursor.execute(sql)
# 如果全部执行成功,提交事务
link.commit()
print(cursor.lastrowid) #获取最后插入记录的自增id号
except Exception as e:
print(e)
link.rollback()
finally:
cursor.close()
link.close()
案例
使用pymysql向goods表中添加一条数据:
python
from pymysql import *
def main():
# 创建connection连接
conn = connect(host='localhost', port=3306, database='shop', user='root',
password='root', charset='utf8')
# 获取cursor对象
cs1 = conn.cursor()
# 执行sql语句
query = "insert into goods(id,name,price,num) values(%s,%s,%s,%s)"
cs1.execute(query,(4,'蒙牛酸奶',13.9,88))
# 提交之前的操作,如果之前已经执行多次的execute,那么就都进行提交
conn.commit()
# 关闭cursor对象
cs1.close()
# 关闭connection对象
conn.close()
if __name__ == '__main__':
main()
当然也可以删除、查询、修改表中的数据,但是无论是怎么操作,都需要创建连接并在结束的时候关闭连接对象。