python进阶学习笔记(三)数据库支持 (实际工作用到了)
来源:互联网 发布:linux oracle安装在哪 编辑:程序博客网 时间:2024/05/23 15:06
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的模块导入。之后就可以创建一个到数据库文件的连接----如果文件不存在就会被创建----通过提供一个文件名:
>>> 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函数的常用参数:
connect函数返回连接对象。这个对象表示目前和数据库的会话。连接对象支持的方法如下;
连接对象方法:
commit 方法总是可用的,但如果数据库不支持事务,它就没有任何作用。如果关闭了连接但还有未提交的事务,它们会隐式地回滚---但是只有在数据库支持持回滚的时候才可以。
rollback 方法可能不可用,因为不是所有的数据库都支持事务(事务是一系列动作)。如果可用,那么就可以“撤销”所有未提交的事务。
cursor 方法将我们引入另外一个主题:游标对象。通过游标扫行SQL 查询并检查结果。游标连接支持更多的方法,而且可能在程序中更好用。
游标:
cu = conn.cursor()
能获得连接的游标,这个游标可以用来执行SQL查询。
conn.commit()
完成插入并且做出某些更改后确保已经进行了提交,这样才可以将这些修改真正地保存到文件中。
游标对象方法:
游标对象特性:
cu.fetchone()
fetchall()返回结果集中的全部数据,结果为一个tuple的列表。每个tuple元素是按建表的字段顺序排列。注意,游标是有状态的,它可以记录当前已经取到结果的第几个记录了,因此,一般你只可以遍历结果集一次。在上面的情况下,如果执行fetchone()会返回为空。这一点在测试时需要注意。
conn.close()
可以在每次修改数据库后都进行提交,而不是仅仅在准备关闭才提交,准备关闭数据时,使用close 方法。
- python进阶学习笔记(三)数据库支持 (实际工作用到了)
- python进阶学习笔记(三)数据库支持
- python进阶学习笔记(三)数据库支持
- python学习笔记(三)--类进阶
- 【Python学习笔记(三)】:爬虫用到的知识点总结
- Udacity机器学习(进阶)P3用到的函数笔记
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 转载--机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- Python学习笔记(三)Python数据库操作。
- python进阶学习笔记(三)——实现python任意个数的关键字参数
- XML学习笔记(三)进阶篇
- Python进阶(三)
- java用到了实际工作中,确实很方便
- 有向图的强连通分量(tarjan算法)
- iOS 指纹识别
- display:inline、block、inline-block的区别
- while死循环
- java多线程学习-java.util.concurrent详解(四) BlockingQueue
- python进阶学习笔记(三)数据库支持 (实际工作用到了)
- 争吵的日子
- android(base)Activity启动方法
- android activitymanager
- poj 3449 Geometric Shapes(判断多边形是否相交)
- 也谈谈百度
- 用C++语言写游戏——打怪小游戏
- java回调函数
- Android自定义Toast的时长、位置、及显示的View