【入門】SQLite とは?使い方を解説

SQLiteSQLite とは、軽量な RDBMS です。

大規模な RDBMS と違い、サーバーの構築が不要なため、ちょっとした検証に便利です。

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

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

https://docs.python.org/ja/3/library/sqlite3.html
関連記事:データベースの基礎知識編
学習ロードマップ
スポンサーリンク

SQLite3 コマンドで操作

コマンドラインツールである SQLite3 で、SQLite を操作してみます。

SQLite3 をインストール

sudo dnf install -y sqlite

SQLite3 でデータベースの開き方

sqlite3 test.db

該当するデータベースファイルが存在しない場合は、新規に作成されます。

SQL コマンドを実行

通常の RDBMS と同様に、SQL コマンドを実行できます。

CREATE TABLE test(id,"hoge");
INSERT INTO test VALUES(1,"hoge");
SELECT * FROM test;
1|hoge

SQL コマンドの詳細は、以下の記事をご覧ください。

SQLite3 コマンドの使い方

SQLite3 では、.help コマンドで SQLite3 独自のコマンドを確認できます。

.help

ここからは、よく利用するコマンドを紹介します。

カラムの表示

.headers ON
SELECT * FROM test;
id|name
1|hoge

データベースファイルを確認

.database
main: /home/ec2-user/test.db r/w

テーブル一覧を表示

.table
sqlar  test

なお、sqlar は SQLite がデフォルトで作成するアーカイブ用のテーブルです。

This repository contains sources for the "SQLite Archiver" program. This program (named "sqlar") operates much like "zip", except that the compressed archive it builds is stored in an SQLite database instead of a ZIP archive.

https://sqlite.org/sqlar/doc/trunk/README.md

SQLite3 を終了

.exit
スポンサーリンク

Python で SQLite3

Python で SQLite のデータベースを操作してみます。

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...