https://www.sqlite.org/index.html  官网

http://tutlane.com/tutorial/sqlite/sqlite-case-statement   

 http://www.runoob.com/sqlite/sqlite-data-types.html

http://www.w3school.com.cn/sql/sql_where.asp

 

以下语法基于FMDB框架

 

表名不能以数字开头

CREATE TABLE IF NOT EXISTS %@ (ID INTEGER PRIMARY KEY AUTOINCREMENT , Name TEXT NOT NULL, Voice TEXT NOT NULL, CreatedTime TEXT NOT NULL, Type TEXT NOT NULL)

主键自增 :PRIMARY KEY AUTOINCREMENT

判断表是否存在: IF NOT EXISTS

不允许为空

 

REPLACE INTO %@ (ID, Name, Voice, CreatedTime, Type) VALUES (NULL, ?, ?, ?, ?)

有则更新,无则添加 REPLACE INTO

int 或其他数据类型要使用@(1)NSNumber对象

 

SELECT * FROM %@ WHERE Type='%@' ORDER BY ID DESC LIMIT  %d ,%d

字符判断字符要加单引号 Type='%@'

倒叙 DESC

分页LIMIT

 

多语句嵌套查询

CREATE TABLE IF NOT EXISTS MSCOUNT (\

         USERID TEXT NOT NULL,\

         NAME TEXT NOT NULL,\

         MSID TEXT PRIMARY KEY NOT NULL,\

         ITEM INTEGER DEFAULT 1 NOT NULL)

REPLACE INTO MSCOUNT VALUES ('%@','%@','%@',(SELECT ITEM FROM MSCOUNT WHERE MSID='%@' AND USERID='%@')+1);

最好使用nsstring拼接好再执行,

查询语句如果没有查询到就会返回默认值;