Python操作SQLite简明教程


Posted in Python onJuly 10, 2014

一、SQLite简介

SQLite是一个包含在C库中的轻量级数据库。它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库。一些应用可是使用SQLite保存内部数据。它也可以在构建应用原型的时候使用,以便于以后转移到更大型的数据库,比如PostgreSQL或者Oracle。

sqlite3模块由Gerhard Häring编写,提供了一个SQL接口,这个接口的设计遵循了由PEP 249描述的DB-API 2.0说明书。

二、创建并打开数据库

为了使用这个模块,必须先创建一个连接(Connection)对象来代表数据库。在以下的例子中,数据将会被保存在 example.db 文件中:

import sqlite3

conn = sqlite3.connect('example.db')

如果指定的数据库存在,就会直接打开这个数据库,否则将新建一再打开。
也可以提供专用名 :memory: 来在内存中建立数据库。

三、数据库连接对象

一旦拥有了连接(Connection)对象,就可以创建游标(Cursor)对象并调用他的execute()方法来执行SQL语句:

c = conn.cursor()

 

 # Create table 

 c.execute('''CREATE TABLE stocks              

     (date text, trans text, symbol text, qty real, price real)''')

 

 # Insert a row of data 

 c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")

 

 # Save (commit) the changes 

 conn.commit()

 

 # We can also close the connection if we are done with it. 

 # Just be sure any changes have been committed or they will be lost. 

 conn.close()

 

保存后的数据是持久的,并且可以在以后的访问中可用。

四、增删改查

1.建(create)表

c.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.删除表(DROP),清空表(TRUNCATE)

c.execute("drop table catalog")

上面语句将catalog表删除。

另外SQLite中没有清空表的操作,使用如下方式替代:

c.execute("delete from catalog")

3.插入(insert)数据,更改(uptate)数据

通常SQL语句中会用到python变量作为值(value)。不建议直接使用python的字符串运算来构造查询语句,因为这样是不安全的,会使你的程序容易受到SQL注入攻击。

可以使用DB-API提供的参数代换。在想使用值(value)的地方放置一个'?'作为占位符,然后提供一个由值(value)组成的元组作为游标(cursor)中execute()方法的第二个参数。(其他的数据库模块可能使用别的占位符,比如 '%s' 或者 ':1')

# Larger example that inserts many records at a time

purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),

('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),

('2006-04-06', 'SELL', 'IBM', 500, 53.00),

]

c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
c.execute("UPDATE catalog SET trans='SELL' WHERE symbol = 'IBM'")

4.查询(select)数据

正如前面所说,提倡使用元组进行操作。

# Never do this -- insecure!

symbol = 'RHAT'

c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
# Do this instead

t = ('RHAT',)

c.execute('SELECT * FROM stocks WHERE symbol=?', t)

print c.fetchone()

5.删除(delete)数据

t=('RHAT')

c.execute("DELETE * FROM stocks WHERE symbol=?", t)
Python 相关文章推荐
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
详解python做UI界面的方法
Feb 27 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
Python求均值,方差,标准差的实例
Jun 29 Python
Python实现微信机器人的方法
Sep 06 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
解决pytorch-gpu 安装失败的记录
May 24 Python
python3中apply函数和lambda函数的使用详解
Feb 28 Python
Python读取图片EXIF信息类库介绍和使用实例
Jul 10 #Python
Python采集腾讯新闻实例
Jul 10 #Python
使用wxpython实现的一个简单图片浏览器实例
Jul 10 #Python
Python语言的12个基础知识点小结
Jul 10 #Python
使用Python获取Linux系统的各种信息
Jul 10 #Python
Django中实现一个高性能计数器(Counter)实例
Jul 09 #Python
python实现的登录和操作开心网脚本分享
Jul 09 #Python
You might like
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
21个值得收藏的Javascript技巧
2014/02/04 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
python3访问sina首页中文的处理方法
2014/02/24 Python
Python Socket编程入门教程
2014/07/11 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
Python 可视化神器Plotly详解
2020/12/26 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
商务考察邀请函范文
2014/01/21 职场文书
2014国庆节标语口号
2014/09/19 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
工作所在部门证明
2014/09/21 职场文书
酒店前台辞职书
2015/02/26 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
长江七号观后感
2015/06/11 职场文书
签证工作证明模板
2015/06/15 职场文书
改进工作作风心得体会
2016/01/23 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书