SQLite とは
SQLite は,リレーショナル・データベース・マネジメントシステム(RDBMS)の一つで,2000 年にリリースされた。軽量でコンパクトな RDBMS で,単一ファイルで使用できるため,小規模なシステムやスマホアプリへの組み込み用途で幅広く使用されている。
SQLite の特徴
Python や PHP に標準搭載
SQLite は,Python や PHP に標準で搭載されている。
※Python には SQLite が sqlite3 として,標準でインストールされている。
そのため,SQLite を Python と PHP で扱うことは容易である。
SQLite はパブリックドメイン
SQLite のライセンスはパブリックドメインであり,無料で利用できる。
クライアント・サーバ型データベースではない
データベース用のサーバが不要で,単独アプリとして動作できる。そのため,データベース用のサーバの設定の手間はない。また,コンピュータのストレージ上に単一ファイル(しかも軽量)として保存できる。
SQLite の機能制約
SQLite は前述のような長所もあるが,以下のような短所もある。
同時接続に弱い
同時接続に強くないため,大規模なシステムには不向きと言われている。社内の小規模システム(10 名程度で使用)やアクセス数の少ない Web ページのデータベースとして使用する分には,特に問題はない。
SQL の複雑な処理はサポートしていない
SQLite は,SQL の複雑な処理はサポートしていない。例えば,以下の処理はサポートされていない。
- 作成したテーブルに制約を追加できない
- カラムを削除できず,カラム名の変更もできない
- Left outer join だけをサポートし,Right outer join や Full outer join はサポートされていない。
SQLite の技術情報
データ型
SQLite で使用できるデータ型を次表に示す。
データ型 | 説明 |
---|---|
INTEGER | 整数 |
NUMERIC | 整数または小数 |
REAL | 小数 |
TEXT | テキスト |
BLOB | バイナリーデータ(画像,動画など)を格納 |
Python での SQLite を使う
Python では,以下の手順で SQLite を使う。
- ライブラリ SQLite3 をインポートする。
- データベースに接続する。
- Cursor オブジェクトを作成する。
- SQL 文(検索,挿入,更新など)を実行する。
- (必要な場合)変更をデータベースに保存する。
- データベースを閉じる。
上記の手順を Python で記載すると,以下のようになる。
import sqlite3
# データベースに接続する
con = sqlite3.connect('data.db')
# Cursor オブジェクトを作成する
c = con.cursor()
sql = 'SELECT * FROM users'
for row in c.execute(sql):
print(row)
# データベースを閉じる
con.close()
PHP で SQLite を使う
PHP で SQLite を使うときも,Python と同様の手順で行う。
一例として,PHP で SQLite を扱うプログラムを記載する。
$db = new SQLite3('./db/riyousya.db');
//メールアドレスをキーにユーザID,氏名,所属,職位を取得
$result = $db->query("SELECT * FROM userTable where メールアドレス = '$email'");
while ($row = $result->fetchArray()) {
$userID=$row[0];
$shimei=$row[1];
$syozoku=$row[4];
$syokui=$row[5];
}
$db->close();
DB Browser for SQLite
SQLite のデータベースを作成・閲覧・編集するためのソフトウェアとして DB Browser for SQLite が便利である。