PythonでSQLiteを使う方法!初心者でもわかるデータベース基本操作
生徒
「Pythonでデータを保存したり管理したりできるって聞いたんですが、どうやるんですか?」
先生
「PythonではSQLiteというデータベースを使うと、ファイル感覚でデータを保存できます。」
生徒
「データベースって難しそうなイメージがあります……」
先生
「大丈夫です。まずはメモ帳に情報を書き留める感覚から考えてみましょう。」
1. SQLiteとは?
SQLiteは、軽量でシンプルなデータベースです。データベースとは、たくさんの情報を整理して保存するための箱のようなものです。SQLiteはサーバーを用意する必要がなく、パソコンの中にファイルとして保存される特徴があります。
たとえば、住所録や買い物リストを紙に書く代わりに、パソコンの中で表として管理するイメージです。Pythonには最初からSQLiteを使うための機能が用意されているため、特別な準備をしなくてもすぐに始められます。
2. PythonでSQLiteを使う準備
PythonでSQLiteを使うには、sqlite3という標準ライブラリを使います。ライブラリとは、便利な道具がひとまとめになった箱のようなものです。Pythonをインストールしていれば、追加の作業は必要ありません。
まずは、SQLiteのデータベースファイルを作成し、接続するところから始めます。
import sqlite3
conn = sqlite3.connect("sample.db")
print("データベースに接続しました")
データベースに接続しました
このコードでは、「sample.db」というファイルが自動的に作られます。これがデータベース本体です。
3. テーブルを作成してみよう
データベースの中では、情報をテーブルという表の形で管理します。テーブルは、エクセルの表とよく似ていて、列と行で構成されています。
ここでは、名前と年齢を保存するシンプルなテーブルを作成します。
import sqlite3
conn = sqlite3.connect("sample.db")
cur = conn.cursor()
cur.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
""")
conn.commit()
print("テーブルを作成しました")
テーブルを作成しました
cursorは、データベースに命令を送るための窓口のような役割をします。
4. データを登録する方法
次に、テーブルの中にデータを追加します。これは、ノートに新しい行を書き足すような作業です。
import sqlite3
conn = sqlite3.connect("sample.db")
cur = conn.cursor()
cur.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("太郎", 20))
conn.commit()
print("データを登録しました")
データを登録しました
「?」を使うことで、後から安全に値を入れることができます。これにより、入力ミスや不正な操作を防げます。
5. データを取り出してみよう
登録したデータは、必要なときに取り出して確認できます。これは、ノートを開いて内容を読み返すイメージです。
import sqlite3
conn = sqlite3.connect("sample.db")
cur = conn.cursor()
cur.execute("SELECT name, age FROM users")
rows = cur.fetchall()
for row in rows:
print(row)
('太郎', 20)
fetchallは、検索結果をまとめて取り出すための命令です。
6. データを更新・削除する
データベースでは、すでにある情報を書き換えたり、不要になった情報を消したりすることもできます。
import sqlite3
conn = sqlite3.connect("sample.db")
cur = conn.cursor()
cur.execute("UPDATE users SET age = ? WHERE name = ?", (21, "太郎"))
conn.commit()
print("データを更新しました")
UPDATEは内容の変更、DELETEは削除を行う命令です。どちらもcommitを忘れないことが大切です。
7. SQLiteを使うときの注意点
SQLiteは手軽で便利ですが、大量の同時アクセスには向いていません。個人の学習や小規模なアプリケーションに適しています。
また、処理が終わったらデータベースとの接続を閉じる習慣をつけましょう。これは、使い終わったノートをきちんと片付けるようなものです。
conn.close()
print("接続を閉じました")
接続を閉じました