一般的な RDBMS と異なり、サーバーの構築が不要なため、ちょっとした検証に便利です。
それなりの規模の本番環境では、おとなしく RDBMS を使いましょう。
一部のアプリケーションは内部データ保存に SQLite を使えます。
https://docs.python.org/ja/3/library/sqlite3.html
また、SQLite を使ってアプリケーションのプロトタイプを作り、その後そのコードを PostgreSQL や Oracle のような大規模データベースに移植するということも可能です。
コマンドラインツールで SQLite3
コマンドラインツールを利用して SQLite3 を利用します。
SQLite3 をインストール
sudo yum install -y sqlite
SQLite3 の使い方
touch test.db
sqlite3 test.db
CREATE TABLE test(id,"hoge");
INSERT INTO test VALUES(1,"hoge");
SELECT * FROM test;
1|hoge
データベースファイル test.db に対して、SQL 文が実行できることが確認できます。
なお、SELECT 文のカラム名を表示するには「.headers ON」コマンドを利用します。
.headers ON
SELECT * FROM test;
id|name 1|hoge
sqlite3 のコマンド一覧は、「.help」を実行すれば確認できます。
.exit
Python で SQLite3
Python で SQLite3 を利用してデータベースを操作してみます。
もし、わからない SQL コマンドがあれば、以下の記事をご覧ください。
vim sqlite.py
import sqlite3 dbpath = 'test.db' #テーブルを保存するファイル con = sqlite3.connect(dbpath) #データベースファイルにコネクションを確立 cur = con.cursor() #カーソルインスタンスを作成 cur.execute('CREATE TABLE IF NOT EXISTS test(id INTEGER, name STRING)') #テーブル作成 cur.execute('INSERT INTO test VALUES(1,"hoge")') #レコードを挿入 # tuple で1行ずつ取得 print("tuple で取得") for row in cur.execute('SELECT * FROM test'): #SELECT 文の結果を print print(row) #list で一括取得 cur.execute('SELECT * FROM test') print("\nlist で取得") print(cur.fetchall()) con.commit() #コミット cur.close() #カーソルをクローズ con.close() #コネクションをクローズ
python3 sqlite.py
tuple で取得 (1, 'hoge') list で取得 [(1, 'hoge')]
SQL コマンド「SELECT * FROM test」の結果が取得できていることが確認できます。
ls
sqlite.py test.db
データベースファイル test.db が作成されていることが確認できます。
参考資料

sqlite3 --- SQLite データベースに対する DB-API 2.0 インターフェース
ソースコード: Lib/sqlite3/ SQLite は、軽量なディスク上のデータベースを提供する C ライブラリです。別のサーバプロセスを用意する必要なく、 SQL クエリー言語の非標準的な一種を使用してデータベースにアクセスできます。一部のアプリケーションは内部データ保存に SQLite を使えます。また、SQL...