包含用python鏈接mysql的詞條

本文目錄一覽:

python 怎麼連接mysql

使用PyMySQL操作mysql資料庫

適用環境

python版本 =2.6或3.3

mysql版本=4.1

連接資料庫如下:

import pymysql.cursors

 

# Connect to the database

connection = pymysql.connect(host=’127.0.0.1′,

                             port=3306,

                             user=’root’,

                             password=’zhyea.com’,

                             db=’employees’,

                             charset=’utf8mb4′,

                             cursorclass=pymysql.cursors.DictCursor)

python連接MySQL資料庫實例分析

python連接MySQL資料庫實例分析

本文實例講述了python連接MySQL資料庫的方法。分享給大家供大家參考。具體實現方法如下:

import MySQLdb

conn = MySQLdb.connect(host=”localhost”,

user=”root”,

passwd=”123456″,

db=”test”)

cursor = conn.cursor()

cursor.execute(“select * from hard”)

res = cursor.fetchall()

for x in res:

print x

cursor.close()

conn.close()

運行結果如下:

希望本文所述對大家的python程序設計有所幫助。

如何使用Python3.4連接MySQL

python3發布以來,獲取了廣大程序員們的差評,說不穩定,又是不兼容什麼的,不過差評歸差評,python3既然已經發布,肯定是個趨勢,但在python3.4裡面,使用原來python2.7的mysqldb已經不能連接mysql資料庫了,比較令人糾結,不過我們可以使用pymysql,來完成連接mysql的重任,步驟如下:

序號描述

1去github上下載pymysql的安裝包pymysql

2解壓到某個盤符下

3打開cmd窗口(win環境下),進入pymysql的根目錄下執行命令,python setup.py install4在程序里,導入pymysql

5開始連接資料庫

資料庫操作的API文檔連接:代碼如下:

__author__ = ‘qindongliang’

#導入pymysql的包

import pymysql

try:

#獲取一個資料庫連接,注意如果是UTF-8類型的,需要制定資料庫conn=pymysql.connect(host=’localhost’,user=’root’,passwd=’qin’,db=’person’,port=3306,charset=’utf8′)cur=conn.cursor()#獲取一個游標

cur.execute(‘select * from person’)

data=cur.fetchall()

for d in data :

#注意int類型需要使用str函數轉義

print(“ID: “+str(d[0])+’ 名字: ‘+d[1]+” 性別: “+d[2])cur.close()#關閉游標

conn.close()#釋放資料庫資源

except Exception :print(“發生異常”)

結果如下:

D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.pyID: 1 名字: 秦天 性別: 男

ID: 2 名字: 王晶 性別: 女

Process finished with exit code 0

原文 補充說明:

mysqldb作為python連接mysql資料庫的工具,但是mysqldb目前支撐的版本較低,安裝失敗。所以才嘗試pymysql,這個比較簡單易用軟體下載地址:

python3.2.5:(為了方便安裝,我這裡選擇phpstudy)1、python安裝目錄設定為d:/python32

2、pymysql安裝方法為:解壓下載的文件,在cmd中運行: python setup.py install。

檢驗安裝安裝是否成功的方法:import pymysql 。 如果不報錯 說明安裝成功。

3、mysql安裝目錄為D:/phpStudy/MySQL。為避免更多配置問題,可在啟動phpstudy後,將其設為系統服務4、基本操作:

(1)導入pymysql: import pymysql

(2)連接資料庫: conn=pymysql.connect(host=’localhost’,user=’root’,passwd=’root’,db=’ere’,charset=’utf8′) 務必注意各等號前面的內容!charset參數可避免中文亂碼(3)獲取操作游標:cur=conn.cursor()

(4)執行sql語句,插入記錄:sta=cur.execute(“insert 語句”) 執行成功後sta值為1。更新、刪除語句與此類似。

(5)執行sql語句,查詢記錄:cur.execute(“select語句”) 執行成功後cur變數中保存了查詢結果記錄集,然後再用循環列印結果:

for each in cur:

print(each[1].decode(‘utf-8’)) # each[1] 表示當前游標所在行的的第2列值,如果是中文則需要處理編碼

python怎麼連接mysql資料庫

你可以訪問Python資料庫介面及API查看詳細的支持資料庫列表。不同的資料庫你需要下載不同的DB API模塊,例如你需要訪問Oracle資料庫和Mysql數據,你需要下載Oracle和MySQL資料庫模塊。

DB-API 是一個規範. 它定義了一系列必須的對象和資料庫存取方式, 以便為各種各樣的底層資料庫系統和多種多樣的資料庫介面程序提供一致的訪問介面 。

Python的DB-API,為大多數的資料庫實現了介面,使用它連接各資料庫後,就可以用相同的方式操作各資料庫。

Python DB-API使用流程:

引入 API 模塊。

獲取與資料庫的連接。

執行SQL語句和存儲過程。

關閉資料庫連接。

什麼是MySQLdb?

MySQLdb 是用於Python鏈接Mysql資料庫的介面,它實現了 Python 資料庫 API 規範 V2.0,基於 MySQL C API 上建立的。

如何安裝MySQLdb?

為了用DB-API編寫MySQL腳本,必須確保已經安裝了MySQL。複製以下代碼,並執行:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

掌握Python 操作 MySQL 資料庫

本文Python 操作 MySQL 資料庫需要是使用到 PyMySQL 驅動

Python 操作 MySQL 前提是要安裝好 MySQL 資料庫並能正常連接使用,安裝步驟詳見下文。

注意: 安裝過程我們需要通過開啟管理員許可權來安裝,否則會由於許可權不足導致無法安裝。

首先需要先下載 MySQL 安裝包, 官網下載地址 下載對應版本即可,或直接在網上拉取並安裝:

許可權設置:

初始化 MySQL:

啟動 MySQL:

查看 MySQL 運行狀態:

Mysql安裝成功後,默認的root用戶密碼為空,你可以使用以下命令來創建root用戶的密碼:

登陸:

創建資料庫:

查看資料庫:

PyMySQL 模塊使用 pip命令進行安裝:

假如系統不支持 pip 命令,可以使用以下方式安裝:

pymysql .connect 函數:連接上資料庫

輸出結果顯示如下:表面資料庫連接成功

使用 pymysql 的 connect() 方法連接資料庫,connect 參數解釋如下:

conn.cursor():獲取游標

如果要操作資料庫,光連接數據是不夠的,咱們必須拿到操作資料庫的游標,才能進行後續的操作,游標的主要作用是用來接收資料庫操作後的返回結果,比如讀取數據、添加數據。通過獲取到的資料庫連接實例 conn 下的 cursor() 方法來創建游標,實例如下:

輸出結果為:

cursor 返回一個游標實例對象,其中包含了很多操作數據的方法,如執行sql語句,sql 執行命令: execute() 和 executemany()

execute(query,args=None):

executemany(query,args=None):

其他游標對象如下表:

完整資料庫連接操作實例如下:

以上結果輸出為:

創建表代碼如下:

如下所示資料庫表創建成功:

插入數據實現代碼:

插入數據結果:

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

查詢數據代碼如下:

輸出結果:

DB API中定義了一些資料庫操作的錯誤及異常,下表列出了這些錯誤和異常:

本文給大家介紹 Python 如何連接 Mysql 進行數據的增刪改查操作,文章通過簡潔的代碼方式進行示例演示,給使用 Python 操作 Mysql 的工程師提供支撐。

如何用python連接mysql資料庫

1、和資料庫建立連接

2、執行sql語句,接收返回值

3、關閉資料庫連接

1、MySQL資料庫要用MySQLdb模塊,但Python用來鏈接MySQL的第三方庫MySQLdb不支持Python3.x

特別說明:我在我的電腦上實驗時,我的python是2.7.2版本,安裝對應版本的MySQLdb之後直接可以運行,並與資料庫連接成功,所以如果大家也像我一樣順利的話,下面的就不需要看了,直接跳過,看第2點如何執行sql語句即可!如果安裝之後出現異常,可以參考一下下面的解決辦法。

連接的關鍵是安裝MySQLdb模塊要下載與Python相對應的版本:

下載好後安裝,它會自動檢測到計算機Python的安裝路徑,並自動填寫模塊解壓路徑(我的是:D:\ProgramFiles\ActivePython 2.6.6.17\Lib\site-packages\)。

但解壓完成後並不能使用,還要修改MySQLdb模塊下的一些文件:

①.在MySQLdb目錄下(我的是:D:\ProgramFiles\ActivePython 2.6.6.17\Lib\site-packages\MySQLdb)找到__init__.py:

注釋第34、35行的from setsimport ImmutableSet、class DBAPISet(ImmutableSet):,在後面添加class DBAPISet(frozenset):

# from sets import ImmutableSet

# class DBAPISet(ImmutableSet):

class DBAPISet(frozenset):

②.打開converters.py:

注釋第37行的from sets import BaseSet, Set,將第45行的return Set([ i for i in s.split(‘,’) ifi ])中的Set改為set;同樣將第129行的Set: Set2Str,中的Set改為set(不要修改Set2Str),到這裡就修改完畢了

2.建立資料庫連接

import MySQLdb

conn=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”sa”,db=”mytable”)

 

比較常用的參數包括

host: 連接的資料庫伺服器主機名,默認為本地主機(localhost)。

user:資料庫登陸名.默認是當前用戶.

passwd:資料庫登陸的秘密.默認為空.

db:要使用的資料庫名.沒有默認值.

port:MySQL服務使用的TCP埠.默認是3306.

conn連接有兩個重要的方法commit【提交新增和修改】,rollback【撤銷新增或修改】

3、執行資料庫操作

n=cursor.execute(sql,param)

我們要使用連接對象獲得一個cursor對象,接下來,我們會使用cursor提供的方法來進行工作.

這些方法包括兩大類:1.執行命令,2.接收返回值

cursor用來執行命令的方法:

  callproc(self, procname, args):用來執行存儲過程,接收的參數為存儲過程名和參數列表,返回值為受影響的行數

  execute(self, query, args):執行單條sql語句,接收的參數為sql語句本身和使用的參數列表,返回值為受影響的行數

  executemany(self, query, args):執行單挑sql語句,但是重複執行參數列表裡的參數,返回值為受影響的行數

  nextset(self):移動到下一個結果集

  cursor用來接收返回值的方法:

  fetchall(self):接收全部的返回結果行.

  fetchmany(self, size=None):接收size條返回結果行.如果size的值大於返回的結果行的數量,則會返回cursor.arraysize條數據.

  fetchone(self):返回一條結果行.

  scroll(self, value, mode=’relative’):移動指針到某一行.如果mode=’relative’,則表示從當前所在行移動value條,如果mode=’absolute’,則表示從結果集的第一行移動value條.

下面的代碼是一個完整的例子.

#使用sql語句,這裡要接收的參數都用%s佔位符.要注意的是,無論你要插入的數據是什麼類型,佔位符永遠都要用%s

sql=”insert into cdinfo values(%s,%s,%s,%s,%s)”

#param應該為tuple或者list

param=(title,singer,imgurl,url,alpha)

#執行,如果成功,n的值為1

n=cursor.execute(sql,param)

#再來執行一個查詢的操作

cursor.execute(“select * from cdinfo”)

#我們使用了fetchall這個方法.這樣,cds里保存的將會是查詢返回的全部結果.每條結果都是一個tuple類型的數據,這些tuple組成了一個tuple

cds=cursor.fetchall()

#因為是tuple,所以可以這樣使用結果集

print cds[0][3]

#或者直接顯示出來,看看結果集的真實樣子

print cds

#如果需要批量的插入數據,就這樣做

sql=”insert into cdinfo values(0,%s,%s,%s,%s,%s)”

#每個值的集合為一個tuple,整個參數集組成一個tuple,或者list

param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))

#使用executemany方法來批量的插入數據.這真是一個很酷的方法!

n=cursor.executemany(sql,param)

需要注意的是(或者說是我感到奇怪的是),在執行完插入或刪除或修改操作後,需要調用一下conn.commit()方法進行提交.這樣,數據才會真正保存在資料庫中.我不清楚是否是我的mysql設置問題,總之,今天我在一開始使用的時候,如果不用commit,那數據就不會保留在資料庫中,但是,數據確實在資料庫呆過.因為自動編號進行了累積,而且返回的受影響的行數並不為0.

4、關閉資料庫連接

需要分別的關閉指針對象和連接對象.他們有名字相同的方法

cursor.close()

conn.close()

5、

5 編碼(防止亂碼)

需要注意的點:

1 Python文件設置編碼 utf-8 (文件前面加上 #encoding=utf-8)

2 MySQL資料庫charset=utf-8

3 Python連接MySQL是加上參數 charset=utf8

4 設置Python的默認編碼為 utf-8 (sys.setdefaultencoding(utf-8)

#encoding=utf-8

import sys

import MySQLdb

reload(sys)

sys.setdefaultencoding(‘utf-8’)

db=MySQLdb.connect(user=’root’,charset=’utf8′)

註:MySQL的配置文件設置也必須配置成utf8

6.模塊功能演示

#!/usr/bin/python

import MySQLdb

Con= MySQLdb.connect(host=’localhost’,user=’root’,passwd=’root’,db=’abc’)

cursor =con.cursor()

sql =”select * from myt”

cursor.execute(sql)

row=cursor.fetchone()

print row

cursor.close()

con.close()

執行以下SQL語句獲取返回值:

//獲取連接的游標

cursor=conn.cursor()

//查詢

sql = “select * from 【table】”

//新增

sql = “insert into 【table】(欄位,欄位) values(值,值)”

//修改

sql = “update 【table】 set 欄位 =『值』where 條件 “

//刪除

sql = “delete from 【table】where 條件”

cursor.execute(sql)

返回值

cur.execute(‘select * from tables’)

其返回值為SQL語句得到的行數,如:2L,表示2行。

然後,可以從該對象的fetchone或fetchall方法得到行信息。

獲取行信息

指針對象的fetchone()方法,是每次得到一行的tuple返回值:

引用

row=cur.fetchone()

print row

(‘user1′, ’52c69e3a57331081823331c4e69d3f2e’, 1000L, 1000L, ‘/home/FTP/user1’,”)

指針對象的fetchall()方法,可取出指針結果集中的所有行,返回的結果集一個元組(tuples):

引用

cur.scroll(0,’absolute’)

row=cur.fetchall()

print row

((‘user1′, ’52c69e3a57331081823331c4e69d3f2e’, 1000L, 1000L, ‘/home/FTP/user1’,”), (‘user2’, ‘7e58d63b60197ceb55a1c487989a3720′, 1000L, 1000L,’/home/FTP/user2’, None))

移動指針

當使用fetchone()方法是,指針是會發生移動的。所以,若不重置指針,那麼使用fetchall的信息將只會包含指針後面的行內容。

手動移動指針使用:

cur.scroll(int,parm)

含義為:

引用

int:移動的行數,整數;在相對模式下,正數向下移動,負值表示向上移動。

parm:移動的模式,默認是relative,相對模式;可接受absoulte,絕對模式。

修改數據

修改數據,包括插入、更新、刪除。它們都是使用指針對象的execute()方法執行:

cur.execute(“insert into table (row1, row2) values (‘111’, ‘222’)”)

cur.execute(“update table set row1 = ‘test’ where row2 = ‘row2’ “)

cur.execute(“delete from table where row1 = ‘row1’ “)

因單引號「’」用於SQL語句中的標識,所以,python中的字元串需使用雙引號括住。

此外,也可以使用python的「格式化字元串」寫法,簡化命令,例如:

cur.execute(“update table set row1 = ‘%s’ where row2 = ‘%s’ “%(‘value1′,’value2’))

※請注意,’%s’的單引號是SQL語句的間隔符,’value1’的單引號是python的字元串間隔符,其含義是不同的。是否需要間隔符,以及使用雙引號還是單引號作為間隔,需根據其含義決定。例如,還有:

cur.execute(“update FTPUSERS set passwd=%s where userid=’%s’ “%(“md5(‘123′)”,’user2’))

這裡,paswd=%s是因SQL的md5()函數是不需要單引號間隔的;”md5(‘123’)”是python的字元串中含有單引號,所以用雙引號括住。

提交修改

一般情況下,MySQLdb模塊會自動提交修改。但我們在更新數據後,手動運行一次:

conn.commit()

關閉資料庫連接

需要分別的關閉指針對象和連接對象.他們有名字相同的方法

cursor.close()

conn.close()

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/158417.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:41
下一篇 2024-11-19 00:41

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論