zoukankan      html  css  js  c++  java
  • sqlite数据类型

     sqlite数据类型(时间 日期 double等)

     

     

    sqlite3支持的数据类型:

    NULL、INTEGER、REAL、TEXT、BLOB
    但是,sqlite3也支持如下的数据类型
    smallint           16位整数
    integer             32位整数
    decimal(p,s)   p是精确值,s是小数位数
    float                  32位实数
    double             64位实数
    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("%s ",errmsg)得到一串字符串信息,
    该信息表明出错的地方

    通常,sqlite3_callback和void *都设置为NULL,表示不需要回调,比如做insert、delete操作,就没有必要使用回调,而当使用select时,就要使用回调,因为sqlite3把数据查出来,得通过回调来说明查出什么数据
     
     
     
     
    A   B             
    ----------         
    1   中  
    1   人      
    2   三
    2   天
    2   李

    变成:

    A   B
    -------------------
    1   中,人

    2   三,天,李

     

    --GROUP_CONCAT()函数用来合并列的内容

    SELECT A,GROUP_CONCAT(B) FROM TEST GROUP BY A

    SQLite中怎么将两个字段字符串合并连接为一个
    在SQLite下我测试了
    SELECT 'A'+'B'
    结果为0
    select "A"+"1" 结果为1
    select "A"+1 结果为1
    select 2+1 结果为3
     
     
    感觉在“+”运算中,SQLite将字符串非数字串都当作0处理了
     
    加号就是针对数字的,所以应该用|| 来拼接字符串的结果
     
    select wid||word from table1;
  • 相关阅读:
    bstToDoublyList
    Springboot系列1_什么是Springboot
    servlet总结
    JavaFx开发桌面软件
    在Emacs中使用plantuml画UML图
    IIS7.0上传文件限制的解决方法
    开源免费的天气预报接口API以及全国所有地区代码(国家气象局提供)
    如何得到天气情况?在那个接口获取?
    Windows Update 时出现8024402C的错误
    OC中copy的使用
  • 原文地址:https://www.cnblogs.com/hitler/p/3611598.html
Copyright © 2011-2022 走看看