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,但是
 
 
于是我们需要自己安装FreeTDSopenssl
  • 安装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_xls('xxx.xls') #读取文件内容
posted @ 2016-04-26 18:19  君莫笑一叶知秋  阅读(2118)  评论(0编辑  收藏  举报