python數據庫模塊


python開發中,使用數據庫是已經再普通不過的事情了。現在的NoSQL也很流行,但暫不涉及。本文主要記錄python中連接常用關系型數據庫的問題。今天在配置sql server連接時遇到了不同的模塊,從而整理整個數據庫模塊的操作。(環境:windows,python2.7)
 
首先概括下面會談到的常用關系型數據庫:SQLite、MySQL、PoesgreSQL、Oracle、SQL Server、 excel
  • SQLite:sqlite3。(python2.5+內置)
  • MySQL: MySQLdb
  • PoesgreSQL:postgresql_psycopg2()
  • Oracle:  cx_Oracle
  • SQL Server: pymssql、pyodbc、adodbapi
  • excel:  pyExcelertor
 
 
1.1 SQL Server: pymssql
   安裝pymssql,cmd下執行pip install pymssql,然后 在交互頁面或者IDLE中 import pymmsql  出現找不到指定的模塊。pip安裝最新的pymssql2.1.2,但是
 
 
於是我們需要自己安裝 FreeTDS openssl
  • 安裝FreeTDS
Python 版本 VS
2.7 vs2008
3.3 或者 3.4 vs2010
3.5 vs2015
下載解壓出來后找到里面一個包含 DLL 文件的文件夾,將這個目錄添加到系統或用戶的 PATH 變量里面。
  • 安裝openssl

接着下載預編譯好的 openssl,根據自己的 Python 版本選擇對應 vs 版本的 7z 文件(見上表)。解壓出來后同樣找到里面包含 DLL 文件的文件夾(64 位系統可以選擇文件夾名帶 64 的),然后將這個目錄添加到PATH 變量里面。

我的兩個目錄是:
C:\freetds-v0.95.81-win-x86_64-vs2008\lib;
C:\openssl-1.0.1q-vs2008\bin64;
 
使用:
import pymssql
conn=pymssql.connect(server="127.0.0.1",port="1433",user="sa",password="123",database="myblog",charset="UTF-8")
cursor = conn.cursor()
conn.close()
1.2  SQL Server: pyodbc
   安裝pyodbc,cmd下 pip  install  pyodbc,使用如下:
  import pyodbc

連接數據庫

 

1)直接連接數據庫和創建一個游標(cursor)

?
1
2
cnxn = pyodbc.connect( 'DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass' )
cursor = cnxn.cursor()

 

 

2)使用DSN連接。通常DSN連接並不需要密碼,還是需要提供一個PSW的關鍵字。

?
1
2
cnxn = pyodbc.connect( 'DSN=test;PWD=password' )
cursor = cnxn.cursor()
 
1.3 SQL Server: adodbapi
     
    安裝adodbapi ,cmd下 pip install adodbapi 或者安裝pywin32(Since pywin32 release 211, adodbapi is included )
  使用:
import adodbapi
 conn={'server':'192.168.29.86\\eclexpress','password':'xxxx','db':'pscitemp'}
    constr = r"Provider=SQLOLEDB.1; Initial Catalog=%s; Data Source=%s; user ID=%s; Password=%s; " \
         % (conn['db'], conn['server'], 'sa', conn['password'])
    conn=adodbapi.connect(constr)
 
2、SQLite:sqlite3的使用
import sqlite3
#打開db文件,獲得連接
conn = sqlite3.connect('數據文件名')
#獲得游標
c = conn.cursor()
#執行SQL
c.execute('''SQL 片段''')
#如果有對數據的修改操作,那就需要commit一下
conn.commit()
#關閉游標
c.close()
#關閉連接
conn.close()
 
3、MySQL: MySQLdb的連接
        import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="test",charset="utf8") 
cursor = conn.cursor()    
 
 
4、PoesgreSQL:postgresql_psycopg2
 
import psycopg2 
 
conn = psycopg2.connect(database="testdb", user="postgres", password="pass123", host="127.0.0.1", port="5432") 
print "Opened database successfully" 
 
cur = conn.cursor() 
 
5、Oracle:  cx_Oracle
 
import cx_Oracle                                          #引用模塊cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')    #連接數據庫
c=conn.cursor()                                           #獲取cursor
 
6、excel:  pyExcelertor
 
from pyExcelerator import *
sheets=pyExcelerator.parse_x ls('xxx.xls') #讀取文件內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM