【SQLiteデータベース操作】簡単にデータを挿入・更新・削除する方法とPandasとの連携例!

※関数の書き方・実行結果に誤りがあるケースがあります。随時修正中です。また誤りに気づかれた方はこちらからご連絡頂きますとめちゃ嬉しいです。

目次

SQLiteってなんや?

みんな、データベースって聞いたことあるやろ?このSQLiteは、軽量で使いやすいデータベースなんや。データをしっかり管理したい時にめっちゃ役立つで。

メリット

  • 軽量やから手軽に使える:インストールも簡単やし、重たいソフトを入れる必要がないんや。
  • ファイルベースで管理:SQLiteは一つのファイルにデータを保存するから、バックアップも楽ちんやで。
  • SQLで操作ができる:SQL(エスキューエル)っていう言語を使ってデータを操作できるから、データの検索や更新がスムーズや。

例え話

例えば、あなたが家で使う小さい冷蔵庫を持ってるとするやん。大きな冷蔵庫やったら、いろんな食材を入れられるけど、使うのが大変や。でも小さい冷蔵庫なら、必要なものだけすぐ取り出せて、管理もしやすいよな。それがSQLiteやねん!データを軽く、シンプルに管理できるんや。

さあ、これからSQLiteを使ってみるで!

SQLiteデータベースの作成と接続

さて、まずはSQLiteのデータベースを作成して、それに接続する方法を見ていこうか。これができたら、データを管理する準備が整うで!

データベースの作成

まずは、SQLiteデータベースを作るためのコードを書いてみるで。これで新しいデータベースファイルができるから、しっかり覚えてな!

import sqlite3

# データベースに接続(存在しない場合は新しく作成)
conn = sqlite3.connect('my_database.db')
print("データベースに接続しました!")

接続の確認

接続ができたら、次に何をするかというと、接続が成功したかどうかを確認するんや。上のコードを実行したら、「データベースに接続しました!」って出るはずやで。

データベースを閉じる

最後に、データベースの操作が終わったら、必ず接続を閉じるのを忘れんといてな。これが大事やで!

# 接続を閉じる
conn.close()
print("データベースの接続を閉じました!")

これでSQLiteデータベースの作成と接続は完了や!次はテーブルの作成に進むで!

テーブルの作成と基本的なSQL操作

次は、データを入れるためのテーブルを作成する方法について見ていくで。SQLiteでは、SQL(エスキューエル)を使ってテーブルを作成したり、基本的な操作ができるんや。

テーブルの作成

まずは、テーブルを作成するためのコードを書こう。ここでは「users」っていうテーブルを作って、名前や年齢を入れられるようにするで。

import sqlite3

# データベースに接続
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# テーブルを作成
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER NOT NULL
)
''')
print("テーブルを作成しました!")

# 接続を閉じる
conn.close()

基本的なSQL操作

テーブルができたら、次はデータを挿入したり、更新したり、削除したりする基本的なSQL操作を紹介するで!

データの挿入

新しいユーザーを追加するためのコードや。

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# データを挿入
cursor.execute("INSERT INTO users (name, age) VALUES ('たろう', 25)")
conn.commit()  # 変更を保存
print("データを挿入しました!")

conn.close()

データの更新

既存のデータを更新する場合は、こんな感じや。

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# データを更新
cursor.execute("UPDATE users SET age = 26 WHERE name = 'たろう'")
conn.commit()  # 変更を保存
print("データを更新しました!")

conn.close()

データの削除

データを削除したいときは、こんな風にするで。

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# データを削除
cursor.execute("DELETE FROM users WHERE name = 'たろう'")
conn.commit()  # 変更を保存
print("データを削除しました!")

conn.close()

これでテーブルの作成と基本的なSQL操作は完璧や!次はデータの取得について見ていこうか。

データの挿入、更新、削除

さあ、今回はデータの挿入、更新、削除について詳しく見ていくで。これらの操作を理解すれば、データベースをしっかり使いこなせるようになるからな!

データの挿入

まずは、データをテーブルに挿入する方法を復習するで。新しいユーザーを追加するのが目的や。

import sqlite3

# データベースに接続
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# データを挿入
cursor.execute("INSERT INTO users (name, age) VALUES ('じろう', 30)")
conn.commit()  # 変更を保存
print("じろうのデータを挿入しました!")

# 他のデータも挿入してみるで
cursor.execute("INSERT INTO users (name, age) VALUES ('はなこ', 22)")
conn.commit()  # 変更を保存
print("はなこのデータも挿入しました!")

conn.close()

データの更新

次は、挿入したデータを更新する方法や。例えば、じろうの年齢を31歳に変更する場合はこんな感じや。

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# データを更新
cursor.execute("UPDATE users SET age = 31 WHERE name = 'じろう'")
conn.commit()  # 変更を保存
print("じろうの年齢を更新しました!")

conn.close()

データの削除

最後に、データを削除する方法を見ていくで。たとえば、はなこのデータを削除する場合はこうするんや。

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# データを削除
cursor.execute("DELETE FROM users WHERE name = 'はなこ'")
conn.commit()  # 変更を保存
print("はなこのデータを削除しました!")

conn.close()

これでデータの挿入、更新、削除ができるようになったで!データベースを活用するためには、これらの操作が欠かせへんからしっかり覚えてな。次は、クエリを実行してデータを取得する方法を見ていこうか!

クエリの実行とデータ取得

さて、次はデータベースからデータを取得するためのクエリの実行について学んでいくで。これをマスターすれば、自分が欲しいデータを簡単に取り出せるようになるからな!

データの取得

まずは、テーブルから全てのデータを取得する方法を見てみよう。こんな感じでクエリを実行するんや。

import sqlite3

# データベースに接続
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# データを取得
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()  # 取得したデータを全て取得

# 取得したデータを表示
for row in rows:
    print(row)

conn.close()

特定の条件でデータを取得

次は、特定の条件に基づいてデータを取得する方法や。たとえば、年齢が30歳以上のユーザーだけを取得する場合はこんな感じや。

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# 特定の条件でデータを取得
cursor.execute("SELECT * FROM users WHERE age >= 30")
rows = cursor.fetchall()  # 取得したデータを全て取得

# 取得したデータを表示
print("年齢が30歳以上のユーザー:")
for row in rows:
    print(row)

conn.close()

データのカウント

また、データの数を数えることもできるで。たとえば、ユーザーの総数を取得するにはこうするんや。

conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()

# ユーザーの総数を取得
cursor.execute("SELECT COUNT(*) FROM users")
count = cursor.fetchone()[0]  # 一つの値を取得
print(f"ユーザーの総数は: {count}")

conn.close()

これでクエリの実行とデータの取得ができるようになったで!データベースの操作はこれでかなりスムーズにできるようになるから、ぜひ練習してみてな。次は、Pandasとの連携について学んでいこうか!

Pandasとの連携

さて、最後にPandasとSQLiteを連携させる方法を見ていくで。Pandasを使うと、データの操作がもっと楽になるから、ぜひ覚えておいてな!

Pandasのインポート

まずは、Pandasをインポートするところから始めよう。Pandasがインストールされてない場合は、先にインストールしてな。

!pip install pandas

SQLiteからPandas DataFrameへのデータ取得

次に、SQLiteからデータを読み込んでPandasのDataFrameに変換する方法を見てみよう。これでデータを扱いやすくなるで。

import sqlite3
import pandas as pd

# データベースに接続
conn = sqlite3.connect('my_database.db')

# SQLクエリを実行してDataFrameに読み込む
df = pd.read_sql_query("SELECT * FROM users", conn)

# 取得したデータを表示
print(df)

# 接続を閉じる
conn.close()

データの加工

Pandasを使えば、データの加工も簡単にできるで。たとえば、年齢の列を追加したり、フィルタリングしたりができるんや。

# 年齢の列を追加して、年齢が30歳以上のユーザーをフィルタリング
filtered_df = df[df['age'] >= 30]
print("年齢が30歳以上のユーザー:")
print(filtered_df)

データの更新

DataFrameを使ってデータを更新することもできるで。ただし、SQLiteに反映させるためには、再度SQLコマンドを実行する必要があるから注意してな。

# DataFrameの値を変更
df.loc[df['name'] == 'じろう', 'age'] = 31

# 変更をSQLiteに反映
conn = sqlite3.connect('my_database.db')
df.to_sql('users', conn, if_exists='replace', index=False)  # テーブルを置き換え
print("データをSQLiteに反映しました!")

conn.close()

これでPandasとの連携ができるようになったで!データ分析や処理をする時は、Pandasを使うと効率が格段に上がるから、ぜひ活用してな。これでSQLiteの基本的な操作はバッチリや!次のステップに進む準備はできたかな?

【SQLiteデータベース操作】簡単にデータを挿入・更新・削除する方法とPandasとの連携例!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次