About Sqlite 之前的一篇笔记

2012-04-25 10:47:50 +08:00
 jyoe
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');
5831 次点击
所在节点    SQLite
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/33481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX