Pythonでのデータベース作成の概要

Pythonは、sqlite3、MySQLdb、psycopg2など、データベースとの連携に関連するいくつかのモジュールを提供しています。これらのモジュールを使用することで、データの保存、取得、操作を効率的に行うことができます。Python言語とSQL構文の基本的な理解があれば、データベースを効果的かつ効率的に構築、変更、管理することができます。

Pythonを使用したデータベース作成の手順

ステップ1

使用するデータベース管理システムに合わせて、データベースアダプタをインストールします。例えば、SQLiteを使用する場合はsqlite3モジュールを、MySQLの場合はMySQLdbモジュールを、PostgreSQLの場合はpsycopg2をインストールします。このチュートリアルでは、SQLite、MongoDB、MySQLdbを考えます。PythonコードでSQLiteを使用するには、sqlite3モジュールをインポートします。

Python

 

import sqlite3

適切なモジュールをインストールしたら、データベースへの接続を作成する必要があります。これはPythonコードとデータベースの間の架け橋となり、コマンドの送信と結果の受信を可能にします。例えば、SQLiteでは以下のコードを使用して接続を作成できます。

school.dbというデータベースの例では、以下のコードのように接続します。

Python

 

conn = sqlite3.connect('school.db')

ステップ2

データベース内にテーブルを作成します。データベース内にテーブルを作成するためには、接続から取得したカーソルオブジェクトを使用してSQLステートメントを記述する必要があります。例えば、”id”、”username”、”salary”、”department”、”email”のカラムを持つ”employees”という名前のテーブルを作成するには、以下のコードを使用します:

Python

 

conn = sqlite3.connect('school.db')

cursor = conn.cursor()



cursor.execute('''

CREATE TABLE employees (

  id INTEGER PRIMARY KEY,

  username TEXT,

  email,

  salary REAL,

  department TEXT

)

''')

ステップ 3

データベースからデータを挿入、更新、取得するには、SQLコマンドとカーソルオブジェクトを使用します。テーブルにデータを追加するには、”INSERT INTO” SQLステートメントを使用できます。データを保存するには、`commit()`メソッドを使用します。例えば、以下のコードは”employees”テーブルにデータを挿入します:

Python

 

conn = sqlite3.connect('school.db')

cursor = conn.cursor()



cursor.execute("INSERT INTO employees (username, email, salary, department) VALUES ('Joseph', 'joseph@gmail,com' 70000, 'IT')")



conn.commit()

ステップ 4

テーブルからデータを取得します。テーブルからデータを取得するには、”SELECT” SQLステートメントを使用できます。例えば、”users”テーブルからすべてのユーザーを取得するには、以下のコードを使用できます:

Python

 

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

    print(row)

ステップ 5

CREATE VIEWステートメントを実行してビューを作成し、カーソルオブジェクトの`execute()`メソッドを使用してCREATE VIEWステートメントを実行します。

Python

 

# CREATE VIEWステートメントを実行
cursor.execute('''

CREATE VIEW employees_view AS

SELECT name, age, department, email, FROM employees;

''')

ステップ 6 

接続を閉じます。データベースの作業が完了したら、リソースを解放するために接続を閉じることが重要です。接続オブジェクトのclose()メソッドを使用して接続を閉じることができます。例えば:

Python

 

conn.commit()
conn.close()

MySQLdbのサンプル

MySQLdbでデータベースを作成するには、MYSQLdbモジュールをインポートし、`connect()`メソッドを使用してデータベースに接続します。カーソルを作成し、SQLコマンドを実行するために使用できます。`execute()`メソッドはテーブルを作成し、データを挿入するために使用されます。変更をコミットした後、カーソルを使用してテーブルからデータを選択し、`fetchall()`メソッドを使用してすべてのデータを取得します。最後に、カーソルとデータベースへの接続を閉じます。

Python

 

import MySQLdb

# データベースに接続

conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# SQLコマンドを実行するカーソルを作成

cursor = conn.cursor()
# テーブルを作成

cursor.execute("""

CREATE TABLE employees (

  id INT AUTO_INCREMENT PRIMARY KEY,

  name VARCHAR(255),

  salary DECIMAL(10,2),

  department VARCHAR(255)

)

""")
# テーブルにデータを挿入

cursor.execute("""

INSERT INTO employees (name, salary, department)

VALUES

    ("Joseph", 70000, "IT"),

    ("Jane", 80000, "Marketing")

""")
# データベースへの変更をコミット

conn.commit()
# テーブルからデータを選択

cursor.execute("SELECT * FROM employees")



# すべてのデータを取得

employees = cursor.fetchall()
# データを表示

for employee in employees:

    print(employee)
# カーソルと接続を閉じる

cursor.close()

conn.close()

MongoDBのサンプル

pymongoモジュールをインポートし、`MongoClient()`クラスを使用してデータベースに接続します。その後、データベースへの参照とSQLのテーブルに相当するコレクションへの参照を取得します。`insert_many()`メソッドはコレクションにデータを挿入するために使用されます。`find()`メソッドはコレクションからデータを照会し、forループを使用してデータを取得します。最後に、`close()`メソッドを使用してデータベースへの接続を閉じます。

Python

 

from pymongo import MongoClient
# データベースに接続

client = MongoClient("mongodb://localhost:27017/")
# データベースへの参照を取得

db = client["school.db"]
# SQLのテーブルに相当するコレクションへの参照を取得

collection = db["employees"]



# コレクションにデータを挿入

employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }

employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }

collection.insert_many([employee1, employee2])
# コレクションからデータを照会

employees = collection.find()
# データを表示

for employee in employees:

    print(employee)
# 接続を閉じる
client.close()

結論

結論として、PythonはMySQLやMongoDBなどの異なるデータベースと対話するための複数のモジュールを提供しています。MySQLデータベースと対話するためにMySQLdbモジュールが使用され、MongoDBデータベースと対話するためにpymongoモジュールが使用されます。これらのモジュールを使うことで、開発者はテーブルの作成、データの挿入、クエリの実行など、一般的なデータベース操作を簡単に行うことができます。Pythonのシンプルさと使いやすさのおかげで、データベース駆動型アプリケーションの開発において人気の選択肢となっています。初心者であろうと経験豊富な開発者であろうと、これらのモジュールを使用することで、Pythonでのデータベース操作は楽になります。

Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2