添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
65
51

More than 5 years have passed since last update.

SQLite3のJSON機能が便利だった

Posted at
SQLite3のJSON

SQLite3.9からJSON関連の機能が追加されたのは Sqlite 3.9 の Json1を試した で詳しく紹介されている
今回、Node.jsでプログラミングしている際、データの保存を簡単にできないかと試していたら、SQLiteのJSONが想像以上に便利だったので、その部分を伝えたい

1.テーブルの作成
create table json_table(name text primary key,value json)

 単純なテーブルの作成。データの型をjsonにしているが、SQLiteでは現時点でテキストデータとして保存される

 2.データの挿入
replace into json_table values('aaaa',json_array(1,2,3));
replace into json_table values('bbbb',json_object('あいうえお','ABC'));
replace into json_table values('cccc','{"abcd":123}')

 insertではなくreplaceで挿入しているのは、Node.jsからデータを書き換える際に変数のように使用するためだ。他のDBにも上書き挿入はあるが、SQLiteのreplace文が一番扱いが簡単だ

 ちなみにJSONのデータを入力する際は、json_arrayやjson_objectで入れても良いし、文字列の形でもかまわない

 3.データの抽出   3.1普通にselect
select * from json_table

 今回、無茶苦茶便利だと思った結果がこれだ。json_group_objectを使うと、複数のレコードを1つのJSONオブジェクトとしてまとめてくれる。たったこれだけと思うかもしれない。しかし受け取り側で余計な処理を加えずに、一発でデータを取得できるのはとにかく便利なのだ

  3.3配列一つにまとめて抽出
select json_group_array(json_object(name,json(value))) from json_table

 JSONを扱うことに関しては、NoSQL系のDBを選択した方が便利かもしれない。しかしSQL系のDBもJSON機能が当たり前のように使えるようになった現在、後者を使った方が速度と利便性の良いとこ取り出来るのだ。特にJSONと相性の良い言語では、これを使わない手は無いと思う

65
51
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
51