一、DB-API概述
python支持很多不同的數據庫。由于不同的賣家服務器導致和數據庫通信的網絡協議各有不同。在python的早期版本中,每一種數據庫都帶有自己的python模塊,所有這些模塊以不同的方式工作,并提供不同的函數。這種方法不便于編寫能夠在多種數據庫服務器類型中運行的代碼,于是DB-API庫函數產生。在DB-API中,所有連接數據庫的模塊即便是底層網絡協議不同,也會提供一個共同的接口。這一點和JAVA中的JDBC和ODBC類似。
DB-API下載地址:http://wiki.python.org/moin/DatabaseProgramming,目前版本是2.0,支持數據庫包括IBM DB2、Firebird (and Interbase) 、Informix、Ingres、MySQL、Oracle 、PostgreSQL 、SAP DB (also known as "MaxDB") 、Microsoft SQL Server 、Sybase 等。
二、數據庫連接
1、PostgreSQL
有幾個模塊可以完成python與PostgreSQL的聯接,這里主要介紹使用psycopg。
下載地址是:http://initd.org/psycopg/download/。如果沒有PostgreSQL,可以從以下地址下載:http://www.postgresql.org/。(關于PostgreSQL的安裝等更加詳細的介紹,可以見http://wenku.baidu.com/view/8e32d10c6c85ec3a87c2c500.html。)連接PostgreSQL數據庫:
代碼如下:
import psycopg2
print "connecting to test"##test為數據庫名
dbh=psycopg2.connect('dbname=test user=postgres')
print "connection successful"
2、MySQL
對于MySQL,python的接口是已知的MySQLdb或者MySQL-Python,下載地址:http://sourceforge.net/projects/mysql-python/。與PostgreSQL不同的是,MySQLdb connect()函數可以帶各種參數,具體如下:
參數 | 說明 |
user | 用戶名,默認為當前登錄用戶。 |
passwd | 用戶密碼,沒有默認的。 |
db | 連接的數據庫名。 |
host | 數據庫主機名。 |
port | TCP端口,默認是3306。 |
代碼如下:
import MySQLdb
print "connecting..."
dbh=MySQLdb.connect(db="test")
print "connection successful."
dbh.close()
三、簡單操作(以PostgreSQL為例)
這里以PostgreSQL為例介紹創建表、查詢表等操作。例子中數據庫名為test,用戶名為postgres,輸入一個表名,向表中插入數據并進行查詢。具體如下,已進行了注示:
代碼如下:
import psycopg2
print "connecting to test"
新聞熱點
疑難解答