原文网址 http://blog.csdn.net/jzj1993
--创建表CREATE TABLE IF NOT EXISTS table1(id INTEGER PRIMARY KEY, name text NOT NULL age INTEGER);--删除表DROP TABLE IF EXISTS table1;--增INSERT INTO table1idname) VALUES(1'Tom'--改UPDATE table1 SET name=age=5 WHERE id5--删DELETE FROM table1 WHERE id--查(单个表)SELECT count(*) FROM table1--所有列SELECT * FROM table1 WHERE id--部分列SELECT idname FROM table1 WHERE id--排序 ORDER BY hourmin ASC; ORDER BY idage DESC--查(多个表)SELECT t1.t2age FROM table1 AS t1table2 AS t2 WHERE t1= SELECT mfile martisttitleformat listtitle list_name FROM musicResource m LEFT OUTER JOIN playlistMusics p ON mfile IS NOT NULL AND mridprid LEFT OUTER JOIN playlistsInfo list ON pplaylist_idlistartist || ' - ' title '.'format f_nameFROM musicResource AS m playlistMusics AS p playlistsInfo AS list WHERE mfile IS NOT NULL AND LENGTHm)>0 AND mrid AND pSELECT DISTINCT listtitle FROM playlistsInfo AS list ORDER BY listid DESC;
从 sqlite 的 2.3.4 版本开始,如果将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么只需向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。
INSERT INTO mytable VALUES(null,'a','b',1)
在逻辑意义上等价于:
INSERT INTO mytable VALUES((SELECT MAX(id) FROM mytable)+1,1);
一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入操作的整形键.注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的, 但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的最大键已存在于表中,INSERT操作将失败并返回一个sqlITE_FULL错误码.
主要数据类型
NULL:空值
INTEGER:带符号的整型,具体取决有存入数字的范围大小
REAL:浮点数字,存储为8-byte IEEE浮点数
TEXT:字符串文本
BLOB:二进制对象
其他常用数据类型
原文链接:https://www.f2er.com/sqlite/200256.htmlfloat 32位元的实数。
double 64位元的实数。
char(n) n 长度的字串,n不能超过 254。
varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。
date 包含了 年份、月份、日期。
time 包含了 小时、分钟、秒。
timestamp 包含了 年、月、日、时、分、秒、千分之一秒。
datetime 包含日期时间格式,必须写成'2010-08-05'不能写为'2010-8-5',否则在读取时会产生错误