加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite内存数据库与硬盘数据库

发布时间:2020-12-12 20:11:08 所属栏目:百科 来源:网络整理
导读:SQLite是一个非常方便好用的嵌入式数据库,没有独立的进程,随着应用程序的进程一起启动。 它可以选择是内存数据库还是硬盘数据库,通常在内存中进行数据方面的操作比硬盘上的操作快几个数量级。 在特定环境下,可以先在内存中操作数据库,然后再将数据持久

SQLite是一个非常方便好用的嵌入式数据库,没有独立的进程,随着应用程序的进程一起启动。

它可以选择是内存数据库还是硬盘数据库,通常在内存中进行数据方面的操作比硬盘上的操作快几个数量级。

在特定环境下,可以先在内存中操作数据库,然后再将数据持久化到硬盘上。

具体代码如下:

#encoding=utf-8
import sqlite3
import StringIO
def query(db,sql):
    cur = db.cursor()
    cur.execute(sql)
    for row in cur:
        print row
    cur.close()
def execute_sql(db,sql):
    cur = db.cursor()
    cur.execute(sql)
    cur.close()
    db.commit()
if __name__=='__main__':
    #use memory database
    db = sqlite3.connect(':memory:')
    sql1 = "create table tb_memory(id integer primary key,name text)"
    sql2 = "insert into tb_memory(name) values('aaaaaaaaaaaaaaa')"
    sql3 = "insert into tb_memory(name) values('bbbbbbbbbbbbbbb')"
    sql4 = "insert into tb_memory(name) values('ccccccccccccccc')"
    sql5 = "select * from tb_memory"
    execute_sql(db,sql1)
    execute_sql(db,sql2)
    execute_sql(db,sql3)
    execute_sql(db,sql4)
    query(db,sql5)
    print '---------------------------------------------'
    buffer = StringIO.StringIO()
    for line in db.iterdump():
        buffer.write(line)
    db.close()
    
    #execute sql script;write into disk database
    db1 = sqlite3.connect("test.db")
    cursor = db1.cursor()
    cursor.executescript(buffer.getvalue())
    cursor.close()
    db1.close()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读