简单的介绍

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,

....:     print

....:

0 10 鱼 Yu

1 20 cba Xu

python sqlite数据库_用Python进行SQLite数据库操作相关推荐

  1. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  2. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  3. python通过什么对象连接数据库_「Python」连接数据库的三种方式

    连接SQLite 要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection: 连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果 ...

  4. python建立简单的数据库_学会最简单的数据库|看完这7招就够了

    这是菜鸟学Python的第93篇原创文章 阅读本文大概需要4分钟 前面一篇讲了数据库的基本介绍,目前流行的三大数据库有MySQL和Mongodb(还有一个以后告诉你),除了之外还有最简单的适合小白入手 ...

  5. python excel导入oracle数据库_【Python代替Excel】12:Python操作oracle数据库

    日常工作中,如果有数据库权限,那么在oracle中提取数据.在Python中处理是比较方便的.Python也提供了一个库专门操纵数据库.今天就专门来讲讲如何在Python中操作数据库. 准备工作 需要 ...

  6. python cgi库_《Python 数据库 GUI CGI编程》

    1. 上次写在前面,我们介绍了一篇关于开始使用Python.今天我们将介绍Python数据库,GUI, CGI编程和Python和Python的区别.2.连接到数据库标准Python数据库接口是Pyt ...

  7. python网站用什么数据库_使用python读取mysql数据库并进行数据的操作

    简介:(一)环境的配置使用python调用mysql数据库要引进一些库.目前我使用的python版本是python3.6.引进库为pymysql其他对应的库可以有以下选择: mysqldb,oursq ...

  8. python如何收集数据库_利用Python操作mysql数据库

    本文主要讲解如何利用python中的pymysql库来对mysql数据库进行操作 大家在转行项目中也可以加入这一步操作,提高逼格的同时还能简化流程 正文开始: 先看一下最常见的操作:从数据库中sele ...

  9. python 异步数据库_异步Python和数据库

    python 异步数据库 The asynchronous programming topic is difficult to cover. These days, it's not just abo ...

最新文章

  1. OpenCV+python:分水岭算法
  2. 世界未解之谜之----------Android Gradle
  3. iOS获取最上层控制器
  4. (转)谷歌公开dopamine
  5. VTK:可视化算法之CutWithScalars
  6. 第二十五章补充内容 5 不能为0的变量
  7. rx 异步执行耗时_使用rx-java的异步抽象
  8. 从新手到Flutter架构师,一篇就够!吐血整理
  9. springmvc5.3 之后版本 舍弃AntPath地址匹配模式通配符 “**”用法改变。
  10. linux es数据库 head,centos7安装Elasticsearch及Es-head插件详细教程(图文)
  11. 八大梦境提醒的你疾病所在 - 健康程序员,至尚生活!
  12. MySQL:设置字段默认为当前时间
  13. c语言荷兰国旗问题算法,荷兰国旗问题
  14. 单片机蓝牙模块与手机蓝牙通信(1)
  15. 软考中级-软件设计师涉及的知识点和笔记
  16. 分解gif动图如何操作?手把手教你动图分解方法
  17. 如何写投资项目计划书?
  18. 《SQL进阶教程》学习
  19. 使用thinkadmin内置WeChatDeveloper发送公众号模板消息
  20. 北京科技大学计算机组成原理,北京科技大学二十套计算机组成原理题库及答案...

热门文章

  1. SDUT 3347 数据结构实验之数组三:快速转置
  2. 解决SQL单用户模式不能转为多用户模式
  3. 【GIT】使用Git命令窗口将本地工程提交至远程GitHub
  4. Spring 3整合Quartz 2实现定时任务(转)
  5. Windows下Qt5搭建Android开发环境笔记
  6. 实战 Lucene,第 1 部分: 初识 Lucene
  7. [MySQL FAQ]系列 -- 快速还原MyISAM表索引
  8. 利用ffmpeg来进行视频解码的完整示例代码(H.264)
  9. halcon模板匹配干扰边缘消除办法(最硬核方式)
  10. java concurrent 锁_java并发机制锁的类型和实现