用Python进行SQLite数据库操作

用Python进行SQLite数据库操作

-----转自:http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html

简单的介绍

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就是一个数据库连接对象,它可以有以下操作:

  1. commit()--事务提交
  2. rollback()--事务回滚
  3. close()--关闭一个数据库连接
  4. cursor()--创建一个游标

关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,你也可以设置isolation_level=None,这样就变为自动提交模式。

4.使用游标查询数据库 

我们需要使用游标对象SQL语句查询数据库,获得查询对象。 通过以下方法来定义一个游标。

cu=cx.cursor()

游标对象有以下的操作:

  1. execute()--执行sql语句
  2. executemany--执行多条sql语句
  3. close()--关闭游标
  4. fetchone()--从结果中取一条记录,并将游标指向下一条记录
  5. fetchmany()--从结果中取多条记录
  6. fetchall()--从结果中取出所有记录
  7. 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

时间: 03-10

用Python进行SQLite数据库操作的相关文章

iOS 中SQLite数据库操作

在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 demo 具体过程: 1.创建名为 SQLite_Manage 的.h .m 文件,导入头文件 <sqlite3.h> 2.数据库在一个app中只有一个,使用单例模式:(代码如下) 1 + (SQLite_Manager *)sharedManager{ 2 static SQLite_Mana

C# SQLite 数据库操作

C# SQLite 数据库操作学习 运行环境:Window7 64bit,.NetFramework4.61,C# 7.0: 编者:乌龙哈里 2017-03-19 参考: SQLite 官网 SQL As Understood By SQLite System.Data.SQLite 菜鸟教程 SQL 教程 章节: 1.下载安装 2.数据类型 3.创建数据库 4.删除数据库 5.创建表 6.删除表 7.查询表结构 8.更改表名 9.增加列(字段) 10.读取创建表的 SQL 语句 11.更改列名

安卓SQLite数据库操作,半小时开发新闻管理系统,纯干货

本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁. 本教程由今日头条-全栈攻城狮号首发,都是一个字一个字码的.请尊重劳动成果,转载请注明出处. 更多文章请关注:做全栈攻城狮.写代码也要读书,爱全栈,更爱生活.请不要吝啬您的手指,关注我吧.关注有惊喜哦. 安卓开发系列文章目录请查看:http://www.chengxiaoxiao.com/bozhu/1336.html 上篇文章:安卓项目-利用Sqlite数据库,开发新闻发布系统讲解了S

实验8 SQLite数据库操作

课程名称 基于Android平台移动互联网开发 实验日期 2016年4月15日 实验项目名称 数独游戏界面设计 实验地点 S3010 实验类型 □验证型    √设计型    □综合型 学  时 一.实验目的及要求(本实验所涉及并要求掌握的知识点) [目的] 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. [要求] 程序主界面是通讯录的目录显示手机上联系人的名称.点击联系人的姓名可以显示联系人的详细信息.在按了MEMU键之后会弹出

python小白-day9 数据库操作与Paramiko模块

paramiko模块 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostna

SQLite数据库操作

安卓中创建数据库的步骤: 1.写一个类MyOpenHelper继承SQLiteOpenHelper类 2.覆写其中的OnCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 3.创建数据库: MyOpenHelper helper = new MyOpenHelper(this); //创建数据库 需要调用 getReadableDatabase 或 getWritableDa

Android内部自带的SQLite数据库操作dos命令

1:什么叫做SQLite数据库 Android系统内核是Linux系统,Android系统很特殊,他自带了一个SQLite数据库,轻量型的一款嵌入式的数据库 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.操作简单,你如果是之前学过其他的数据库的基础的话, 操作起来可以说是举手之劳. 2:这个SQLite数据库的数据类型有哪些. Integer  整型  有符号整数 -1,0,1,2,3- Real 浮点型以 8字节 IEEE 浮点数存储. Text. 值是文本字符串,使用数据

跟我学Android之十三 SQLite数据库操作

本章内容 第1节  SQLite数据库概述 第2节  SQLite建库建表 第3节 管理数据库连接 第4节  操作数据库数据 第5节  数据绑定 本章目标 掌握SQLite数据的基本特点与工具使用. 熟练掌握SQLite建库建表的方法. 熟练掌握连接SQLite数据库的方法. 熟悉SQLite数据库的升级与建立方法. 掌握通过数据绑定完成数据显示的方法. SQLite数据库简介 SQLite是一种非常流行的嵌入式数据库,是由C语言编写而成,是一款轻型关系型数据库,支持SQL,支持多种操作系统,完

Python进行MySQL数据库操作

最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运维来说,都应该学会用Python来提高工作效率.下面简单的介绍一下Python DB API MySQLdb 使用Python DB API访问数据库的流程图: 在Centos下安装MySQLdb模板(为了方便演显,我用yum安装,也是最快最省事的安装): yum install MySQL-pyt