//返回最后一次insert的rowid,如果没有插入就返回0 (DB session断开后也返回0, 是保存在进程的内存中) SELECT LAST_INSERT_ROWID(); //找到最大的rowid(如果是自定义的primaryKey, 比如 NumID 则都可以用, 反正是alias 别名) SELECT *,MAX(rowid) FROM Table_1004A;//推荐 SELECT *,MAX(NumID ) FROM Table_1004A;//推荐 SELECT *,MIN…
SQLite 使用主键,ROWID 及自增列 之前关注过一些嵌入式数据库,倒时 SQLite 风头更劲,在 Android 上被应用,在 HTML5 中一些浏览器的 Local Database 的实现也是 SQLite.因在 PhoneGap 中使用数据库存储的选择也期待着它的表现,首先要建个数据库,第一要义就是主键的选择,自增列是最有效更简单的. 这里就看下 SQLite 怎么使用自动列,了解三个内容,ROWID, ROWID 的别名,自动列与序列表,归根结底它们都是 ROWID. 1. R…
在SQLite中,主要有两种表类型,带rowid的表和不带rowid的表.我们利用create table 建一张表,默认都会有一个隐含名字为rowid的主键,暂且称带rowid的表为普通表.如果建表时指定 WITHOUT ROWID属性,那么建的表就是不带rowid的表.那么这两种表有什么区别?这篇文章主要讨论这两种表的存储实现,以及它们的优缺点和适用的应用场景. 1.rowid是什么? SQLite中rowid是一个隐身存储的列,8个字节存储,它有两个别名 _ROWID_ 和 OID,类型定…
,EXPLAIN分析 没有建立索引之前.分析都是表扫描: sqlite> EXPLAIN SELECT *  FROM COMPANY  WHERE Salary < 20000; addr        opcode      p1          p2          p3          p4          p5          comment ----------  ----------  ----------  ----------  ----------  ------…
前言 查询处理及优化是关系数据库得以流行的根本原因,也是关系数据库系统最核心的技术之一.SQLite的查询处理模块很精致,而且很容易移植到不支持SQL的存储引擎(Berkeley DB最新的版本已经将其完整的移植过来). 查询处理一般来说,包括词法分析.语法分析.语义分析.生成执行计划以及执行计划几个部分.SQLite的词法分析器是手工写的(比较简单),语法分析器由Lemon生成,语义分析主要是进行语义方面的一些检查,比如table是否存在等.而执行计划的生成及执行是最核心的两部分,也是相对比较…
原文:http://www.cnblogs.com/peida/archive/2008/11/29/1343832.html Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用     在用sqlite设计表时,突然想到一个问题,就是我设计的表中,每个表都有一个自己的整形id值作为主键,其实可以不指定这么一个id值,sqlite内部本来就会为每个表加上一个 rowid,这个rowid可以当成一个隐含的字段使用,但是由sqlite引擎来维护的,在3…
在SQLite的查询结果中显示行号,可以使用select rowid as RowNumber ,* from WSCLanguage: select rowid as RowNumber ,* from WSCLanguage ORDER BY CreateTime; select distinct keyword from articlecontent;  /* select last_insert_rowid()  aaa   返回最后一条记录ID*/ select *  from (se…
SQLite数据库中rowid使用   SQLite中每个表都默认包含一个隐藏列rowid,使用WITHOUT ROWID定义的表除外.通常情况下,rowid可以唯一的标记表中的每个记录.表中插入的第一个条记录的rowid为1,后续插入的记录的rowid依次递增1.即使插入失败,rowid也会被加一.所以,整个表中的rowid并不一定连续,即使用户没有删除过记录.   由于唯一性,所以rowid在很多场合中当作主键使用.在使用的时候,select * from tablename 并不能获取ro…
catalog . SQLite简介 . Sqlite安装 . SQLite Programing . SQLite statements 1. SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操…
abs(X) abs(X)返回 X 的绝对值. Abs(X) returns NULL if X is NULL. Abs(X) return 0.0  if X is a string or blob that cannot be converted to a numeric value. If X is  the integer -9223372036854775807 then abs(X) throws an integer overflow error  since there is…