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

时间: 2024-10-24 21:26:54

SQLite Tips的相关文章

MeasureSpec&OpenGL&SQLite——tips

MeasureSpec.EXACTLY 容器视图调用方已经指定了孩子视图的精确大小 MeasureSpec.AT_MOST 容器视图调用方设置了最大值,孩子视图可以请求更少的空间 MeasureSpec.UNSPECIFIED 容器视图对孩子视图没有限制,孩子视图可以随意请求大小 部件调用setMeasureDimensions设置高度和宽度属性.然后,其父亲节点可以调用方法getMeasuredHeight和getMeasuredWidth来获取这些属性. surfaceCreated负责前期

<tips>sqlite安装

sqlite下载页面: http://www.sqlite.org/download.html 不同操作系统下载不同的文件. 值得注意的是: 下载的时候不光要下载x86/x64文件,还要下载tools.解压后确保下载下来的文件中有sqlite3.def.sqlite3.dll 和 sqlite3.exe. 文件下载好后, 创建文件夹 C:\sqlite,将sqlite3.def.sqlite3.dll 和 sqlite3.exe移入这个文件夹中. 添加 C:\sqlite 到 PATH 环境变量

.Net SQlite 开发Tips

最近在做SQLite开发,开发环境是VS2010+ SQLite Ado.Net data Provider.这套Data Provider程序是基于System.Data.SQLite 1.0.66版本,下面就总结一下开发SQLite过程中的经验. 1.程序部署报错 因为SQLite Ado.Net data Provider会将常用dll注册到GAC,所以在本机运行时一般不会有问题,但是部署到别的机器就会报错.这时需要做两个操作: 将System.Data.SQLite.dll.System

一种远程修改sqlite数据库的方法

一.实际需求 工业设备DA660是专门用来实现工业上可编程设备之间交换信息的交换机.现在要使得DA660采集下行设备的实时数据,然后传送到上位机显示.上位机还可以远程修改DA660的数据库配置. 二.数据库设计 我在DA660中设计了sqlite3数据库,名为da660.db,里面存放很多表,其中有一张表示baseinfo,其结构定义如下: 通道号是从0到15之间的正整数,从机地址是从0到256之间的正整数,设备类型定义为0到5之间的正整数,设备类型可从{"xz2000", "

Android Tips – 填坑手册

出于: androidChina   http://www.androidchina.net/3595.html 学习 Android 至今,大大小小的坑没少踩,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,我遇到的坑都顺利地被填平了. 为了便于日后遇到同样的问题时,能免于再次搜索带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了. 如果你是个 Android 新人,那么我希望这份列表,可以成为你踩到坑时的不完全手册. 当然,这份列表一定会有遗漏

Android数据存储 如何搞定SQLite Database

转载请注明出处:明桑Android 在Android平台下有各种不同方法可以实现应用程序数据的存储和管理(SharedPerferences,File,SQLiteDatabase,网络存储),方法的选择依赖于需要存储的数据类型和数据结构.SQLite数据库能够安全而有效地解决结构化数据的存储问题: 这里主要介绍SQLite相关的用法,以及对数据库常见操作的封装. 最后,作为一个综合案例,做一个简单的学生管理的demo,创建student.db,包括name,grade字段,实现增.删.改.查的

Python中使用SQLite

参考原文 廖雪峰Python教程 使用SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是用C写的,而且体积很小,所以经常被集成到各种应用程序中,甚至在IOS和Android的APP中都可以集成. Python中内置了SQLite3,连接到数据库后,需要打开游标Cursor,通过Cursor执行SQL语句,然后获得执行结果,Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供符合Python标准的数据库驱动即可.试一下:

Android项目通过Android Debug Database实时查看本地Sqlite数据库内容

前几天写Android项目时,想和Sqlyog那样图形化查看数据库中的文件,由于Android自带小型的Sqlite轻量级数据库,在查找方法时发现了一个特别简单适用的方法,纪录一下. 在android项目的build.gradle中添加代码: debugImplementation 'com.amitshekhar.android:debug-db:1.0.6' 之后Sync.启动AVD,或者连接USB. 在Logcat中输入D/DebugDB,即可查看ip与端口,在浏览器访问即可. 如果用的是

Android sqlite cursor的遍历

查询并获得了cursor对象后,用while(corsor.moveToNext()){}遍历,当corsor.moveToNext()方法调用,如果发现没有对象,会返回false public List<MMImage> getAll() { List<MMImage> list = new ArrayList<MMImage>(); Cursor c = null; try { c = database.query(TABLE, null, null, null,