Python3 MySQL 数据库连接 - PyMySQL 驱动
PyMySQL 安装
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。
PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。
如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:
$ pip3 install PyMySQL
数据库连接
import pymysql
connection=pymysql.connect(host="localhost",user="root",password="mysql") #打开数据库连接
db_cursor=connection.cursor() #使用cursor()方法创建一个游标对象cursor
db_cursor.execute("select version()") #使用execute()方法执行sql查询
data=db_cursor.fetchone() #使用fetchone()方法获取单条数据
print("database version:%s" %data)
connection.close() #关闭数据库连接
创建数据库表及插入操作
import pymysql
connection=pymysql.connect(host="localhost",user="root",password="mysql") #打开数据库连接
db_cursor=connection.cursor() #使用cursor()方法创建一个游标对象cursor
# 使用预处理语句创建表
sql="""CREATE TABLE contact(NAME VARCHAR(20),email VARCHAR(20),address VARCHAR(20),age INT)
"""
db_cursor.execute(sql)
# 关闭数据库连接
connection.close()
插入操作
把csv文件里的数据插入到表contact
import pymysql,csv
connection=pymysql.connect(host="localhost",user="root",password="mysql") #打开数据库连接
db_cursor=connection.cursor()
connection.select_db("test") #选择要操作的数据库
db_cursor.execute("delete from contact")
sql="""insert into contact(name,email,address,mobile) values('%s','%s','%s','%s')"""
try:
with open("test02.csv","r") as f: #将csv文件里的数据插入到表contact
result=csv.DictReader(f)
for i in result: #逐条执行插入
db_cursor.execute(sql %(i['name'],i['email'],i["address"],i['mobile']))
connection.commit()
except Exception as e:
print("error to insert data:",e)
connection.rollback() #若发生错误则回滚
print("insert rowcount:",db_cursor.rowcount) #返回影响行数
connection.close()
数据库查询操作
Python查询Mysql使用 fetchone(),fetchall(),fetchmany(n)获取数据
- fetchone(): 执行语句之后,获得一条数据
- fetchall(): 执行语句之后,获取所有数据.
- fetchmany(n):执行语句之后,获得多条数据
import pymysql
connection=pymysql.connect(host="localhost",user="root",password="mysql") #打开数据库连接
db_cursor=connection.cursor()
connection.select_db("test") #选择要操作的数据库
try:
db_cursor.execute("select * from contact") #执行sql
rs=db_cursor.fetchone() #获取一行记录
print(rs)
rs=db_cursor.fetchmany(2) #获取余下记录中的2行记录
print(rs)
ars=db_cursor.fetchall() #获取剩下的所有记录
for rs in ars:
print(rs)
except Exception as e:
print("Error to select:",e)
connection.close()
数据库表更新操作
import pymysql
connection=pymysql.connect(host="localhost",user="root",password="mysql") #打开数据库连接
db_cursor=connection.cursor()
connection.select_db("test") #选择要操作的数据库
#数据库更新操作
sql="""update contact set mobile=100088 where name='kate'
"""
try:
db_cursor.execute(sql) #执行sql
connection.commit() #提交到数据库
db_cursor.execute("select * from contact")
ars=db_cursor.fetchall()
for rs in ars:
print(rs)
except Exception as e:
print("error to update:",e)
connection.rollback() #发生错误则回滚
connection.close()
数据库表删除操作
import pymysql
connection=pymysql.connect(host="localhost",user="root",password="mysql") #打开数据库连接
db_cursor=connection.cursor()
connection.select_db("test") #选择要操作的数据库
sql="""delete from contact where name='jessic'
"""
try:
db_cursor.execute(sql)
connection.commit()
db_cursor.execute("select * from contact")
ars=db_cursor.fetchall()
for rs in ars:
print(rs)
except Exception as e:
print("error to delete:",e)
connection.rollback()
connection.close()
另一种python操作mysql的驱动 mysql-connector
mysql-connector 是 MySQL 官方提供的驱动器。
安装mysql-connector
pip3 install mysql-connector
导入mysql-connector
import mysql.connector
其他操作与pymysql类似