カテゴリ: Python 更新日: 2025/12/28

Pythonでデータベースを操作する方法!初心者でもわかるSQLの基本と応用

Pythonでデータベースを操作する方法!SQLの基本と応用
Pythonでデータベースを操作する方法!SQLの基本と応用

先生と生徒の会話形式で理解しよう

生徒

「Pythonでデータベースを使ってみたいんですが、どうやって操作するんですか?そもそもデータベースがよく分かりません。」

先生

「PythonではSQLという言語を使ってデータを追加したり取り出したりできますよ。データベースは情報を整理して保存するための便利な仕組みです。」

生徒

「ファイルに保存するのと何が違うんですか?」

先生

「ファイルは一つのまとまりですが、データベースは大きな箱の中に表のような形でたくさんの情報を並べて保存できます。必要な情報だけを素早く探せるのが特徴です。」

生徒

「なるほど。じゃあPythonで実際に操作する方法を知りたいです!」

先生

「それでは、Pythonで使いやすいSQLiteを例にして、基本から応用まで順番に解説していきましょう。」

-

1. Pythonで使えるデータベースとSQLiteの特徴

1. Pythonで使えるデータベースとSQLiteの特徴
1. Pythonで使えるデータベースとSQLiteの特徴

Pythonではさまざまなデータベースを扱うことができます。代表的なものに、機能が豊富で大規模なシステムでも使われるMySQLやPostgreSQLがありますが、初心者にはSQLiteが扱いやすくおすすめです。SQLiteは特別な準備が不要で、Pythonに標準搭載されているためすぐに使い始めることができます。複雑な設定なしでデータを整理して保存できるため、学習用としても実務用としても非常に便利です。

データベースは大きな表を管理する仕組みで、表はテーブルと呼ばれます。テーブルには名前や年齢などの情報を縦横に並べて保存します。PythonからSQLを使って操作することで、情報を追加したり修正したり削除したりできます。

2. SQLiteを使った基本的な接続方法

2. SQLiteを使った基本的な接続方法
2. SQLiteを使った基本的な接続方法

PythonでSQLiteを使うには、標準ライブラリのsqlite3を読み込むだけです。最初に接続を作り、その中でSQLを実行します。接続はファイルのように開いたり閉じたりする必要があるので気をつけましょう。


import sqlite3

conn = sqlite3.connect("sample.db")
cursor = conn.cursor()

このコードでは、sample.dbという名前のデータベースを作成し、cursorという操作専用の道具を手に入れています。もしファイルが存在していなければ自動で作成されます。

3. テーブルを作るSQL文を理解しよう

3. テーブルを作るSQL文を理解しよう
3. テーブルを作るSQL文を理解しよう

データベースを使うためには、表の役割をするテーブルを準備します。テーブルは行と列で構成され、列には名前や年齢などの項目が設定されます。例えば、ユーザー情報を保存したいときは名前、年齢、メールアドレスなどを列として用意します。


cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    age INTEGER
)
""")
conn.commit()

SQLのCREATE TABLE文はテーブルを作成する命令です。IF NOT EXISTSを付けることで、既にテーブルがある場合は作り直さずにそのまま続行できます。AUTOINCREMENTは番号を自動で増やしてくれる機能で、登録するごとにidが自動で割り振られます。

4. SQLでデータを追加する方法

4. SQLでデータを追加する方法
4. SQLでデータを追加する方法

次はテーブルにデータを追加する手順です。追加する操作はINSERT文で行います。実際にPythonからSQLを呼び出すときは、変数を使って安全にデータを渡すことができます。


cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("たろう", 20))
conn.commit()

VALUESの中に?を使うことで、入力された値を安全に渡せます。直接文字を埋め込む方法もありますが、安全性の面から推奨されていません。commitを忘れるとデータが反映されないため注意が必要です。

-

5. データを取り出すSELECT文の基本

5. データを取り出すSELECT文の基本
5. データを取り出すSELECT文の基本

保存したデータを取り出したいときはSELECT文を使います。必要な情報だけを抽出できるため、データベースならではの便利な操作です。


cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)

SELECT * はすべての列を取り出すという意味です。fetchallを使うと結果をまとめて取得できます。for文で一つずつ取り出して表示することもできます。

6. 条件を指定して検索する応用テクニック

6. 条件を指定して検索する応用テクニック
6. 条件を指定して検索する応用テクニック

SELECT文は条件を指定することで、必要なデータだけを抽出できます。たとえば、二十歳以上のデータだけを取り出したい場合はWHEREを使います。


cursor.execute("SELECT * FROM users WHERE age >= ?", (20,))
rows = cursor.fetchall()

このように条件を絞り込むことで、必要な情報だけに限定して処理できるため、複雑なデータを扱うときにとても役立ちます。

7. データを更新するUPDATE文と削除するDELETE文

7. データを更新するUPDATE文と削除するDELETE文
7. データを更新するUPDATE文と削除するDELETE文

次は応用として、保存されているデータを書き換えたり削除したりする方法を解説します。UPDATE文は特定の行の値を変更する命令で、WHEREを使ってどのレコードを変更するかを指定します。


cursor.execute("UPDATE users SET age = ? WHERE name = ?", (25, "たろう"))
conn.commit()

削除する場合はDELETE文を使います。こちらもWHEREを使って削除する対象を選びます。


cursor.execute("DELETE FROM users WHERE name = ?", ("たろう",))
conn.commit()

データを変更したり削除したりするときは、誤ってすべてのデータを消してしまわないように注意してください。

8. 実務で役立つポイントとPythonでの活用例

8. 実務で役立つポイントとPythonでの活用例
8. 実務で役立つポイントとPythonでの活用例

Pythonでデータベースを扱う場面は非常に多く、会員情報の管理や買い物履歴の整理、アプリの設定保存などさまざまな用途で使われています。複数のデータを一括で管理できるため、規模が大きくなるほどデータベースの利便性が高まります。初心者のうちはSQLiteで基礎を身につけ、その後必要に応じてMySQLやPostgreSQLに進むと理解が深まりやすくなります。

Pythonとデータベースを組み合わせることで、アプリケーションの幅は大きく広がります。検索して取り出す、追加する、変更するなどの操作を覚えることで、実際のシステム開発にも応用できるようになります。仕組みを理解して繰り返し練習することで、自然と扱いに慣れていきます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHPのマルチバイト文字列を正しく扱う方法!初心者向けにmb_strlenとmb_substrをやさしく解説
New2
PHP
PHP の break, continue の使い方を完全解説!初心者でもわかるループ制御
New3
Python
Pythonで日本の元号を扱う方法を徹底解説!令和・平成の変換もバッチリ対応
New4
Python
Pythonの三項演算子とは?一行で条件分岐を記述する方法
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのライブラリとは?標準ライブラリとサードパーティライブラリの違いを初心者向けに解説!
No.5
Java&Spring記事人気No5
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.6
Java&Spring記事人気No6
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.7
Java&Spring記事人気No7
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
No.8
Java&Spring記事人気No8
PHP
PHP の基本構文(開始タグ・コメント・インデント)を完全ガイド!初心者向け解説
-
-