python3 操作mysql


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类似

 







 



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM