Python下連線資料庫方法

2021-07-16 00:24:18 字數 2569 閱讀 5885

先彙總一下python和資料庫連線的巨集觀架構:

1. 建立和資料庫系統的連線

2. 獲取操作游標

3. 執行sql,建立乙個資料庫(當然這一步不是必需的,因為我們可以用已經存在的資料庫)

4. 選擇資料庫

5. 進行各種資料庫操作

6. 操作完畢後,提交事務(這一步很重要,因為只有提交事務後,資料才能真正寫進資料庫)

7. 關閉操作游標

8. 關閉資料庫連線

連線sql server:

1. 使用pyodbc   

【安裝方法】:mac系統:見之前本空間一篇博文。簡單來說: 命令列兩行命令brew install unixodbc + sudo pip install pyodbc

windows系統:pip install pyodbc

參考文件:    

【使用方法】:給出兩個非常具體的樣例和datasheet**供參考。  

通過實際測試,我們發現pyodbc的效率更高,在我們的計算機上,時間快接近一半。

2. 使用pymmsql

前言,該包似乎較為官方,歷經多帶版本的更迭。有詳盡的官方說明文件。注意依據具體的版本,查閱官方文件使用說明。

似乎用的不是很廣泛。民間文件較少。貼出官方文件:

【版本適用】:相容python 2.7 && python 3.4等主流版本

【使用方法】:依據官方文件,依據版本,查閱使用說明。

需要注意的是,pymmsql的語法與pyodbc略有差別,需要查閱官方文件,根據樣例進行操作連線。

連線mysql:

1. 使用mysql

是連線mysql主流方法,也較為成熟,有較多的文件可以參考。

【版本適用】:向上相容python 2.4及其以上 處理命令語法一樣

【使用方法】:參考  

上述兩篇文文件一起看,非常有收穫和幫助

簡單總結:

1. 首先建立資料庫連線

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【撤銷新增或修改】

2. 執行資料庫操作

n=cursor.execute(sql,param) 

我們要使用連線物件獲得乙個cursor(游標)物件,接下來,我們會使用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條。

3. 關閉資料庫連線

需要分別的關閉指標物件和連線物件.他們有名字相同的方法

cursor.close()

conn.close()

4. *資料庫中有中文資料,防止亂碼的方法

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

python連線資料庫的方法

1 當用python開發專案的時候,我們發現經常需要用到資料庫來儲存資料,所以,連線資料庫,並能夠靈活的處理資料庫特別的重要,下面有兩種用 來運算元據庫的方法,一種是通過傳統的方法 另外一種則是通過orm peewee的方法來處理資料庫 2 下面第乙個運算元據庫的方法可能有點笨,就是通過實際資料庫的...

python 連線資料庫

原文 原文1 安裝mysql python pip install mysql python dome1 def db mange db bank conn none try 開啟資料庫連線 conn mysqldb.connect localhost root 123456 db bank 獲取操...

Python連線資料庫

usr bin env python coding utf 8 import sys reload sys sys.setdefaultencoding utf 8 import pymysql import pymysql.cursors usr bin env python coding utf...