介绍:mysql
Python中用于链接MySQL数据库的一种第三方工具库。sql
安装:数据库
经过命令pip install pymysql安装,在Python3中能够经过pip3来安装。工具
链接MySQL数据库:fetch
链接以前的准备工做:spa
1,要有一个MySQL数据库,而且已经启动;code
2,你要知道数据库的地址,用户名和密码;对象
3,你的主机拥有操做目标数据库的权限。blog
基本地链接使用:事务
# 导入PyMySQL模块 import pymysql # 链接database conn = pymysql.connect(host="你的数据库地址", user="用户名", password="密码", database="数据库名", charset="utf8") # charset="utf8" 不能写做utf-8 # 获得一个能够执行SQL语句的对象 cursor = conn.cursor() # 添加参数cursor=pymysql.cursors.DictCursor,能够设定执行SQL语句的返回为字典格式 # 定义要执行的SQL语句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 执行SQL语句 cursor.execute(sql) # 关闭光标对象 cursor.close() # 关闭数据库链接 conn.close()
增删改查:
基本格式
import pymysql conn = pymysql.connect(host="你的数据库地址", user="用户名", password="密码", database="数据库名", charset="utf8") cursor = conn.cursor() sql = "Mysql增删改查语句" cursor.execute(sql) conn.commit() # 增删改须要提交事务 cursor.close() conn.close()
若是要动态操做数据,能够在SQL语句中使用%s格式化输出。例如:
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" username = "tom" age = 18 cursor.execute(sql, [username, age])
若是要获取新添加的数据的ID,能够在提交事务后经过lastrowid来实现。
cursor.execute(sql) conn.commit() # 提交以后,获取最后一条数据的ID last_id = cursor.lastrowid
查询结果获取
1,获取单条数据
# 执行SQL语句 cursor.execute(sql) # 获取单条查询数据 ret = cursor.fetchone()
2,获取多条数据
# 执行SQL语句 cursor.execute(sql) # 获取所有查询数据 ret = cursor.fetchall() # 还能够获取指定数量的数据 ret = cursor.fetchmany(3)
批量执行
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" date = [(tom, 18), (jerry, 18)] cursor.executemany(sql, data)
操做失败回滚:经过异常处理来完成。
try: # 执行SQL语句 cursor.execute(sql) # 提交事务 conn.commit() except Exception: # 有异常,回滚事务 conn.rollback()