SQLite

作者: 一块大番薯 | 来源:发表于2018-04-10 19:38 被阅读13次

    嵌入式数据库,一个数据库就是一个文件。体积小,常集成到应用程序或手机 APP 中。
    Python 内置。
    资料:http://www.runoob.com/sqlite/sqlite-python.html

    常用方法

    import sqlite3
    
    conn = sqlite3.connect('test.db')  # Connection object, created immediately
    c = conn.cursor() # Cursor object
    
    c.execute('''create table user
           (id int primary key not null,
           name text not null)''') # Cursor object, created immediately
    
    c.execute("insert into user (id, name) values (1, 'aa')")
    c.execute("insert into user (id, name) values (2, 'bb')")
    
    c.execute('select * from user where id=?', (1,))
    v = c.fetchall()  # 返回一个列表 [(1, 'aa')],一个元素就是一条记录
    
    c.execute("update user set name=? where id=?", ('bbb', 2))
    c.execute("delete from user where id=?", (1,))
    
    c.close()
    conn.commit() # execute 操作写入数据库
    conn.close()
    

    小技巧

    很多时候程序需要重复运行调试,如果代码写得不好,有可能会重复创建表而导致报错,或重复插入导致主键重复而报错。解决方案如下:

    create table if not exists mytable (field0 int, field1 varchar(20))
    insert or ignore into mytable (field0, field1) values (value0, value1)
    insert or replace into mytable (field0, field1) values (value2, value3)
    

    由于没有指定 primary key 时,会自动创建 _id,所以判断记录相等时,如果没有指定 primary key,此时可以类似这样做:unique (host, port) 。

    相关文章

      网友评论

        本文标题:SQLite

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