2.4.4 Python存储之SQLite

原创 2018年04月16日 09:52:23
SQLite是一个小型的关系型数据库,它最大的特点在于不需要服务器零配置。前面的MySQL需要“安装”,安装之后,才运行起来,其实是已经有一个相应的服务器在跑着呢。而SQLite不需要这样,首先Python已经将相应的驱动模块作为标准库一部分了,只要安装了Python,就可以使用;另外,它也不需要服务器,可以类似操作文件那样来操作SQLite数据库文件。还有一点也不错,SQLite源代码不受版权限制。
SQLite也是一个关系型数据库,所以SQL语句也可以在里面使用。
与操作MySQL数据库类似,对于SQLite数据库也要通过以下几步。
建立连接对象。
连接对象方法:建立游标对象。
游标对象方法:执行sql语句。
1,建立连接对象
由于SQLite数据库的驱动已经在Python里面了,所以,只要引用就可以直接使用。
>>> import sqlite3
>>> conn = sqlite3.connect("D://test.txt")
>>> dir(conn) #查看内建方法
这样就得到了连接对象,在sqlite3.connect("D://test.txt")语句中,如果已经有了那个数据库,就连接上它;如果没有,就新建一个。注意,这里的路径可以随意指定。查看相应位置已经有了文件。
2,游标对象
这个和MySQL一致
>>> cur = conn.cursor() #创建游标对象
>>> dir(cur) #查看内建函数
>>> create_tab = "create table users (id int,name text,age int)" #建表语句
>>> cur.execute(create_tab) #创建表
<sqlite3.Cursor object at 0x02AE8AE0>
>>> cur.execute('insert into users values (1,"zhangsan",18)') #插入数据
<sqlite3.Cursor object at 0x02AE8AE0>
>>> conn.commit() #提交
>>> cur.close() 关闭游标
>>> conn.close() #关闭连接
查询结果
>>> conn = sqlite3.connect("D://test.txt")
>>> cur = conn.cursor()
>>> cur.execute('select * from users')
<sqlite3.Cursor object at 0x031A3720>
>>> print cur.fetchall() #查询所有结果
[(1, u'zhangsan', 18)]
批量插入
>>> sql = [(2,"lisi",20),(3,"wangwu",22),(4,"zhaoliu",25)] #拼装插入的数值
>>> cur.executemany('insert into users values (?,?,?)',sql) #批量运行
<sqlite3.Cursor object at 0x031A3720>
>>> conn.commit() #提交
打印结果:
>>> results = cur.execute('select * from users')
>>> for result in results:
print result

(1, u'zhangsan', 18)
(2, u'lisi', 20)
(3, u'wangwu', 22)
(4, u'zhaoliu', 25)
更新(修改)
>>> cur.execute("update users set name='zhangsan1' where id = 1") #修改
<sqlite3.Cursor object at 0x031A3720>
>>> conn.commit()
>>> cur.execute("select * from users where id = 1")
<sqlite3.Cursor object at 0x031A3720>
>>> cur.fetchone() #打印一条
(1, u'zhangsan1', 18)
删除
>>> cur.execute("delete from users where id = 1")
<sqlite3.Cursor object at 0x031A3720>
>>> conn.commit()
>>> cur.execute("select * from users")
<sqlite3.Cursor object at 0x031A3720>
>>> cur.fetchall()
[(2, u'lisi', 20), (3, u'wangwu', 22), (4, u'zhaoliu', 25)]
基本这些应该够用了。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011418530/article/details/79956677

SQLite数据库的使用(图片在数据库中的存取)

// 数据库存放的目录 NSString *dbPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/tes...
  • ShengQiangLiu
  • ShengQiangLiu
  • 2014-08-28 22:12:30
  • 2954

利用python将数据转存入sqlite3

案例的目标是将存在文件中的json格式数据转存到sqlite数据库中。因此,需要利用python逐行读取json文件中数据,对数据进行解析和入库。具体操作步骤如下。...
  • elecjack
  • elecjack
  • 2016-03-22 20:40:47
  • 6326

sqlite 存储、读取图片

用 iPhone 的 sqlite 数据库读写图片,先把你的图片转换成 NSData 形式,然后在数据库添加一行 blob 数据,代码如下(data就是图片) : NSMutableStri...
  • ALDRIDGE1
  • ALDRIDGE1
  • 2014-02-04 11:37:09
  • 1488

Python访问sqlite3数据库取得dictionary的正路!

【引子】 很多人都知道,Python里是内置了很好用的sqlite3的。但这个库有个缺陷,在执行fetchall()/fetchone()等方法后,得到的是一个tuple。以前吧,做自己的小项目,t...
  • zhengxiaoyao0716
  • zhengxiaoyao0716
  • 2015-12-12 21:18:30
  • 1604

Sqlite3数据块以BLOB字段存储二进制数据块

int CppSQLite3DB::execDMLBlob(const char* szSQL,const char* blob1,const char* blob2,const char* blob...
  • qing666888
  • qing666888
  • 2016-04-08 14:18:11
  • 2752

python使用sqlite简单介绍

python连接sqlite
  • fhl812432059
  • fhl812432059
  • 2016-04-21 15:16:35
  • 909

使用sqlite保存图片和导出图片

#include#include#include"sqlite3.h"using namespace std; int main() {  sqlite3 *db;  sqlite3_stmt *st...
  • linhui568
  • linhui568
  • 2010-09-03 22:46:00
  • 9635

sqlite3的图片的(二进制数据)存取操作

sqlite3的二进制存取操作 前言上篇介绍了sqlite3的一些常用插入操作方法和注意事项,在实际项目中遇到了图片缓存的问题,由于服务器不是很稳定,且受到外界环境的干扰(例如断电,图片存储挂掉),一...
  • roy1261
  • roy1261
  • 2016-06-21 16:41:48
  • 2687

Python3 初学实践案例(8)使用 sqlite3 数据库存储生成的密码,prettytable 的使用

Python3 初学实践案例(8)使用 sqlite3 数据库存储生成的密码,prettytable 的使用在前面我用 python 脚本实现的 cli 版本的密码生成与管理工具中,我使用文本文件来存...
  • FungLeo
  • FungLeo
  • 2017-12-20 18:17:39
  • 738

python用法:处理sqlite中的中文字符时遇到的问题

作为初学才,学起python,是挺快,但是也不免常常出些小错。在访问sqlite3的时候,我写了下边的测试代码。文件test.py是utf-8编码的,OK,结果没问题。#!/usr/bin/env p...
  • iihero
  • iihero
  • 2008-03-03 12:21:00
  • 8781
收藏助手
不良信息举报
您举报文章:2.4.4 Python存储之SQLite
举报原因:
原因补充:

(最多只允许输入30个字)