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