About Sqlite
1001 wget
http://www.sqlite.org/sqlite-autoconf-3071100.tar.gz1002 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');