【入門】SQLite の使い方

SQLiteSQLite とは、データベースエンジンです。

一般的な RDBMS と異なり、サーバーの構築が不要なため、ちょっとした検証に便利です。

それなりの規模の本番環境では、おとなしく RDBMS を使いましょう。

一部のアプリケーションは内部データ保存に SQLite を使えます。
また、SQLite を使ってアプリケーションのプロトタイプを作り、その後そのコードを PostgreSQL や Oracle のような大規模データベースに移植するということも可能です。

https://docs.python.org/ja/3/library/sqlite3.html
スポンサーリンク

コマンドラインツールで 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...