1. 程式人生 > >python3與MySQL互動

python3與MySQL互動

一 、簡述

python3 與MySQL 進行互動程式設計需要安裝 pymysql 庫,故首先使用如下命令安裝pymysql 。

pip install PyMySQL

那什麼是pymysql呢?

  • PyMySQL 是在 Python3.x 版本中用於連線 MySQL 伺服器的一個庫。
  • 如果安裝過程出現 "ImportError: No module named setuptools"的錯誤提示,意思是你沒有安裝setuptools,你可以訪問這裡寫連結內容 找到各個系統的安裝方法。
  • 然後確保你的裝置上面滿足如下條件:
    • 建立了資料庫 TESTDB.
    • 在TESTDB資料庫中您已經建立了表 EMPLOYEE
    • EMPLOYEE表字段為 FirstName, LastName, Age, Sex 和 Income。
    • 連線資料庫TESTDB使用的使用者名稱為 “root” ,密碼為 “123”(這是我的資料庫密碼,你的需要改成相應的), Mysql資料庫使用者授權請使用Grant命令。
  • 如果你對Mysql資料庫相關不太熟悉,你可以訪問我的這篇文章Mysql教程,熟悉後在進行相關的操作。

二、demo 實戰

注意:由於可能因為操作過程中會發生各種錯誤,於是,這裡將相關錯誤放置在前面,以示提醒。
Error

1 、資料庫連線

#!/usr/bin/python3 

import pymysql

# 開啟資料庫連線
db = pymysql.connect("localhost","root","123","TESTDB")

# 使用 cursor() 方法建立一個遊標物件 cursor 
cursor = db.cursor()

# 使用 execute() 方法執行SQL 查詢
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法獲取單條資料
data = cursor.fetchone()

print ("\n Database version : %s \n"
% data) # 關閉資料庫連線 db.close()

輸出結果為: Database version : 5.7.20-0ubuntu0.16.04.1

2 、建立資料庫表

#!/usr/bin/pyhton3 

import pymysql

# 開啟資料庫連線
db = pymysql.connect("localhost","root","123","TESTDB")

# 使用 cursor() 方法建立一個遊標物件 cursor 
cursor = db.cursor()

# 使用 execute() 方法執行 SQL,如果表存在則刪除
cursor.execute("drop table if exists EMPLOYEE")

# 使用預處理語句建立表
sql = """create table EMPLOYEE (
         FirstName char(20) not null,
         LastName char(20),
         Age int,
         Sex char(1),
         Income float )  """
cursor.execute(sql)
print ("\n creat table successd ! \n")

# 關閉資料庫連線
db.close()

3 、插入操作

#!/usr/bin/python3 

import pymysql

db = pymysql.connect("localhost","root","123","TESTDB")

cursor = db.cursor()

# sql 插入語句
sql = """insert into EMPLOYEE(FirstName,
         LastName,Age,Sex,Income) 
         values('Mac','Mohan',20,'M',2000);"""

try:
    # 執行 sql 語句
    cursor.execute(sql)
    # 提交到資料庫執行
    db.commit()
    print ('提交完畢')
except:
    # 如果發生錯誤則進行回滾
    db.rollback()
        print ('\n Some Error happend ! \n')

# 關閉資料庫連線
db.close()

4 、查詢操作

Python查詢Mysql使用 fetchone() 方法獲取單條資料, 使用fetchall() 方法獲取多條資料。

  1. fetchone(): 該方法獲取下一個查詢結果集。結果集是一個物件
  2. fetchall(): 接收全部的返回結果行. rowcount:
  3. 這是一個只讀屬性,並返回執行execute()方法後影響的行數。
#!/usr/bin/python3 

import pymysql

db = pymysql.connect("localhost",'root','123','TESTDB')

cursor = db.cursor()

sql = "select * from EMPLOYEE \
       where Income > %d" % (1000)

try:
    cursor.execute(sql)
    results = cursor.fetchall()
    for row in results:
        fname = row[0]
        lname = row[1]
        age = row[2]
        sex = row[3]
        income = row[4]

        # 列印結果
         print ("\n fname =%s,lname =%s,age = %d, sex=%s,income=%d \n "%(fname,lname,age,sex,income))

except:
    print ("Error: unable to fetch data")

# 關閉資料庫連線
db.close()

5 、更新操作

!/usr/bin/python3 

import pymysql

db = pymysql.connect('localhost','root','123','TESTDB')

cursor = db.cursor()

# SQL 更新語句
sql = "update EMPLOYEE set Age = Age + 1 where sex = '%c'"%('M')

try:
    cursor.execute(sql)
    db.commit()
except:
    db.rollback()

db.close()

6 、刪除操作

#!/usr/bin/python3 

import pymysql

db = pymysql.connect('localhost','root','123','TESTDB')

cursor = db.cursor()

sql = "delete from EMPLOYEE where Age > '%d' "%(20)

try:
    cursor.execute(sql)
    db.commit()
except:
    db.rollback()
    print ('發生錯誤,回滾中!')

db.close()

相關推薦

python3MySQL互動

一 簡述 二demo 實戰 資料庫連線 插入操作 查詢操作 更新操作 刪除操作 一 、簡述 python3 與MySQL 進行互動程式設計需要安裝 pymysql 庫,故首先使用如下命令安裝pymysql 。 pip instal

pythonmysql互動詳解二

主要實現從mysql資料庫中取出想要的資料進行平均值計算,然後將取出的資料按特定欄位分組後重新插入資料庫中。複雜的問題可以先從簡單點一步一步實現,拆解完成。 import pymysql from pymysql import * import pandas as pd def sel

Nodejs學習筆記(四)MySQL互動(felixge/node-mysql

                目錄簡介和安裝 測試MySQL 認識一下Connection Opti

python3mysql交互

exce passwd object val user bin pip err res 1.安裝pymysql模塊 pip3 install pymysql3 2.pymysql的簡單使用: # /usr/bin/env python3 import pymysql

PHPMySQL互動——插入資料

向資料表裡插入如下資料: ‘test’, ‘12345678’,’man’,’2016-3-3’,’[email protected]’   SQL語句如下: INSERT INTO User (name,password,sex,dob,e

PHPMySQL互動——建立資料表

建立一個名User的資料表 SQL語句為: CREATE TABLE User (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, password VARCHAR(20) NO

Nodejs學習筆記(四)--- MySQL互動(felixge/node-mysql

目錄 簡介和安裝   我選擇了felixge/node-mysql,用的人比較多,先隨大溜看看它的使用,暫時沒有太過糾結於各庫之間的執行效能問題,對其它庫有研究的筒子也可以分享一下效能要求較高時的選擇^_^!  This is a node.js driver for mys

四十八、mysql資料庫7:Mysqlpython的互動、引數化(重點pythonmysql互動傳參)

一、使用python命令連線資料庫流程 二、python3 安裝pymysql包 建立py檔案,進行插入資料:通過python檔案來連線資料庫實現互動(前提需要安裝pymysql包) 1、Li

NodeJsMySQL互動資料

// mysqlTest.js //載入mysql Module var Client = require('mysql').Client, client = new Client(),      //要建立的資料庫名 TEST_DATABASE = 'nodejs_mysql_test',

QtMySQL互動出現亂碼

The gibberish of interaction Qt and mysql 定位問題 出現亂碼問題,首先確保Qt和mysql兩邊編碼方式一樣,全部改為UTF-8. 這裡檢視mysql端編碼的方式。至於如何修改mysql字符集,請看“MyS

python3.6 MYSQL的安裝連接

環境變量path cli .exe net 建立 數據表 錯誤 auto title 因為要做文本相似性對比,所以需要大量資料,也需要把這些資料進行存儲,進行比對時可以直接提取文本的id 首先對MYSQL進行安裝,我是從百度軟件庫中下載的MYSQL, 安裝 然後進行安裝

node.jsmysql資料庫的互動

我們已經建好了資料庫也建好了表,現在我們想查詢資料庫表中的內容,應該怎麼做呢?  程式碼如下: var mysql = require('mysql'); //匯入mysql包模組 var connection = mysql.createConnection({ h

mysql005--mysqlpython互動

一、安裝相關包        ubuntu下安裝命令: sudo apt-get install python-mysqldb        pycharm安裝依賴包:         二、程式碼示例 測試表的結構: #encoding=utf-8 impor

MySql資料庫python互動型別(十)

與python互動簡介 在熟練使用sql語句的基礎上,開始使用python語言提供的模組與mysql進行互動 這是我們在工作中大事要做的事 先學會sql是基礎,一定要熟練編寫sql語句 安裝引入模

MySql資料庫python互動使用者登入(十三)

例項:使用者登入 建立使用者表userinfos 表結構如下 id uname upwd isdelete 注意:需要對密碼進行加密 如果使用md5加密,則密碼包含32個字元

MySQL資料庫5:GoMySQL互動

下載第三方依賴 go get github.com/jmoiron/sqlx go get github.com/go-sql-driver/mysql 引入依賴 import ( "github

nodejsmysql資料庫的互動操作

首先通過npm命令安裝mysql模組 mysql資料庫版本:mysql-5.7.16-winx64,在官網下載zip包,修改一下配置,即可通過命令安裝到電腦上。 如何連線 連線流程程式碼如下: var mysql = require('my

pythonMySQL基礎的互動(增刪改查)

import pymysql # 開啟資料庫連線(ip/資料庫使用者名稱/登入密碼/資料庫名) db = pymysql.connect(host='localhost',user='root',pa

python tkinterMysql資料庫互動實現賬號登陸_code

 本例已經實現的資料庫password,資料庫的表以及表結構如下: 表中已經插入的資訊: 程式碼實現 # -*- coding: utf-8 -*- """ Created on Tue Nov 6 14:29:54 2018 Description:實現tk

Python3 安裝 mysql-python ImportError: No module named 'ConfigParser'報錯解決方法

其實有一個比較尷尬的地方就是,python3不再支援mysqldb!! 而替代它的模組是PyMySQL , https://github.com/PyMySQL/PyMySQL(github) htt