程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python3 MySQL 數據庫連接 - PyMySQL 驅動

編輯:Python

PyMySQL 是在 Python3.x 版本中用於連接 MySQL 服務器的一個庫,Python2 中則使用 mysqldb。

PyMySQL 安裝
我們可以使用以下命令安裝最新版的 PyMySQL:

$ pip3 install PyMySQL

數據庫連接

import pymysql
# 連接數據庫
db = pymysql.connect(
host='localhost',
user='root',
passwd='your-passwd',
database='test',
)
# 使用sursor()方法創建一個游標對象my_cursor
my_cursor = db.cursor()
sql = 'select @@version'
# 使用execute()方法進行sql查詢
my_cursor.execute(sql)
# 使用fetchone()方法獲取單條數據
rs = my_cursor.fetchone()
print("Database version : ", rs)
# 關閉數據庫連接
db.close()

輸出結果如下

Database version : (‘8.0.26’,)

創建數據庫表
創建數據表使用 create table 語句

import pymysql
# 連接數據庫
db = pymysql.connect(
host='localhost',
user='root',
passwd='your-passwd',
database='test',
)
# 使用sursor()方法創建一個游標對象my_cursor
my_cursor = db.cursor()
sql = 'create table users(id int PRIMARY KEY, name varchar(10), age int, sex varchar(10))'
# 使用execute()方法執行sql語句
my_cursor.execute(sql)
print("sql語句執行成功")
# 關閉數據庫連接
db.close()

輸出結果為

sql語句執行成功

數據庫插入操作
插入數據使用 insert into 語句

import pymysql
# 連接數據庫
db = pymysql.connect(
host='localhost',
user='root',
passwd='your-passwd',
database='test',
)
# 使用sursor()方法創建一個游標對象my_cursor
my_cursor = db.cursor()
sql = 'insert into users(id, name, age, sex) values(1, "admin", 20, "M")'
try:
# 使用execute()方法執行sql語句
my_cursor.execute(sql)
# 數據表內容有更新,必須使用到該語句
db.commit()
print(my_cursor.rowcount, "條記錄已更新")
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()

以上內容輸出結果為

1 條記錄已更新

數據庫查詢操作
Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。

fetchone(): 該方法獲取下一個查詢結果集。結果集是一個對象
fetchall(): 接收全部的返回結果行.
rowcount: 這是一個只讀屬性,並返回執行execute()方法後影響的行數。

那麼我們查詢users表的全部記錄,由於我們剛剛只添加了一條記錄,所以查詢出來的結果只有一條數據

import pymysql
# 連接數據庫
db = pymysql.connect(
host='localhost',
user='root',
passwd='your-passwd',
database='test',
)
# 使用sursor()方法創建一個游標對象my_cursor
my_cursor = db.cursor()
sql = 'select * from users'
try:
# 使用execute()方法執行sql語句
my_cursor.execute(sql)
rs = my_cursor.fetchall()
for i in rs:
print(i)
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()

以上腳本執行結果為

(1, 'admin', 20, 'M')

數據庫更新操作
修改數據表中的數據使用 update 語句
以下實例將users表的性別為M的年齡改為30

import pymysql
# 連接數據庫
db = pymysql.connect(
host='localhost',
user='root',
passwd='your-passwd',
database='test',
)
# 使用sursor()方法創建一個游標對象my_cursor
my_cursor = db.cursor()
sql = 'update users set age=30 where sex="M"'
try:
# 使用execute()方法執行sql語句
my_cursor.execute(sql)
# 數據表有更新,必須使用這條語句
db.commit()
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()

刪除操作
刪除數據使用 delete from 語句
以下實例將年齡為30的用戶刪除

import pymysql
# 連接數據庫
db = pymysql.connect(
host='localhost',
user='root',
passwd='your-passwd',
database='test',
)
# 使用sursor()方法創建一個游標對象my_cursor
my_cursor = db.cursor()
sql = 'delete from users where age=30'
try:
# 使用execute()方法執行sql語句
my_cursor.execute(sql)
# 數據表有更新,必須使用這條語句
db.commit()
print("刪除成功")
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()

以上腳本輸出結果為

刪除成功

commit()方法游標的所有更新操作,rollback()方法回滾當前游標的所有操作。每一個方法都開始了一個新的事務。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved