python进阶学习笔记(三)

系统 1734 0

python进阶学习笔记(三)

2013-05-26 01:47  虫师 阅读( ... ) 评论( ... ) 编辑 收藏

 

  本节通过SQLite了解数据库操作

-------------------------

 

数据库支持

 

 

 

使用简单的纯文本只能实现有退限的功能,所需要引入数据库,完成更强大的功能,本节使用的简单数据库 SQLite 

 

SQLite  PySQLite

 

sqlite 是非常著名的开源嵌入式数据库软件,它可以嵌入到其他程序中使用,并且提供 SQL 接口用来查询,非常方便。它的官方站点为 http://www.sqlite.org

  pysqlite  则是一个  sqlite  为  python  提供的  api  接口,它让一切对于  sqlite  的操作都变得异常简单

 

python2.5 版本这后, SQLite 的优势在于它的一个包装( PySQLite )已经被包括在标准库内,所以我们可以直接使用。

 

 

 

入门操作

 

可以将 SQLite 作为名为 sqlite3 的模块导入。之后就可以创建一个到数据库文件的连接 ---- 如果文件不存在就会被创建 ---- 通过提供一个文件名:

                >>> 
                
                  import
                
                
                   sqlite3

                
                >>> conn = sqlite3.connect(
                
                  '
                
                
                  somedatabase.db
                
                
                  '
                
                ) 
                
                  #
                
                
                   创建数据库
                
                
>>>cu = conn.cursor()   
                
                  #
                
                
                  能获得连接的游标
                
                
                  #
                
                
                  创建数据表
                
                
>>> cu.execute(
                
                  """
                
                
                  create table catalog (
    id integer primary key,
    pid integer,
    name varchar(10) UNIQUE
   )
                
                
                  """
                
                
                  )

                  
# 插入两条数据 >>> cu.execute( " insert into catalog values(0,0,'name1') " ) >>> cu.execute( " insert into catalog values(1,0,'name2') " ) >>> conn.commit()
# 选择(select) >>> cu.execute( " select * from catalog " ) >>> cu.fetchall() [(0, 0, ' name1 ' ), (1, 0, ' name2 ' )] >>> cu.execute( " select * from catalog where id = 1 " ) >>> cu.fetchall() [( 1, 0, ' name2 ' )] # 修改(update) >>> cu.execute(“update catalog set name=’name2′ where id = 0″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchone() (0, 0, ‘name2′)
# 删除(delete) >>> cu.execute(“delete from catalog where id = 1″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchall()
[(0, 0, ' name2 ' )]

 

 

连接

为了使用基础数据库系统,首先必须连接到它,这个时候需要使用具有名称的 connect 函数,该函数有多个参数,而具体用哪个参数取决于数据库。

connect 函数的常用参数:

python进阶学习笔记(三)_第1张图片

connect 函数返回连接对象。这个对象表示目前和数据库的会话。连接对象支持的方法如下;

连接对象方法:

python进阶学习笔记(三)_第2张图片

commit  方法总是可用的,但如果数据库不支持事务,它就没有任何作用。如果关闭了连接但还有未提交的事务,它们会隐式地回滚 --- 但是只有在数据库支持持回滚的时候才可以。

 

rollback  方法可能不可用,因为不是所有的数据库都支持事务(事务是一系列动作)。如果可用,那么就可以“撤销”所有未提交的事务。

 

cursor  方法将我们引入另外一个主题:游标对象。通过游标扫行 SQL  查询并检查结果。游标连接支持更多的方法,而且可能在程序中更好用。

 

 

游标:

cu = conn.cursor()

能获得连接的游标, 这个游标可以用来执行 SQL 查询。

 

 conn.commit()   

完成插入并且做出某些更改后确保已经进行了提交,这样才可以将这些修改真正地保存到文件中。

 

 

游标对象方法:

python进阶学习笔记(三)_第3张图片

游标对象特性:

python进阶学习笔记(三)_第4张图片

 

cu.fetchone()

 

fetchall()返回结果集中的全部数据,结果为一个tuple的列表。每个tuple元素是按建表的字段顺序排列。注意,游标是有状态的,它可以记录当前已经取到结果的第几个记录了,因此,一般你只可以遍历结果集一次。在上面的情况下,如果执行fetchone()会返回为空。这一点在测试时需要注意。

 

conn.close()

可以在每次修改数据库后都进行提交,而不是仅仅在准备关闭才提交,准备关闭数据时,使用 close 方法。

 

 

---------------

参考:

pysqlite  简明教程 http://blog.donews.com/limodou/archive/2004/07/05/37895.aspx

 

SQLite 转码问题: http://blog.sina.com.cn/s/blog_68013e850100w66d.html  

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论