python sqlite数据库_用Python进行SQLite数据库操作
简单的介绍
SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。
安装与使用
1.导入Python SQLITE数据库模块
Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~
import sqlite3
2. 创建/打开数据库
在调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开。
cx = sqlite3.connect("E:/test.db")
也可以创建数据库在内存中。
con = sqlite3.connect(":memory:")
3.数据库连接对象
打开数据库时返回的对象cx就是一个数据库连接对象,它可以有以下操作:
commit()--事务提交
rollback()--事务回滚
close()--关闭一个数据库连接
cursor()--创建一个游标
关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,你也可以设置isolation_level=None,这样就变为自动提交模式。
4.使用游标查询数据库
我们需要使用游标对象SQL语句查询数据库,获得查询对象。 通过以下方法来定义一个游标。
cu=cx.cursor()
游标对象有以下的操作:execute()--执行sql语句
executemany--执行多条sql语句
close()--关闭游标
fetchone()--从结果中取一条记录,并将游标指向下一条记录
fetchmany()--从结果中取多条记录
fetchall()--从结果中取出所有记录
scroll()--游标滚动
1. 建表
cu.execute("create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE,nickname text NULL)")
上面语句创建了一个叫catalog的表,它有一个主键id,一个pid,和一个name,name是不可以重复的,以及一个nickname默认为NULL。
2. 插入数据
请注意避免以下写法:
# Never do this -- insecure 会导致注入攻击
pid=200
c.execute("... where pid = '%s'" % pid)
正确的做法如下,如果t只是单个数值,也要采用t=(n,)的形式,因为元组是不可变的。
for t in[(0,10,'abc','Yu'),(1,20,'cba','Xu')]:
cx.execute("insert into catalog values (?,?,?,?)", t)
简单的插入两行数据,不过需要提醒的是,只有提交了之后,才能生效.我们使用数据库连接对象cx来进行提交commit和回滚rollback操作.
cx.commit()
3.查询
cu.execute("select * from catalog")
要提取查询到的数据,使用游标的fetch函数,如:
In [10]: cu.fetchall()
Out[10]: [(0, 10, u'abc', u'Yu'), (1, 20, u'cba', u'Xu')]
如果我们使用cu.fetchone(),则首先返回列表中的第一项,再次使用,则返回第二项,依次下去.
4.修改
In [12]: cu.execute("update catalog set name='Boy' where id = 0")
In [13]: cx.commit()
注意,修改数据以后提交
5.删除
cu.execute("delete from catalog where id = 1")
cx.commit()
6.使用中文
请先确定你的IDE或者系统默认编码是utf-8,并且在中文前加上u
x=u'鱼'
cu.execute("update catalog set name=? where id = 0",x)
cu.execute("select * from catalog")
cu.fetchall()
[(0, 10, u'\u9c7c', u'Yu'), (1, 20, u'cba', u'Xu')]
如果要显示出中文字体,那需要依次打印出每个字符串
In [26]: for item in cu.fetchall():
....: for element in item:
....: print element,
....:
0 10 鱼 Yu
1 20 cba Xu
python sqlite数据库_用Python进行SQLite数据库操作相关推荐
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python通过什么对象连接数据库_「Python」连接数据库的三种方式
连接SQLite 要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection: 连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果 ...
- python建立简单的数据库_学会最简单的数据库|看完这7招就够了
这是菜鸟学Python的第93篇原创文章 阅读本文大概需要4分钟 前面一篇讲了数据库的基本介绍,目前流行的三大数据库有MySQL和Mongodb(还有一个以后告诉你),除了之外还有最简单的适合小白入手 ...
- python excel导入oracle数据库_【Python代替Excel】12:Python操作oracle数据库
日常工作中,如果有数据库权限,那么在oracle中提取数据.在Python中处理是比较方便的.Python也提供了一个库专门操纵数据库.今天就专门来讲讲如何在Python中操作数据库. 准备工作 需要 ...
- python cgi库_《Python 数据库 GUI CGI编程》
1. 上次写在前面,我们介绍了一篇关于开始使用Python.今天我们将介绍Python数据库,GUI, CGI编程和Python和Python的区别.2.连接到数据库标准Python数据库接口是Pyt ...
- python网站用什么数据库_使用python读取mysql数据库并进行数据的操作
简介:(一)环境的配置使用python调用mysql数据库要引进一些库.目前我使用的python版本是python3.6.引进库为pymysql其他对应的库可以有以下选择: mysqldb,oursq ...
- python如何收集数据库_利用Python操作mysql数据库
本文主要讲解如何利用python中的pymysql库来对mysql数据库进行操作 大家在转行项目中也可以加入这一步操作,提高逼格的同时还能简化流程 正文开始: 先看一下最常见的操作:从数据库中sele ...
- python 异步数据库_异步Python和数据库
python 异步数据库 The asynchronous programming topic is difficult to cover. These days, it's not just abo ...
最新文章
- OpenCV+python:分水岭算法
- 世界未解之谜之----------Android Gradle
- iOS获取最上层控制器
- (转)谷歌公开dopamine
- VTK:可视化算法之CutWithScalars
- 第二十五章补充内容 5 不能为0的变量
- rx 异步执行耗时_使用rx-java的异步抽象
- 从新手到Flutter架构师,一篇就够!吐血整理
- springmvc5.3 之后版本 舍弃AntPath地址匹配模式通配符 “**”用法改变。
- linux es数据库 head,centos7安装Elasticsearch及Es-head插件详细教程(图文)
- 八大梦境提醒的你疾病所在 - 健康程序员,至尚生活!
- MySQL:设置字段默认为当前时间
- c语言荷兰国旗问题算法,荷兰国旗问题
- 单片机蓝牙模块与手机蓝牙通信(1)
- 软考中级-软件设计师涉及的知识点和笔记
- 分解gif动图如何操作?手把手教你动图分解方法
- 如何写投资项目计划书?
- 《SQL进阶教程》学习
- 使用thinkadmin内置WeChatDeveloper发送公众号模板消息
- 北京科技大学计算机组成原理,北京科技大学二十套计算机组成原理题库及答案...
热门文章
- SDUT 3347 数据结构实验之数组三:快速转置
- 解决SQL单用户模式不能转为多用户模式
- 【GIT】使用Git命令窗口将本地工程提交至远程GitHub
- Spring 3整合Quartz 2实现定时任务(转)
- Windows下Qt5搭建Android开发环境笔记
- 实战 Lucene,第 1 部分: 初识 Lucene
- [MySQL FAQ]系列 -- 快速还原MyISAM表索引
- 利用ffmpeg来进行视频解码的完整示例代码(H.264)
- halcon模板匹配干扰边缘消除办法(最硬核方式)
- java concurrent 锁_java并发机制锁的类型和实现