sqlite3
sqlite3支持的数据类型:
NULL、INTEGER、REAL、TEXT、BLOB 但是,sqlite3也支持如下的数据类型 smallint16位整数 integer32位整数 decimal(p,s)p是精确值,s是小数位数 float32位实数 double64位实数 char(n)n长度字符串,不能超过254 varchar(n)长度不固定最大字符串长度为n,n不超过4000 graphic(n)和 char(n) 一样,但是单位是两个字符double-bytes,n不超过127(中文字) vargraphic(n)可变长度且最大长度为n date包含了年份、月份、日期 time包含了小时、分钟、秒 timestamp包含了年、月、日、时、分、秒、千分之一秒 sqlite3支持的函数
【1】日期函数
datetime(): 产生日期和时间 date(): 产生日期 time():产生时间 strftime():对以上3个函数产生的日期和时间进行格式化 用法实例: 1、SELECT date('2011-9-9','+1 day','+1 year'); 结果是 2010-09-10 2、SELECT datetime('now'); 当前日期和时间 3、SELECT datetime('now','start of month'); 本月的第一天零点,也可以设置年和日的第一天 4、SELECT datetime('now','+1 hour','-12 minute'); 当前时间加48分钟 strftime()函数可以将YYYY-MM-DD HH:MM:SS格式的日期字符串转换为其它形式的字符串
%d:天数,01-31 %f :小数形式的秒,SS.SSS %H:小时 %j:某一天是该年的第几天,001-366 %m:月份,00-12 %M:分钟,00-59 %s:从1970到现在的秒数 %S:秒,00-59 %w:星期,0-6,0是星期天 %W:某天是该年的第几周,01-53 %Y:年,YYYY %% 百分号 应用举例: SELECT strftime('%Y.%m.%d %H:%M:%S','now','localtime');
二、【算术函数】 abs(X):返回绝对值 max(X,Y[,...]):返回最大值 min(X,Y,[,...]):返回最小值 random(*):返回随机数 round(X[,Y]): 四舍五入 三、【字符串处理函数】 length(x) :返回字符串字符个数 lower(x) :大写转小写 upper(x):小写转大写 substr(x,y,Z):截取子串 like(A,B):确定给定的字符串与指定的模式是否匹配 四、【条件判断函数、集合函数、其它函数】 typeof(x):返回数据的类型 last_insert_rowid():返回最后插入的数据的ID
********************************************************************************************************************
sqlite3提供了C函数接口来操作sqlite3数据库,其中有个关键数据结构 sqlite3 * 类型
1、打开数据库
int sqlite3_open(文件名,sqlite3 **);
- 文件名若不存在,则会自动创建
返回SQLITE_OK表示操作正常,这些宏的定义在sqlite3.h文件中定义,看源代码会懂的更多
2、关闭数据库
int sqlite3_close(sqlite3 *);
3、SQL语句操作
int sqlite3_exec(sqlite3 *,const char *sql,sqlite3_callback,void *,char **errmsg);
这就是执行一条sql语句的函数
参数1:open函数得到的指针
参数2:一条sql语句,以' '结尾
参数3:sqlite3_callback是回调,当这条语句执行后,sqlite3会调用你提供的这个函数,回调函数要查阅资料
参数4:void *是自己提供的指针,可以传递任何指针到这里,这个参数最终会传到回调函数里面,如果不需要
传到回调函数里面,则可以设置为NULL
参数5:错误信息,当执行失败时,可以查阅这个指针,可以利用printf("%sn",errmsg)得到一串字符串信息,
该信息表明出错的地方
通常,sqlite3_callback和void *都设置为NULL,表示不需要回调,比如做insert、delete操作,就没有必要使用回调,而当使用select时,就要使用回调,因为sqlite3把数据查出来,得通过回调来说明查出什么数据 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|