MySQL數據庫07(Python3 MySQL 數據庫連接)

本文是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)

提交,不然無法保存新建或者修改的數據

conn.commit()


關閉遊標

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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章