SQLite

SQLite

sqlite-image,200px

種別リレーショナルデータベース
ライセンスパブリックドメイン
ウェブサイトhttps://sqlite.org/

SQLite (エスキューライト) は、リレーショナルデータベースの一つである。

SQLiteはサーバ・クライアント方式ではなく、アプリケーション組み込みのライブラリである。

データ型

INTEGER64ビット整数
REAL64ビット浮動小数点数
TEXT任意長文字列 (UTF-8/16)
BLOB任意長バイナリ

SQLサンプルコード

-- 文字列は''で囲み、連結は||演算子を使う
SELECT 'Hello,' || 'world';

-- 予約語と区別するため、識別子は""で囲む
SELECT "IN" FROM "WHERE";

-- レコードがあれば更新、無ければ追加 (PRIMARY KEYが必要)
REPLACE INTO page (title,contents) VALUES(?,?);

C言語サンプルコード

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>


int main(int argc,char **argv)
{
  sqlite3 *db;
  if (sqlite3_open("test.db", &db) != SQLITE_OK){
    fprintf(stderr, "cannot open test.db\n");
    exit(1);
  }

  /* プリペアドステートメントを作成 */
  sqlite3_stmt *st;
  if (sqlite3_prepare_v2(db, "SELECT name FROM book WHERE price>?", -1, &st, NULL) != SQLITE_OK) {
    fprintf(stderr, "%s\n", sqlite3_errmsg(db));
    exit(1);
  }

  /* 1番目のプレースホルダーに100を設定 */
  sqlite3_bind_int(st, 0, 100);

  /* 1行ずつ取り出す */
  while (sqlite3_step(st) == SQLITE_ROW) {
    printf("%s\n", sqlite3_column_text(st, 0));
  }
  sqlite3_finalize(st);
  sqlite3_close(db);

  return 0;
}