「MySQL」のコラム

トップページ>「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など)を活用することで、さらに高度なデータベース操作が可能になります。頑張ってください!





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




< PyInstaller
Pip >







コラム一覧

if文
for文
関数
配列
文字列
正規表現
ファイル入出力
openpyxl
Numpy
Matplotlib
Pandas
scikit-learn
seaborn
beautifulsoup
tkinter
OpenCV
pygame
メイン関数
自作ライブラリ
画像処理
機械学習
スクレイピング
データ分析
グラフ作成
API
可読性
デバッグ
例外処理
コメント
組み込み関数
flask
学び方
ビット演算
マルチスレッドプログラミング
参照渡し
pyenv
エディタ
生成AI
画像認識
Streamlit
lambda式
物理演算シミュレーション
命名規則
遺伝的アルゴリズム
関数型プログラミング
オブジェクト指向
ツリー図
Anaconda
Google Colaboratory
PyTorch
NLTK
音声処理
yt-dlp
組み込み開発
データベース操作
iclawler
PyCaret
pickle
plotly
polars
Mecab
乱数
PyInstaller
MySQL
Pip
sys.argv
データ型
secrets
MediaPipe
YOLO
ソート