python进阶学习笔记(三)数据库支持

£神魔★判官ぃ 2022-08-21 10:48 378阅读 0赞

http://www.cnblogs.com/fnng/archive/2013/05/26/3099547.html

SQLite 和PySQLite

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

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

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

入门操作

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

复制代码

  1. >>> import sqlite3
  2. >>> conn = sqlite3.connect('somedatabase.db') # 创建数据库
  3. >>>cu = conn.cursor() #能获得连接的游标
  4. #创建数据表
  5. >>> cu.execute("""create table catalog (
  6. id integer primary key,
  7. pid integer,
  8. name varchar(10) UNIQUE
  9. )""")
  10. #插入两条数据
  11. >>> cu.execute("insert into catalog values(0,0,'name1')")
  12. >>> cu.execute("insert into catalog values(1,0,'name2')")
  13. >>> conn.commit()
  14. #选择(select)
  15. >>> cu.execute("select * from catalog")
  16. >>> cu.fetchall()
  17. [(0, 0, 'name1'), (1, 0, 'name2')]
  18. >>> cu.execute("select * from catalog where id = 1")
  19. >>> cu.fetchall()
  20. [(1, 0, 'name2')]
  21. #修改(update)
  22. >>> cu.execute(“update catalog set name=’name2 where id = 0″)
  23. >>> cx.commit()
  24. >>> cu.execute(“select * from catalog”)
  25. >>> cu.fetchone()
  26. (0, 0, name2′)
  27. #删除(delete)
  28. >>> cu.execute(“delete from catalog where id = 1″)
  29. >>> cx.commit()
  30. >>> cu.execute(“select * from catalog”)
  31. >>> cu.fetchall()
  32. [(0, 0, 'name2')]

复制代码

连接

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

connect函数的常用参数:

26013751-f423523605564b5d980be2e03a8b7840.png

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

连接对象方法:

26013821-40d2871a888d49c7803449b5fb72f62a.png

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

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

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

游标:

cu = conn.cursor()

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

conn.commit()

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

游标对象方法:

26014026-60a39bfb2f3d4d46a5c74a3fc7c5aa66.png

游标对象特性:

26014109-6dc4cc5214234975b1a58f3024e920a8.png

cu.fetchone()

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

conn.close()

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

发表评论

表情:
评论列表 (有 0 条评论,378人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python_函数

    一.基本规则 1.函数定义 在python中函数用关键字def声明,参数用逗号隔开,另外需要注意的是函数没有返回类型.Python函数不指定特定的返回类型,甚至不需