Python操作SQLite数据库

连接数据库

从2.5版本开始,Python的标准库中就有了一个专门用于SQLite的sqlite3模块。连接SQLite数据库方式如下:

import sqlite3 as dbapi
con = dbapi.connect('population.db')
cur = con.cursor()

第一个语句用于引用数据库API;
第二个语句创建了一个到数据库的连接(connection):调用数据库模块的connect方法。该方法的参数是一个字符串,它定义了我们所要连接的那个数据库。由于SQLite是将整个数据库保存在磁盘上的某个文件中的,因此这里就是该文件的路径。如果该数据库不存在,就会直接创建出来;
第三个语句用于获取一个游标,它类似于文本编辑器中的光标,用于记录我们当前在数据库中的位置;当多个程序同时访问数据库时,该数据库可以知道谁在干什么。

数据类型对比

SQLite Python 说明
NULL NontType 啥也不知道
INTEGER int或long 整数
REAL float 8字节浮点数
TEXT unicode或str 字符串
BLOB buffer 二进制数据(Binary Large OBject)

操作数据库

现在我们就可以操作数据库了,我们将要执行的SQL语句放到一个字符串中,并告诉数据库去执行这个字符串,如下所示:

cur.execute('CREATE TABLE Student(Stuid TEXT, Age INTERGER, Name TEXT)')
cur.execute('INSERT INTO Student VALUES("00001", 20, "Lucy")')
cur.execute('INSERT INTO Student VALUES("00002", 21, "Lily")')

在将数据库插入到数据库或对数据库做了任何其他修改之后,我们必须通过连接的commit方法提交(commit)这些修改:

con.commit()

现在我们可以用如下方式来获取数据:

cur.execute('SELECT * FROM Student')
print(cur.fetchone())
print(cur.fetchall())

fetchone方法以元组的形式返回每条记录,其中各元素按查询所指定的顺序排列。如果不再有其他记录存在,则返回None。默认情况下,数据库中的TEXT是以Unicode字符串的形式返回的,我们可以告诉sqlite3以str的类型返回字符串:将连接的text_factory成员设置为类型str。

con.text_factory = str

fetchall方法的功能是以元组列表的形式返回查询所产生的全部数据。

一种较为快捷的插入方式:

ss = [("00003", 20, "David"), ("00004", 23, "Cneagle"),
      ("00005", 22, "qxzy")]
for s in ss:
    cur.execute('INSERT INTO Student VALUES(?, ?, ?)', (s[0], s[1], s[2]))
con.commit()

这次execute的调用用到了两个参数,第一个是带有问号的SQL语句,这些问号是将要插入的值的占位符,第二个是由待插入值所组成的元组,数据库在执行该语句时,会用这些值从左到右地替换那些问号。

注意:

  • SQL的数据类型与编程语言中的数据类型并不完全相同,因此在编写应用程序的时候很有必要在它们之间进行类型转换。
  • 在被提交之前,对数据库做出的修改不会有任何效果。这保证了当数据库被两个以上的程序同时操作时,能够保持一致的状态。

转载:http://blog.csdn.net/foreverling/article/details/44906393

时间: 2024-10-26 14:34:17

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

python 操作 sqlite 数据库简单教程

sqlite介绍 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了. 它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl.C#.PHP.Java等,还有ODBC接口. 比起Mysql.PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快. SQLite第一个A

python操作sqlite的CRUD实例分析

  这篇文章主要介绍了python操作sqlite的CRUD实现方法,涉及Python操作SQLite数据库CURD相关技巧,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import sqlite3 as db conn = db.connect('mytest.db') cursor = conn.cursor() cursor.execute("drop table if exi

自制的一个操作sqlite数据库的库文件

 自制的一个操作sqlite数据库的库文件,写时用的IDE是KDevelop3.3.4. 头文件: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #ifndef _SQLITE3LIB_H_ #define _SQLITE3LIB_H_   #include <stdio.h> #include <stdlib.h> #include<sqlite3.

Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解_Android

本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录一下,以备查询,故此写的比较啰嗦: 步骤如下: 一.介绍: 此文主要是介绍怎么使用android自带的数据库SQLite,以及把后台的数据用ListView控件显示 二.新建一个android工程--DBSQLiteOperate 工程目录: 三.清单列表AndroidManifest.xml的配置

C#操作SQLite数据库之读写数据库的方法_C#教程

本文实例讲述了C#操作SQLite数据库之读写数据库的方法.分享给大家供大家参考,具体如下: 这里演示读写数据库并在窗体(Form)中显示其数据,其方式为: 读: Database(SQLite) -> DataAdapter -> DataSet -> DataGridView 写: Database(SQLite) <- DataAdapter <- DataSet <- DataGridView 1.假设现有数据库表student,其字段如下: ID(自增字段,主

C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)_C#教程

本文实例讲述了C#操作SQLite数据库方法.分享给大家供大家参考,具体如下: SQLite介绍 SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQ

Python操作Access数据库基本步骤分析_python

本文实例分析了Python操作Access数据库基本步骤.分享给大家供大家参考,具体如下: Python编程语言的出现,带给开发人员非常大的好处.我们可以利用这样一款功能强大的面向对象开源语言来轻松的实现许多特定功能需求.比如Python操作Access数据库的功能实现等等.在Python操作Access数据库之前,首先,你应安装了Python和Python for Windows extensions. 步骤之1.建立数据库连接 import win32com.client conn = wi

js+html5操作sqlite数据库的方法_javascript技巧

本文实例讲述了js+html5操作sqlite数据库的方法.分享给大家供大家参考,具体如下: //copyright by lanxyou lanxyou[at]gmail.com var lanxDB=function(dbname){ var db=openDatabase(dbname,'1.0.0','',65536); return{ //返回数据库名 getDBName:function(){ return dbname; }, //初始化数据库,如果需要则创建表 init:func

C#操作SQLite数据库

SQLite介绍 SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页:http://www.sqlite.o