ケルベロスさんのプログラミング / けるぷろ

プログラマのけるさんことケルベロスです

SQLiteについて

SQLite

普段の開発ではCoreDataしかほとんど触ることがありません なのでSQLiteそのものについて調べてみる

  • 特徴

    • 小中規模アプリケーション向けの軽量RDBMS(リレーショナルデータベースマネジメントシステム)
    • アプリケーションに組み込んで利用することができる
    • ユーザ認証がない
    • データベースファイルが1つにまとめられている
    • コマンドラインツールsqlite3を使って直接データベースを操作する
  • コマンドラインで使ってみる

    $ sqlite3 ~/Desktop/mydb.sqlite3  #データベースファイルを指定して起動する 存在しない場合  
    sqlite> create table human(name, age, perfect); #テーブル作成  
    splite> .tables #テーブル確認
    human
    splite> insert into human values('Suzuki',20,0); #インサート
    splite> insert into human values('Sato',24,0); #インサート
    splite> insert into human values('Nakata',29,1); #インサート
    splite> insert into human values('Hasegawa',24,0); #インサート
    splite> .headers on #データ表示時にヘッダが追加される
    splite> .mode column #カラムの長さを合わせる
    splite> select * from human; #データ取得
    name        age         perfect
    ----------  ----------  ----------
    Suzuki      20          0
    Sato        24          0
    Nakata      29          1
    Hasegawa    24          0
    sqlite> select name from human where perfect = '1'; #データ取得
    name      
    ----------
    Nakata
    sqlite> create index nameindex on human(name); #インデックス作成
    sqlite> select perfect from human where name = 'Hasegawa'; #データ取得
    perfect      
    ----------
    0
    sqlite> select perfect from human where name = 'Nakata'; #データ取得
    perfect      
    ----------
    1
  • .importを使ってみる
    insertdata.txtというファイルを用意しておく
    inesrtdata.txtの中身
    Suzuki|28|0
    Sato|48|0
    Nakata|19|1
    Hasegawa|84|0
    sqlite> drop table human; #いったんテーブルを削除
    sqlite> create table human(name,age,perfect); #再度作成する
    sqlite> .import ./insertdata.txt human #ファイルからデータをインポート
    sqlite> select * from human; #データ取得
    name        age         perfect
    ----------  ----------  ----------
    Suzuki      28          0
    Sato        48          0
    Nakata      19          1
    Hasegawa    84          0
    splite> .exit #終了

感想

お手軽でした 次はRealmについて調べようと思います

参考

SQLiteの公式ホームベージ https://www.sqlite.org/ RealmとSQLiteのパフォーマンス検証を行った話 - Qiita