资源描述:
《pyodbc的简单使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、pyodbc的简单使用1、连接数据库1)直接连接数据库和创建一个游标(cursor)12cnxn=pyodbc.connect('DRIVER={SQLServer};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')cursor=cnxn.cursor()2)使用DSN连接。通常DSN连接并不需要密码,还是需要提供一个PSW的关键字。12cnxn=pyodbc.connect('DSN=test;PWD=password')cursor=cnxn.cursor()关于连接函数还有更多的选项,可以在pyodb
2、c文档中的connectfuntion和ConnectionStrings查看更多的细节2、数据查询(SQL语句为select...from..where)1)所有的SQL语句都用cursor.execute函数运行。如果语句返回行,比如一个查询语句返回的行,你可以通过游标的fetch函数来获取数据,这些函数有(fetchone,fetchall,fetchmany).如果返回空行,fetchone函数将返回None,而fetchall和fetchmany将返回一个空列。1234cursor.execute("selectuser_id,user_namef
3、romusers")row=cursor.fetchone()ifrow: printrow2)Row这个类,类似于一个元组,但是他们也可以通过字段名进行访问。1234cursor.execute("selectuser_id,user_namefromusers")row=cursor.fetchone()print'name:',row[1] #accessbycolumnindexprint'name:',row.user_name #oraccessbyname3)如果所有的行都被检索完,那么fetchone将返回None.1
4、2345while1: row=cursor.fetchone() ifnotrow: break print'id:',row.user_id4)使用fetchall函数时,将返回所有剩下的行,如果是空行,那么将返回一个空列。(如果有很多行,这样做的话将会占用很多内存。未读取的行将会被压缩存放在数据库引擎中,然后由数据库服务器分批发送。一次只读取你需要的行,将会大大节省内存空间)1234cursor.execute("selectuser_id,user_namefromusers")rows=cursor.fetchall
5、()forrowinrows: printrow.user_id,row.user_name5)如果你打算一次读完所有数据,那么你可以使用cursor本身。123cursor.execute("selectuser_id,user_namefromusers"):forrowincursor: printrow.user_id,row.user_name6)由于cursor.execute返回一个cursor,所以你可以把上面的语句简化成:12forrowincursor.execute("selectuser_id,user_namefromu
6、sers"): printrow.user_id,row.user_name7)有很多SQL语句用单行来写并不是很方便,所以你也可以使用三引号的字符串来写:123456cursor.execute(""" selectuser_id,user_name fromusers wherelast_logon<'2001-01-01' andbill_overdue='y' """)3、参数1)ODBC支持在
7、SQL语句中使用一个问号来作为参数。你可以在SQL语句后面加上值,用来传递给SQL语句中的问号。123456cursor.execute(""" selectuser_id,user_name fromusers wherelast_logon< andbill_overdue= """,'2001-01-01','y')这样做比直接把值写在SQL语句中更加安全,这是因为每个参数传递给数据库都是单独进行的。如
8、果你使用不同的参数而运行同样的SQL语句,这样做也更