码迷,mamicode.com
首页 > 数据库 > 详细

SQLite Tips

时间:2014-06-08 01:34:32      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:c   style   a   color   int   width   

  • 附加数据库

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

标签:c   style   a   color   int   width   

原文地址:http://www.cnblogs.com/zhanran/p/3774404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!