[Python常用库]sqlite

蓝色信仰IP属地: 河北
字数 104

sqlite 是一个嵌入到应用程序内的关系数据库,可以将数据保存到内存或文件
中,数据直接在进程内部通过本地API访问,没有网络通信,适合开发本地应用。

sqlite库不支持ORM,要想使用ORM,推荐的库是SQLALchemy

import sqlite3


def test_sqlite3():
    # 连接到内存数据库,这里可以指定一个本地文件名来创建数据库连接
    conn = sqlite3.connect(':memory:')

    # 获得游标
    c = conn.cursor()

    # 创建数据库
    c.execute('''CREATE TABLE stocks
             (date text, trans text, symbol text, qty real, price real)''')

    # 插入一行记录
    c.execute("INSERT INTO stocks VALUES "
              "('2006-01-05','BUY','RHAT',100,35.14)")

    # 查询记录
    # 注意,文档中警告过不要用下面这种方式拼装查询语句
    # symbol = 'RHAT'
    # c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
    # 而应该用?方式,让sql引擎来做这个工作,用元组来传递参数
    c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
    print c.fetchone()

    # 游标数据读取后,其内部会自动移动到下一行,因此要重新获取
    c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
    print c.fetchall()

    c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
    for x in c:
        print x

    # execute返回的就是游标本身
    q = c.execute('SELECT * FROM stocks WHERE symbol=?', ('RHAT',))
    assert q == c

    # 提交
    conn.commit()

    # 关闭数据库连接
    conn.close()

原文地址:http://www.isware.cn/python-modules/01-data-persistence-and-exchange/sqlite/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
2人点赞
总资产1共写了9143字获得67个赞共57个粉丝

推荐阅读更多精彩内容