MySQL進階(一):PyMySQL

  • 本博客是《MySQL進階》系列博客的第一部分,主要介紹如何利用pymysql庫通過python語言對mysql進行交互操作
  • 本博客既爲方便自己查看複習而作,亦爲你而作,望能有所裨益
  • 學習交流請聯繫 [email protected]

簡介

顧名思義,pymysql庫是一個利用python語言對mysql數據庫進行交互式操作對的第三方庫。

安裝

pip install pymysql  #pip安裝
conda install pymysql #conda安裝

使用

下面我們通過一個簡短的例子大致瞭解下其操作原理,然後再予以詳細介紹。

import pymysql

db = pymysql.connect(host='<主機名>',user='<用戶名>',
password='<密碼>',port='<端口號>,db='<數據庫名>',charset='<字符集>')
# 其中部分參數爲可選參數 

cursor = db.cursor()

sql = '<sql語句>' 
cursor.execute(sql)

data = cursor.fetchone()
print(data)

db.close()

以上語句我們就不添加註釋了,大家可以嘗試着換成自己的數據庫相關信息,看看返回的是什麼結果吧

遊標

在這裏你可以將遊標理解爲一個指針,是一個存儲了數據庫查詢結果的數據集,因此,我們可以通過對遊標進行操作進而對數據庫進行相關操作。
下面我們列出遊標常用的一些操作:

  • execute(query,args):執行單條sql語句,接收的參數爲sql語句本身和使用的參數列表,返回值爲受影響的行數
  • executemany(query,args):執行單條sql語句,但是重複執行參數列表裏的參數,返回值爲受影響的行數
  • fetchone():返回一條結果行
  • fetchmany(size):返回size條結果行
  • fetchall():返回全部結果行

數據庫

  • 我們先在數據庫裏創建一個新表
import pymysql
db = pymysql.connect(<參數>)
cursor = db.cursor()
sql = 'create table person(id int auto_increment primary key not null,name varchar(14) not null)'
cursor.execute(sql)
db.close()
  • 接下來我們在創建的表裏插入一條記錄
import pymysql
db = pymysql.connect(<參數>)
cursor = db.cursor()
sql = 'insert into person(name) values("xy"),("April")'
try:
	cursor.execute(sql)
	db.commit()
	print('插入成功')
except:
	print('插入失敗')
	db.rollback()
db.close()

import pymysql
db = pymysql.connect(<參數>)
cursor = db.cursor()
sql = 'delete from person where id=2'
try:
	cursor.execute(sql)
	db.commit()
	print("刪除成功")
except:
	print("刪除失敗")
	db.rollback()
db.close()

import pymysql
db = mysql.connect(<參數>)
cursor = db.cursor()
sql = 'update person set name="xy" where id=3'
try:
	cursor.execute(sql)
	db.commit()
	print("修改成功")
except:
	print("修改失敗")
	db.rollback()
db.close()

我們也可以使用通配符來進行修改

import pymysql
db = pymysql.connect(<參數>)
cursor = db.cursor()
sql = 'update person set name=%s where id=%s'
try:
    cursor.execute(sql,["Obito",5])
    db.commit()
    print("修改成功")
except:
    print("修改失敗")
    db.rollback()
db.close()

  • 查詢MySQL數據庫下的所有數據庫名
# 查看所有數據庫
import pymysql
db = pymysql.connect(<參數>)
cur = db.cursor()
sql = 'show databases'
cur.execute(sql)
print(cur.fetchall())
  • 查詢某個表的記錄
import pymysql
db = pymysql.connect(<參數>)
cursor = db.cursor()
sql = 'select * from person'
try:
    cursor.execute(sql)
    print(cursor.fetchall()) #每條記錄對應一個元組
except:
    print("查詢失敗")
db.close()
  • 和python數據分析常用庫pandas結合使用
# 使用pandas的read_sql方法,將提取到的數據直接轉化成dataframe進行操作
import pymysql
import pandas as pd
db = pymysql.connect(<參數>)
df1 = pd.read_sql("select * from person",db)
display(df1)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章