本文是Python3 使用PyMySQL連接數據庫,並實現簡單的增刪改查
一、什麼是PyMySQL?
PyMySQL是在python3版本中用於連接MySQL服務器的一個庫,Python2中則使用mysqldb
二、PyMySQL安裝
再使用PyMySQL之前 需要確保PyMySQL已安裝
如果還未安裝,我們可以使用以下命令安裝最新版的PyMySQL:
pip install PyMySQL
三、數據庫連接
導入pymysql庫
import pymysql
打開數據庫連接conn=pymysql.connect(host='服務器',
port=端口,
user='用戶',
password='密碼',
db='庫名',
charset='字符集')
使用cuisor()方法創建遊標對象cursor
cursor=conn.cursor()使用execute()方法 執行SQL命令
cursor.execute('SQL命令')使用fetchone()方法獲取單條數據
row_1=cursor.fetchone()print (row_1)
提交,不然無法保存新建或者修改的數據
關閉遊標
cursor.close()關閉數據庫連接
conn.close()
代碼如:
import pymysql
#打開數據庫連接
conn=pymysql.connect(host='服務器',
port=端口,
user='用戶',
password='密碼',
db='庫名',
charset='字符集')
#使用cuisor()方法創建遊標對象cursor
cursor=conn.cursor()
#使用execute()方法 執行SQL命令
cursor.execute('SQL命令')
# 使用fetchone()方法獲取單條數據
row_1=cursor.fetchone()
print (row_1)
#conn.commit()提交,不然無法保存新建或者修改的數據
#關閉遊標
cursor.close()
#關閉數據庫連接
conn.close()
注意:存在中文的時候,連接需要添加charset='utf8',否則中文顯示亂碼
四、創建數據庫表
在python7庫中創建表employee
import pymysql
# 打開數據庫連接
db = pymysql.connect(host='localhost',
port=3306,
user='root',
password='***',
db='python7',
charset='utf8')
# 使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
# 使用 execute() 方法執行 SQL,如果表存在則刪除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 使用預處理語句創建表
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
#關閉遊標
cursor.close
# 關閉數據庫連接
db.close()
五、數據庫插入操作
給employee表中添加數據
import pymysql
# 打開數據庫連接
db = pymysql.connect(host='localhost',
port=3306,
user='root',
password='***',
db='python7',
charset='utf8')
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 插入語句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# 執行sql語句
cursor.execute(sql)
# 提交到數據庫執行
db.commit()
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()
六、數據庫查詢操作
python查詢mysql使用fetchone()方法獲取單條數據,使用fetchall()方法獲取多條數據
fetchone(): 該方法獲取一個查詢結果集,結果集是一個對象
fetchall():接受全部的返回結果行
rowcount:這是一個只讀屬性,並返回執行execute()方法後影響的行數
實例:查詢employee表第一行數據
import pymysql
#創建連接
conn=pymysql.connect(host='localhost',
port=3306,
user='root',
password='***',
db='python7',
charset='utf8')
#創建遊標
cursor=conn.cursor()
cursor.execute('SELECT * FROM EMPLOYEE')
# 獲取剩餘結果的第一行數據
row_1=cursor.fetchone()
print (row_1)
cursor.close()
conn.close()
執行命令得
('Mac', 'Mohan', 20, 'M', 2000.0)
七、數據庫的更新操作
實例:將表employee中名字爲Mac的用戶sex字段改爲 w
import pymysql
#創建連接
conn=pymysql.connect(host='localhost',
port=3306,
user='root',
password='***',
db='python7',
charset='utf8')
#創建遊標
cursor=conn.cursor()
cursor.execute('UPDATE EMPLOYEE SET sex="W" WHERE FIRST_NAME="Mac" ')
#提交
conn.commit()
cursor.close()
conn.close()
注意:必須提交
八、刪除操作
刪除表employee中名字爲Mac用戶的所有數據
import pymysql
#創建連接
conn=pymysql.connect(host='localhost',
port=3306,
user='root',
password='zhaofan123',
db='python7',
charset='utf8')
#創建遊標
cursor=conn.cursor()
cursor.execute('DELETE FROM EMPLOYEE WHERE FIRST_NAME="Mac" ')
conn.commit()
cursor.close()
conn.close()