Python

最終更新日: 2024.02.03 (公開: 2024.02.03)

PythonでMySQLを使う方法とは?事前準備から基本操作方法まで解説

PythonでMySQLを使う方法とは?事前準備から基本操作方法まで解説

「Python」を使用すれば、「MySQL」の操作ができます。本記事では「Python」で「MySQL」を操作するための事前準備と使用方法について解説します。

Pythonで操作できるMySQLとは何だろう?

「MySQL」とは、世界でもっとも利用されているデータベース管理システムです。大容量のデータでも高速で動作し、機能も充実しているため実用性が非常に高く、さまざまなプログラミング言語との連携が可能です。

また「MySQL」は、GPL(GNU General Public License)というオープンソースライセンスのもとで提供されています。そのため、高速で信頼性の高いシステムを無償で使用できます。初心者でも導入しやすく扱いやすいため、世界的に人気の高いデータベース管理システムです。

データベースへのデータの保存方法には「リレーショナルデータベース」と「クライアントサーバーモデル」があり、それら両方の特性を備えています。

リレーショナルデータベース

リレーショナルデータベースとは、テーブルという表形式の構造でデータを保管する保存形式です。「MySQL」は、このリレーショナルデータベースが使用されています。テーブルは列と行で構成されており、呼び方は列が「カラム」で行が「レコード」です。

それぞれのカラムは文字列で整数などのデータ型をもっており、各レコードによってひとまとめのデータとして扱われます。リレーショナルデータベースはさまざまなシステムやアプリケーションで使用されており、データの整理・保管・削除・検索などを効率よくできる保存形式です。

クライアントサーバーモデル

クライアントサーバーモデルとは、サーバーとそのサーバーを使用するクライアントに分けて通信するモデルです。「MySQL」では、このクライアントサーバーモデルも採用されています。

実際にデータが保存されているサーバーに、クライアント側からリクエストを送りデータにアクセスすることでデータを取得します。そのため、クライアントは少ない負担で「MySQL」の利用が可能です。

クライアントサーバーモデルも、さまざまなシステムやアプリケーションに適応しています。

PythonでMySQLを操作する事前準備をしよう

「Python」で「MySQL」を操作するための事前準備は、以下のとおりです。

  • 接続用のドライバーのインストールをしよう
  • MySQLサーバでデータベースを作成する

ここからは、これらの手順について解説していきます。

接続用のドライバーのインストールをしよう

はじめに、接続用のドライバーをインストールしましょう。「Python」から「MySQL」に接続するには、「mysqlclient」という接続用のドライバーが必要です。なお、「mysqlclient」のインストールは、「Python」経由でおこないます。

「mysqlclient」のインストールは、Windowsはコマンドプロンプトで、Macはターミナルで実施します。

コマンドプロンプトかターミナルを開いて、以下のコマンドを入力してください。

pip install mysqlclient

コマンドを入力した際、「OSError: mysql_config not found」などのメッセージが表示され、インストールが失敗することがあります。

この場合、考えられる原因としてmysql-develなどの「MySQL」のソフトが正常に導入されていないケースがあります。その場合は、「MySQL」や関連ソフトを再インストールしてから、mysqlclientをインストールしてみてください。

MySQLサーバでデータベースを作成する

次に、「Python」で操作するためのデータベースを「MySQL」サーバで作成しましょう。XAMPPやMAMPなどでローカルサーバーを起動し、コマンドプロンプトかターミナルで以下のコマンドを入力してください。

mysql -u root -p

すると、rootユーザーのパスワードが求められるので入力します。初期設定の場合、パスワードも「root」になっていることが多いです。

「MySQL」にログインできたら、以下のコマンドを入力することで「python_db」という名前のデータベースを作成できます。

CREATE DATABASE python_db;

PythonでMySQLを操作する方法を知ろう

「Python」を使用することで、「MySQL」を以下のように操作できます。

  • MySQLのテーブルを作成してみよう
  • データを挿入しよう
  • データを確認しよう
  • データを更新してみよう
  • データを削除しよう
  • 変数を扱おう

ここからは、操作方法について詳しく解説していきます。

MySQLのテーブルを作成してみよう

はじめに、「Python」を使用して「MySQL」のテーブルを作成してみましょう。create_sweets_table.pyという名前のファイルを作成し、以下のコードを入力してください。

import mysql.connector

db=mysql.connector.connect(host="localhost", user="root", password="root")

cursor=db.cursor()

cursor.execute("USE python_db")
db.commit()
cursor.execute("""CREATE TABLE IF NOT EXISTS sweets_table(
                id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                sweets VARCHAR(32),
                value INT);""")
db.commit()

コードを入力したら、以下のコマンドを入力し「Python」ファイルを実行しましょう。

python create_sweets_table.py

実行したら「MySQL」にログインし、「USE python_db;」から「show tables;」の順にコマンドを入力してください。一覧にsweets_tableが表示されたら、テーブルが作成されています。

データを挿入しよう

次に、「Python」を使用してテーブルにデータを挿入してみましょう。「Python」ファイルを作成し、以下のコードを入力してください。

import mysql.connector

db=mysql.connector.connect(host="localhost", user="root", password="root")
cursor=db.cursor()

cursor.execute("USE python_db")
db.commit()

sql = "INSERT INTO sweets_table (sweets, value) VALUES (%s, %s);"

fruit_list = [
    ("cake", 100),
    ("chocolate", 120),
    ("gummy", 150),
    ("parfait", 110)
]

for sweets in sweets_list:
    cursor.execute(sql, fruit)

db.commit()

コードを入力したら、ファイルを実行しましょう。その後「MySQL」にログインし、「USE python_db;」から「SELECT * FROM sweets_table;」の順にコマンドを入力してください。sweets_listで指定した要素が表示されれば成功です。

データを確認しよう

「Python」から、テーブル内のデータ確認もできます。「Python」ファイルを作成し、以下のコードを入力してください。

import mysql.connector

db=mysql.connector.connect(host="localhost", user="root", password="root")
cursor=db.cursor()

cursor.execute("USE python_db")
db.commit()

cursor.execute('SELECT * FROM sweets_table')
rows = cursor.fetchall()

for i in rows:
    print(i)

ファイルを実行すると、画面上にデータのリストが表示されます。

データを更新してみよう

次に、テーブル内のデータを更新してみましょう。「Python」ファイルを作成し、以下のコードを入力してください。

import mysql.connector

db=mysql.connector.connect(host="localhost", user="root", password="root")
cursor=db.cursor()

cursor.execute("USE python_db")
db.commit()

cursor.execute('UPDATE sweets_table SET value=500 WHERE fruits="chocolate"')
db.commit()

cursor.execute('SELECT * FROM sweets_table')
rows = cursor.fetchall()

for i in rows:
    print(i)

このファイルを実行することで、bananaのvalueが500に変わり、画面上に出力されます。

データを削除しよう

データの削除も、先ほどとほぼ同じ手順でおこなえます。「Python」ファイルを作成し、以下のコードを入力してください。

import mysql.connector

db=mysql.connector.connect(host="localhost", user="root", password="root")
cursor=db.cursor()

cursor.execute("USE python_db")
db.commit()

cursor.execute('DELETE FROM sweets_table WHERE fruits="chocolate"')
db.commit()

cursor.execute('SELECT * FROM sweets_table')
rows = cursor.fetchall()

for i in rows:
    print(i)

このファイルを実行することで、テーブルからbananaが削除され結果が画面に出力されます。

変数を扱おう

「Python」から「MySQL」を扱う際には、変数も使用できます。

import mysql.connector

db=mysql.connector.connect(host="localhost", user="root", password="root")
cursor=db.cursor()

cursor.execute("USE python_db")
db.commit()

value = 500
fruit = "chocolate"
sql = "UPDATE sweets_table SET value = %s WHERE fruits = %s"

cursor.execute(sql,(value,fruit))
db.commit()

このように、%sを使用しexecute関数に引数を指定することで、変数の値をSQL文に反映させられます。

PythonでMySQLを操作するためのコマンドをまとめよう

最後に、データベースの接続からテーブルを作成しデータを追加して、一覧の表示までをひとつのコードにまとめます。

import mysql.connector

# MySQLへの接続
db=mysql.connector.connect(host="localhost", user="root", password="root")

cursor=db.cursor()

# データベースの選択
cursor.execute("USE python_db")
db.commit()

# テーブルの作成
cursor.execute("""CREATE TABLE IF NOT EXISTS fruits_table(
                id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                fruits VARCHAR(32),
                value INT);""")
db.commit()

# データの挿入
sql = "INSERT INTO sweets_table (sweets, value) VALUES (%s, %s);"

fruit_list = [
    ("cake", 100),
    ("chocolate", 120),
    ("gummy", 150),
    ("parfait", 110)
]

for sweets in sweets_list:
    cursor.execute(sql, fruit)

db.commit()

#データの表示
cursor.execute('SELECT * FROM sweets_table')
rows = cursor.fetchall()

for i in rows:
    print(i)

このように、「Python」を使うことで「MySQL」をさまざまな形で操作できます。

PythonでMySQLを扱ってみよう

世界でもっとも利用されているデータベース管理システムの「MySQL」は、高い実用性を持ちながらも無料で使用できる世界的にも人気のシステムです。

「MySQL」は、「Python」を使用することでも操作でき、「Python」でアプリケーションを作成した際にも手軽に「MySQL」の扱いができます。ぜひ「Python」と「MySQL」を習得し、データベースの操作や管理をしてみてください。

アクセスランキング 人気のある記事をピックアップ!

    コードカキタイがオススメする記事!

    1. 子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      2024.06.17

      子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      #プログラミングスクール

    2. 【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      2022.01.06

      【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      #プログラミングスクール

    3. 【未経験でも転職可】30代におすすめプログラミングスクール8選!

      2024.01.26

      【未経験でも転職可】30代におすすめプログラミングスクール8選!

      #プログラミングスクール

    4. 初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      2024.01.26

      初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      #JAVA

    5. 忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      2024.01.26

      忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      #プログラミングスクール

    1. 【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      2022.01.06

      【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      #プログラミングスクール

    2. 【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      2024.01.26

      【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      #プログラミングスクール

    3. 【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    4. 【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    5. 【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      2024.01.26

      【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      #プログラミングスクール