Pythonでデータベースを操作する方法!SQLの基本と応用をやさしく解説
生徒
「Pythonでデータベースを操作できると聞いたんですが、そもそもデータベースって何ですか?」
先生
「データベースは、たくさんの情報を整理して保管するための箱のようなものです。住所録や名簿を、パソコンの中で安全に管理するイメージですね。」
生徒
「その箱をPythonで操作できるんですか?」
先生
「できますよ。PythonとSQLを組み合わせると、データの保存や取り出しがとても簡単になります。」
1. データベースとSQLの基本を知ろう
データベースとは、情報を整理して保存する仕組みのことです。ノートに表を書いて名前や年齢を書く代わりに、パソコンの中で表の形で管理します。この表のことをテーブルと呼びます。
SQL(エスキューエル)は、データベースに「このデータを出して」「この情報を追加して」とお願いするための言葉です。人が日本語で話すように、データベースにはSQLで話しかけます。
2. Pythonでデータベース操作ができる理由
Pythonは、データベースとつなぐための道具がたくさん用意されています。これをライブラリと呼びます。ライブラリを使うと、難しい仕組みを知らなくても、決まった書き方で簡単に操作できます。
Pythonでデータベース操作を覚えると、業務システムやWebサービスでも使える力が身につきます。
3. データベースに接続してみよう
まずはデータベースに接続します。ここではイメージしやすいように、SQLiteという軽いデータベースを使います。ファイルを開く感覚で使えるので初心者向けです。
import sqlite3
conn = sqlite3.connect("sample.db")
print("データベースに接続しました")
データベースに接続しました
このコードでは、データベースファイルを開いて接続しています。接続は「電話をつなぐ」ようなイメージです。
4. SQLでテーブルを作成する
次に、情報を入れるためのテーブルを作ります。テーブルは、エクセルの表のようなものです。SQLのCREATE文を使います。
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE users (
id INTEGER,
name TEXT,
age INTEGER
)
""")
print("テーブルを作成しました")
テーブルを作成しました
ここでは、番号、名前、年齢を保存する表を作っています。TEXTは文字、INTEGERは数字を意味します。
5. データを追加してみよう
テーブルができたら、データを追加します。INSERT文を使うと、新しい情報を保存できます。
cursor.execute(
"INSERT INTO users VALUES (1, '太郎', 20)"
)
conn.commit()
print("データを追加しました")
データを追加しました
commitは「確定ボタン」のようなものです。押さないと保存されません。
6. SQLでデータを取り出す方法
保存したデータは、SELECT文で取り出します。これは「一覧を見せて」とお願いする命令です。
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
(1, '太郎', 20)
fetchallは、すべての結果をまとめて受け取る方法です。
7. 条件を指定するSQLの応用
年齢が20以上の人だけ取り出したい場合など、条件を指定できます。WHEREを使います。
cursor.execute("SELECT name FROM users WHERE age >= 20")
print(cursor.fetchall())
[('太郎',)]
必要な情報だけを取り出せるので、データが増えても整理しやすくなります。
8. データベース操作でよく使う考え方
データベース操作では、「接続する」「SQLを送る」「結果を受け取る」という流れを繰り返します。この流れを理解すると、他のデータベースでも応用できます。
PythonとSQLを組み合わせることで、大量の情報を正確に、素早く扱えるようになります。