【Pythonコラム】PythonでMySQLを操る!データベース入門ガイド




PythonでMySQLを操る!データベース入門ガイド

Pythonでデータベースを操作する魅力的な世界へようこそ!特にMySQLは、多くのWebアプリケーションやシステムで利用されている人気のあるデータベースです。今回は、PythonからMySQLデータベースを扱うための基礎知識を、初心者にもわかりやすく解説します。

なぜPythonとMySQL?

Pythonはそのシンプルさと豊富なライブラリで、様々なタスクを効率的にこなせるプログラミング言語です。一方、MySQLは信頼性とパフォーマンスに優れたオープンソースのリレーショナルデータベース管理システム(RDBMS)です。この2つを組み合わせることで、データを効率的に管理・操作する強力なWebアプリケーションやデータ分析ツールを開発できます。

必要なもの

始める前に、以下のものがインストールされているか確認しましょう。

  1. Python: Pythonの最新バージョンを公式ウェブサイト (https://www.python.org/) からダウンロードしてインストールしてください。
  2. MySQL: MySQL Community Serverを公式ウェブサイト (https://www.mysql.com/) からダウンロードしてインストールしてください。
  3. MySQL Connector/Python: これは、PythonからMySQLデータベースに接続するためのライブラリです。pipを使って簡単にインストールできます。

    pip install mysql-connector-python
    

データベース接続の確立

まず、PythonスクリプトでMySQLデータベースに接続する必要があります。以下のコードは、基本的な接続方法を示しています。

import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",
    user="yourusername",
    password="yourpassword",
    database="yourdatabase"
)

print(mydb) #接続が成功すればオブジェクトが表示されます
  • host: MySQLサーバーが実行されているホスト名。通常はlocalhostです。
  • user: MySQLデータベースのユーザー名。
  • password: MySQLデータベースのパスワード。
  • database: 接続するデータベース名。

カーソルの作成

データベースとのやり取りは、カーソルオブジェクトを通じて行います。カーソルは、SQLクエリの実行や結果の取得を可能にするものです。

mycursor = mydb.cursor()

SQLクエリの実行

カーソルオブジェクトを使って、SQLクエリを実行できます。例えば、データベースに新しいテーブルを作成するには、execute()メソッドを使用します。

mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")
  • CREATE TABLE: 新しいテーブルを作成するSQLコマンド。
  • customers: 作成するテーブルの名前。
  • id INT AUTO_INCREMENT PRIMARY KEY: 自動インクリメントする主キーとして機能する整数型のカラム id を定義します。
  • name VARCHAR(255): 255文字までの文字列を格納できるnameカラムを定義します。
  • address VARCHAR(255): 255文字までの文字列を格納できるaddressカラムを定義します。

データの挿入

テーブルにデータを挿入するには、INSERT INTOステートメントを使用します。

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")
  • INSERT INTO: テーブルにデータを挿入するSQLコマンド。
  • customers: データを挿入するテーブルの名前。
  • %s: プレースホルダー。SQLインジェクションを防ぐために、値は別途渡すようにします。
  • mydb.commit(): データベースへの変更を確定します。これを忘れると、データは保存されません。

データの選択

テーブルからデータを選択するには、SELECTステートメントを使用します。

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)
  • SELECT * FROM customers: customersテーブルからすべてのカラムを選択するSQLコマンド。
  • mycursor.fetchall(): クエリの結果をすべて取得します。
  • ループを使って、取得した各行のデータを処理します。

データの更新

テーブルのデータを更新するには、UPDATEステートメントを使用します。

sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Highway 21'"
mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")
  • UPDATE: テーブルのデータを更新するSQLコマンド。
  • SET address = 'Canyon 123': addressカラムの値を 'Canyon 123' に設定します。
  • WHERE address = 'Highway 21': addressカラムが 'Highway 21' の行のみを更新対象とします。

データの削除

テーブルからデータを削除するには、DELETEステートメントを使用します。

sql = "DELETE FROM customers WHERE address = 'Canyon 123'"
mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) deleted")
  • DELETE FROM: テーブルからデータを削除するSQLコマンド。
  • WHERE address = 'Canyon 123': addressカラムが 'Canyon 123' の行のみを削除対象とします。

まとめ

PythonとMySQLを組み合わせることで、データベースを活用した様々なアプリケーションを開発できます。今回紹介した基本的な操作を理解することで、データベースの世界への第一歩を踏み出せるでしょう。SQLの学習を進めたり、より高度なライブラリ(SQLAlchemyなど)を活用することで、さらに高度なデータベース操作が可能になります。頑張ってください!



< PyInstaller
コラム一覧に戻る
Pip >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!