博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python进阶学习笔记(三)
阅读量:4330 次
发布时间:2019-06-06

本文共 2103 字,大约阅读时间需要 7 分钟。

 本节通过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函数的常用参数:

 

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

连接对象方法:

 

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

 

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

 

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

 

 

游标:

cu = conn.cursor()

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

 

 conn.commit()  

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

 

 

游标对象方法:

 

游标对象特性:

 

 

cu.fetchone()

 

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

 

conn.close()

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

 

 

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

参考:

pysqlite 简明教程:

 

SQLite转码问题:

转载于:https://www.cnblogs.com/Raul2018/p/9333808.html

你可能感兴趣的文章
C++练习 | 模板与泛式编程练习(1)
查看>>
HDU5447 Good Numbers
查看>>
08.CXF发布WebService(Java项目)
查看>>
java-集合框架
查看>>
RTMP
查看>>
求一个数的整数次方
查看>>
点云PCL中小细节
查看>>
铁路信号基础
查看>>
RobotFramework自动化2-自定义关键字
查看>>
[置顶] 【cocos2d-x入门实战】微信飞机大战之三:飞机要起飞了
查看>>
BABOK - 需求分析(Requirements Analysis)概述
查看>>
第43条:掌握GCD及操作队列的使用时机
查看>>
Windows autoKeras的下载与安装连接
查看>>
CMU Bomblab 答案
查看>>
微信支付之异步通知签名错误
查看>>
2016 - 1 -17 GCD学习总结
查看>>
linux安装php-redis扩展(转)
查看>>
Vue集成微信开发趟坑:公众号以及JSSDK相关
查看>>
技术分析淘宝的超卖宝贝
查看>>
i++和++1
查看>>