《Python操作SQLite3数据库》快速上手教程
为什么使用SQLite数据库?
对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用需要全功能的关系型数据库。SQLite的目标则是介于两者之间的中小系统。它有以下特点:
- 轻量级
- 速度快
- 无需部署
- 没有服务器
- 很少或不需要进行管理
SQLite正在迅速流行起来,并且它还适用于不同的平台。Python 2.5中引入了SQLite数据库适配器作为sqlite3模块,这是Python首次将数据库适配器纳入到标准库中。
SQLite被打包到Python的标准库中,并不是因为它比其他数据库和适配器更加流行,而是因为它足够简单,像DBM模块一样使用文件(或内存)作为其后端存储,不需要服务器,也没有许可证的问题。它是Python中其他类似的持久化存储解决方案的一个替代品,不过除此以外,它还拥有SQL接口。
在标准库中拥有该模块,可以使你在Python中使用SQLite开发更加快速,并且使你在有需要的时候,能够更加容易地移植到更加强大的RDBMS(比如MySQL、PostgreSQL、Oracle或SQL Server)中。如果你不需要那些强大的数据库,那么sqlite3已经是很好的选择了。
我们接下来演示几个常用操作:
- 创建数据库
- 创建表
- 在表中插入行
- 更新表中的行
- 删除表中的行
- 删除表
代码结构如下:

(笔者提示:如果你也用的是Windows平台,可以安装一个工具叫DB Browser for SQLite,可以查看数据库文件里面的表结构和数据,非常方便)

SQLite3的使用,sqlite3_create.py的代码如下:
#!/usr/bin/python
import sqlite3 conn = sqlite3.connect('test.sqlite') print "opened database successfully"
conn.execute("drop table COMPANY") conn.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''') print "Table created successfully" conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )") conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )") conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )") conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )") conn.commit()
conn.close()
从已有的的test.sqlite 文件中,读取数据,sqlite3_select.py的代码如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 conn = sqlite3.connect('test.sqlite') print "opened database successfully" cur = conn.cursor() cur.execute("SELECT id,name,age FROM COMPANY;") for item in cur.fetchall():
print item conn.commit()
conn.close()
《Python操作SQLite3数据库》快速上手教程的更多相关文章
- Python操作MySQL数据库(步骤教程)
我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...
- Airtest 快速上手教程
一.Airtest 简介: AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App. 自动化脚本录制.一键回放.报告查看,轻而易举实现自动化测试流程 支持基于图像识别的 Airt ...
- 【转】python操作mysql数据库
python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...
- Python操作sqlite数据库小节
学习了Python操作sqlite数据库,做一个小结,以备后用. import sqlite3import os# 进行数据库操作时,主要是参数如何传输try:# 链接数据库conn=sqlite3. ...
- Python 操作MySQL 数据库
Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的 ...
- Python操作SQLite数据库的方法详解
Python操作SQLite数据库的方法详解 本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开 ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- Python操作Access数据库
我们在这篇文章中公分了五个步骤详细分析了Python操作Access数据库的相关方法,希望可以给又需要的朋友们带来一些帮助. AD: Python编 程语言的出现,带给开发人员非常大的好处.我们可以利 ...
- 新浪SAE快速上手教程
新浪SAE快速上手教程[1]如何免费开通新浪云 2014-07-18 > 新浪SAE快速上手教程[2]如何创建.删除应用 2014-07-24 > 新浪SAE快速上手教程[3]如何上传应 ...
随机推荐
- 【CVE-2016-10009】OpenSSH < 7.4 - agent Protocol Arbitrary Library Loading
粗看了一下,发现这个漏洞还是比较鸡肋的.如果前提条件满足,该漏洞可以在ssh server执行任意指令.不过前提是:1.攻击者可以往受害者磁盘上写文件.
- JavaScript If...Else 语句
JavaScript If...Else 语句 JavaScript的开头和结束标签: <script type="text/javascript"></scri ...
- UNIX下的LD_PRELOAD环境变量
UNIX下的LD_PRELOAD环境变量 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久.不过,在这里,我还是想讨论一下这个环境变量.因为这个环境变量所带来的安全问题非常严重,值得 ...
- 浅谈Android样式开发之布局优化
引言 今天我们来谈一下Android中布局优化常用的一些手段.官方给出了3种优化方案,分别是</include>.</viewstub>.</merge>标签,下面 ...
- 的vim和emacs常用配置记录
因为经常改变工作环境,所以在这里记录一下我的.vimrc文件和.emacs文件的内容. vimrc的配置文件,主要是设置语法高亮,和tab键的宽度,个人喜欢设置为4个空格的分量. " set ...
- Java学习过程中的总结的小知识点(长期更新)
Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...
- jcFeather Maya 羽毛插件
jcFeather 2.8.6 插件持续更新地址为:http://www.jerrykon.com/jcFeather.html 和 http://www.creativecrash.com/maya ...
- 搭建Apache Web服务器
1.下载Apache服务器的安装包 地址:http://httpd.apache.org/download.cgi 从http://archive.apache.org/dist/httpd/bina ...
- -webkit-box-flex被内容撑开了
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Volley框架使用笔记
1.初始化请求队列 RequestQueue RequestQueue queue= Volley.newRequestQueue(context); 2.StringRequest 网络请求 Get ...