显示标签为“sqlite3”的博文。显示所有博文
显示标签为“sqlite3”的博文。显示所有博文

2012/07/26

简单的几条SQLite3数据库查询语句

假设我们有一张如下数据的SQLite3数据表:
那么我们可以进行如下操作:

查看表中的所有数据
SELECT * FROM PushEvent;

查找所有event_id小于205530的记录
SELECT * FROM PushEvent WHERE event_id < 205530;

查找当前表中所记录的最大的event_id
SELECT max(event_id) FROM PushEvent;

查找所有早于2012年7月26之前创建的记录
SELECT * FROM PushEvent WHERE strftime('%s', create_at) < strftime('%s', "2012-07-26");

查找指定的5分钟区间的记录
SELECT * FROM PushEvent WHERE 
strftime('%s', created_at) < strftime('%s', "2012-07-26 07:11:00")
AND 
strftime('%s', created_at) > strftime('%s', "2012-07-26 07:06:00");

2012/07/25

使用ruby简单操作sqlite3数据库

昨天有写到一个简单的github event爬虫,今天考虑做一个简单的增强,把数据放到sqlite数据文件中去。

因为是第一次跟sqlite3打交道,做简要记录。

首先通过命令行创建一个数据库。
sqlite3 events.sqlite3
这会创建一个新的,名为events.sqlite3的空数据文件。接着创建一张测试表:
CREATE TABLE PushEvent (
  event_id INTEGER PRIMARY KEY,
  created_at text,
  actor_login text,
  repo_name text,
  payload_size INTEGER DEFAULT NULL
);
这样我们已经在新的数据文件中创建了一张测试表,包含5个字段。

 接下来就是用ruby往里边插入数据了,代码如下:
require 'sqlite3'
begin
    db = SQLite3::Database.open "../db/events.sqlite3"
rescue SQLite3::Exception => e
    puts "Cannot open SQLite3 db"
    puts e
end

db.execute "INSERT INTO PushEvent VALUES(205205, '2012-07-25T08:21:34Z',
'ju', 'zh/Registrat', 1)"

db.close

如果你的系统没有sqlite3这个gem,则可以通过一下命令安装
gem install sqlite3