SQLite Tips

  • 附加数据库

Attach database filename as database_name;

主数据库默认为 "Main", 在使用Attach命令时, 不能将database_name指定为main;

当附加多个数据库, 并且存在相同名称的表时, 如果在命令时末指定数据库名(database_name), 则默认关联最先Attach的数据库;

建议操作相同名称的表时, 对应的数据库(database_name.table_name), 如, select * from MyDB.Table1;

  • 分离附加的数据库

Detach database database_name;

  • 数据库相关配置

pragma cache_size

设置缓冲区大小

pragma default_cache_size

在创建数据库之前通过此命令可永久设置缓冲区大小

pragma database_list

显示当前加载的数据库列表(包括Attach附加的数据库)

pragma index_info(index_name)

查看index_name对应的索引信息

pragma table_info(table_name)

查看table_name对应的表结构信息

pragma index_list(table_name)

列出table_name创建的所有索引信息

pragma Synchronous

设置数据库写同步的三种方式:

0: OFF

1: NORMAL

2: FULL (Default)

pragma auto_vacuum

设置数据库自动清理, 当大量删除数据时可自动缩小数据库文件大小, 但占用更多存储空间, 此命令必需在创建数据库之前设置

  • Sqlite_master

    Sqlite_master保存数据库所有表, 索引的元数据信息, 及创建的DDL, 可通过如下命令查看:

SELECT * FROM SQLITE_MASTER;

  • Explain query plan 查看SQL执行的流程, 可用于SQL性能分析, 改善SQL查询

EXPLAIN QUERY PLAN SELECT * FROM SQLITE_MASTER;

  • 利用null插入自动增长的值
  • SQLite在使用INSERT / UPDATE时处理冲突的五种方式:

replace

替换存在冲突的记录

ignore

SQLite继续执行但忽略冲突的记录

fail

Sqlite终止命令, 但不恢复发生冲突之前的修改记录

abort

Sqlite终止命令并恢复此命令发生冲突之前的修改

rollback

Sqlite执行回滚, 恢复到事务开始之前的状态

: INSERT OR REPLACE INTO TABLE_NAME (FIELD_NAME) VALUES (FIELD_VALUE)

当执行命令的时候, 如遇到已存在记录, 则可直接在此记录上插入更新, 而不需要再插入前执行删除.

SQLite Tips,布布扣,bubuko.com

SQLite Tips

上一篇:windows下如何设置mysql环境变量


下一篇:程序中使用事务来管理sql语句的执行,执行失败时,可以达到回滚的要求。