V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SQLite
jyoe
V2EX  ›  SQLite

About Sqlite 之前的一篇笔记

  •  
  •   jyoe ·
    woody1983 · 2012-04-25 10:47:50 +08:00 · 5993 次点击
    这是一个创建于 4630 天前的主题,其中的信息可能已经有所发展或是发生改变。
    About Sqlite
    1001 wget http://www.sqlite.org/sqlite-autoconf-3071100.tar.gz
    1002 tar zxvf sqlite-autoconf-3071100.tar.gz
    1003 cd sqlite-autoconf-3071100
    1008 ./configure
    1009 make
    1010 make install

    sqlite3 test // 没有就创建这个db 有了就进入该db 我靠 好灵巧
    木有show tables; 但可以用.tables or .table
    木有show databases; 但有.databases;
    sqlite> .schema
    CREATE TABLE user(id integer primary key,username text ,country text);
    CREATE TABLE user_card(id integer primary key,username text ,country text);
    sqlite> .schema user
    CREATE TABLE user(id integer primary key,username text ,country text);

    这让show create table xxx 情何以堪...


    order by 啥的还都正常

    DataType可怜 但精巧够用
    NULL
    INTEGER
    REAL
    TEXT
    BLOB
    但貌似也支持date time啥的这些常规Type


    About Create Index
    CREATE [UNIQUE] INDEX index-name
    ON [database-name .] table-name (column-name [, column-name]*)
    [ON CONFLICT conflict-algorithm]

    Query:
    SELECT [ALL | DISTINCT] result [FROM table-list]
    [WHERE expr]
    [GROUP BY expr-list]
    [HAVING expr]
    [compound-op select]*
    [ORDER BY sort-expr-list]
    [LIMIT integer [(OFFSET|,) integer]]

    sqlite3也接受如下的数据类型:
    smallint 16 位元的整数。
    interger 32 位元的整数。
    decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
    float 32位元的实数。
    double 64位元的实数。
    char(n) n 长度的字串,n不能超过 254。
    varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。
    graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。
    vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n不能超过 2000
    date 包含了 年份、月份、日期。
    time 包含了 小时、分钟、秒。
    timestamp 包含了 年、月、日、时、分、秒、千分之一秒。

    Sqlite Datetime
    sqlite> SELECT strftime('%Y/%m/%d', '2004-10-31');
    2004/10/31
    sqlite> SELECT strftime('%Y/%m/%d', datetime());
    2012/04/05

    sqlite> SELECT strftime('%Y-%m-%d %H:%M:%S', datetime());
    2012-04-05 03:02:57

    sqlite> SELECT strftime('%Y-%m-%d %H:%M:%S day of the week:%w Week of year:%W', datetime());
    2012-04-05 03:04:52 day of the week:4 Week of year:14

    // %w Day of week, 0-6 (0 is Sunday)


    SELECT strftime('%H:%M:%S',time(), '+1 hours'); // 一个小时之后
    SELECT strftime('%Y-%m-%d %H:%M:%S',datetime(),'+1 years'); //一年之后
    SELECT strftime('%Y-%m-%d %H:%M:%S',datetime(),'+1 hours','+1 years'); // 一年之后的这一天的一小时以后
    SELECT datetime('now', 'start of month'); // 2012-04-01 00:00:00 这个月的第一天 month可以改成年
    SELECT time('12:00', 'localtime');
    SELECT time('12:00', 'utc');
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2785 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:05 · PVG 21:05 · LAX 05:05 · JFK 08:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.