美文网首页Python点滴
[Python常用库]sqlite

[Python常用库]sqlite

作者: 蓝色信仰 | 来源:发表于2015-08-03 10:08 被阅读203次

    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

        本文链接:https://www.haomeiwen.com/subject/ebjvqttx.html