[Python常用库]sqlite

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/

你可能感兴趣的:([Python常用库]sqlite)