码迷,mamicode.com
首页 > 数据库 > 详细

python: 数据库编程

时间:2015-03-03 15:17:05      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:python   database   sqlite3   mysql   postgresql   

sqlite:基于文件的关系数据库,已经包含在python标准库中。

gadfly:用python写的基于文件的关系数据库

mysql:基于服务器的关系数据库

postgresql:基于服务器的关系数据库

 

python访问数据库的两种方式:

1.  ORM

2.  DB-API

 

###################################################################

ORM:对象-关系管理器,如果不希望直接嵌入sql可以使用ORM。

 

ORM模块:

1.  SQLAlchemy

2.  SQLObject

 

#####################################################################

DB-API:通过嵌入sql来访问数据库。

 

所有数据库的python接口都要遵循DB-API规范:

 

数据库的API都是通过connect函数建立连接返回Connection对象:

connect(user, password, host, port,database/db):

connect(“dbname, user,password, host, port”)

 

通过connect连接的对象的属性:

close()   :关闭数据库连接

commit()   :提交当前事物

rollback()   :取消当前事物

cursor()   :使用这个连接创建并返回一个游标或类游标的对象

errorhandler(cxn, cur,errcls, errval)   :作为已给游标的句柄

 

游标对象的属性:

arraysize

connection

description

lastrowid

rowcount

callproc(func[, args]):调用一个存储过程

close():关闭游标对象

execute(op[, args]):执行一个数据库查询/命令

executemany(op[, args]):为给定的每个参数准备并执行一个数据库查询/命令

fetchone():得到结果集的下一行

fetchmany([size=cursor.arraysize]):得到结果集的下几行

fetchall():返回结果集中剩下的所有行

__iter__()

messages

next()

nextset()

rownumber

setinputsizes(sizes)

setoutputsize(size[, col])

 

#####################################################################

sqlite3

#####################################################################

使用sqlite不用安装,调用sqlite3的connect函数自动生成文件。

 

import sqlite3

cxn =sqlite3.connect(r’C:\temp\test’)

cur = cxn.cursoe()

cur.execute(‘CREATE TABLEtest(var1 VARCHAR(10), var2 INTEGER)’)

cur.execute(‘INSERT INTOtestable VALUES(“canux”, 1)’)

cur.execute(‘SELECT * FROM testable’)

for each in cur.fetchall():

    print each

cur.close()

cxn.commit()

cxn.close()

 

#####################################################################

postgresql

#####################################################################

需要安装postgresql数据库,同时要安装python的API,有三个可用接口:

1.  psycopg2

2.  PyPgSQL

3.  PyGreSQL

 

import  psycopg2

cxn =

psycopg2.connect([database="postgres",]user="postgres",password=“*”)

cur = cxn.cursor()

cur.execute(‘SELECT * FROMpg_database’)

rows = cur.fetchall()

for i in rows:

    print i

cur.close()

cxn.commit()

cxn.close()

 

#####################################################################

mysql

#####################################################################

需要安装mysql数据库,同时安装python的API,MySQLdb,也叫MySQL-python。

 

mysql的msqldb的connect有query属性。

import MySQLdb

cxn = MySQLdb.connect([db=‘mysql‘,]user=’root’,passwd=’*’)

cxn.query(‘CREATE DATABASEdatabasename’)

cxn.query(“GRANT ALL ONdatabasename.* to ‘’@’localhost’”)

cxn.commit()

cxn.close()

 

使用cursor:

cxn = MySQLdb.connect([db=‘mysql‘,]user=’root’,passwd=’*’)

cur = cxn.cursor()

cur.execute(‘CREATE TABLEtablename(var1 VARCHAR(8), var2 INT)’)

cur.execute(“INSERT INTOtablename VALUES(‘canux’, 1)”)

cur.execute(“SELECT * FROMtablename”)

for data in cur.fetchall():

print ‘%s\t%s’ % data

cur.execute(‘UPDATE tablenameSET val2=2 WHERE var1=”canux”’)

cur.execute(‘DELETE FROMtablename WHERE var1=”canux”’)

cur.execute(‘DROP TABLEtablename’)

cur.close()

cxn.commit()

cxn.close()

 

#####################################################################

python: 数据库编程

标签:python   database   sqlite3   mysql   postgresql   

原文地址:http://blog.csdn.net/wowotouweizi/article/details/44037449

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!