首页 - 数据库 - SQL Server

Python数据库操作手册

发布时间: 2007-04-19 05:04    作者: 未知    来源: 未知    浏览:    评论

数据库的操作在现在的Python里面已经变得十分的好用,有了一套API标准.下面的就是讲讲如何的去使用这套框架定义.此框架包含以下部分模块接口 连接对象 游标对象 DBI辅助对象 数据类型与定义 如何实现的提示 从1.0到2.0的变化 例子 模块接口
connect(parameters...) 其中的参数格式如下:

dsn 数据源名称user 用户名(可选)password 密码(可选)host 主机名(可选)database 数据库名(可选)举个例子: connect(dsn='myhost:MYDB',user='guido',password='234$')又或者 connect('218.244.20.22','username','password','databasename')

此标准规定了以下的一些全局变量:

apilevel:

表示了DB-API的版本,分'1.0'和'2.0'.如果没有定义,默认为'1.0'

threadsafety:

0 Threads may not share the module.1 Threads may share the module, but not connections.2 Threads may share the module and connections.3 Threads may share the module, connections and cursors.

paramstyle:

用于表示参数的传递方法,分为以下五种:'qmark' 问号标识风格. e.g '... WHERE name=?''numeric' 数字,占位符风格. e.g '... WHERE name=:1''named' 命名风格. e.g 'WHERE name=:name''format' ANSI C printf风格. e.g '... WHERE name=%s''pyformat' Python扩展表示法. e.g '... WHERE name=%(name)s'

异常类:

StandardError|__Warning|__Error |__InterfaceError |__DatabaseError |__DataError |__OperationalError |__IntegerityError |__InternalError |__ProgrammingError |__NotSupportedError
连接对象
连接对象包含如下方法:
.close() 关闭连接 .commit() 用于事务处理里面的提交操作 .rollback() 用于事务处理里面的回滚操作 .cursor() 获得一个游标 游标对象
游标对象包含如下属性和方法:
.description 一个列表(name,type_code,display_size,internal_size,precision,scale,null_ok) 此属性只有在取得了数据之后才有,不然会是null值 .rowcount 表示返回值的行数.如果没有执行executeXXX()方法或者此模块没有实现这个方法,就会返回-1 .callproc(procname[,parameters]) (此为可选方法,应为不是所有的数据库都支持存储过程的) .close() 关闭游标 .execute(operation[,parameters]) 准备并执行一个数据库操作(包括查询和命令) .executemany(operation,seq_of_parameters) 准备一个数据库命令,然后根据参数执行多次命令 .fetchone() 返回第一行的查询结果 .fetchmany([size=cursor.arraysize]) 返回指定个多个行的值 .fetchall() 返回所有的查询结果 .arraysize 这个参数值表示fetchmany默认情况之下获取的行数 数据类型与定义定义一些常用的数据类型.但是目前用不到,就先不分析备注
当然,我们要知道的是,这个只是一个标准,一般来说标准里面定义了的会实现,但还有很多特定的实现,我们也需要去掌握哪些东西,不过如果我们将这些标准的掌握了,那么操作一般的就不会有问题了.

下面给出几个数据库相关的网址
Database Topic Guide Python的数据库使用向导,有相当不错的资料,包括API定义,驱动联结等等 MSSQL 驱动 就是MSSQL的驱动程序 例子
下面举的例子是以MSSQL为样板的,但是换成其他的驱动也一样可以做,这个就和Perl的数据库操作十分的类似,可以让我们很方便的实现不同数据库之间的移植工作.

1. 查询数据

import MSSQLdb = MSSQL.connect('SQL Server IP', 'username', 'password', 'db_name')c = db.cursor()sql = 'select top 20 rtrim(ip), rtrim(dns) from detail'c.execute(sql)for f in c.fetchall(): print "ip is %s, dns is %s" % (f[0], f[1])

2. 插入数据

sql = 'insert into detail values('192.168.0.1', 'www.dns.com.cn')c.execute(sql)

3. ODBC的一个例子

import dbi, odbc # ODBC modulesimport time # standard time moduledbc = odbc.odbc( # open a database connection 'sample/monty/spam' # 'datasource/user/password' )crsr = dbc.cursor() # create a cursorcrsr.execute( # execute some SQL """ SELECT country_id, name, insert_change_date FROM country ORDER BY name """ )print 'Column descriptions:' # show column descriptionsfor col in crsr.description: print ' ', colresult = crsr.fetchall() # fetch the results all at onceprint '\nFirst result row:\n ', result[0] # show first result rowprint '\nDate conversions:' # play with dbiDate objectdate = result[0][-1]fmt = ' %-25s%-20s'print fmt % ('standard string:', str(date))print fmt % ('seconds since epoch:', float(date))timeTuple = time.localtime(date)print fmt % ('time tuple:', timeTuple)print fmt % ('user defined:', time.strftime('%d %B %Y', timeTuple))-------------------------------output--------------------------------Column descriptions: ('country_id', 'NUMBER', 12, 10, 10, 0, 0) ('name', 'STRING', 45, 45, 0, 0, 0) ('insert_change_date', 'DATE', 19, 19, 0, 0, 1)First result row: (24L, 'ARGENTINA', <DbiDate object at 7f1c80>)Date conversions: standard string: Fri Dec 19 01:51:53 1997 seconds since epoch: 882517913.0 time tuple: (1997, 12, 19, 1, 51, 53, 4, 353, 0) user defined: 19 December 1997

回本栏首页
Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多