PythonでMySQLに接続して、データを挿入、取得、更新する方法

Pythonを使用してMySQLデータベースに接続して、テーブルを作成し、データを挿入、取得、更新する方法を説明します。PythonMySQLデータベースに接続するには、PythonMySQLドライバをインストールする必要があります。今回は、Pythonの「mysql-connector-python」というライブラリを使用します。

MySQLに接続する

PythonMySQLに接続するには、mysql.connectorモジュールを使用します。以下のコードを使用して、MySQLに接続します。

import mysql.connector

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

print(mydb)

上記のコードで、host、user、passwordの値を適切に設定してください。

テーブルを作成する

MySQLにテーブルを作成するには、CREATE TABLEステートメントを使用します。以下のコードを使用して、テーブルを作成します。

mycursor = mydb.cursor()

mycursor.execute("CREATE DATABASE mydatabase")

mycursor.execute("USE mydatabase")

mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")

上記のコードでは、mydatabaseという名前のデータベースを作成し、その中にcustomersという名前のテーブルを作成しています。

データを挿入する

PythonMySQLにデータを挿入するには、INSERTステートメントを使用します。以下のコードを使用して、データを挿入します。

mycursor = mydb.cursor()

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

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

上記のコードでは、nameとaddressのカラムに"John"と"Highway 21"という値を挿入しています。

データを取得する

PythonMySQLからデータを取得するには、SELECTステートメントを使用します。以下のコードを使用して、データを取得します。

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

上記のコードでは、customersテーブルからすべてのデータを取得しています。

データを更新する

PythonMySQLのデータを更新するには、UPDATEステートメントを使用します。以下のコードを使用して、データを更新します。

mycursor = mydb.cursor()

sql = "UPDATE customers SET address = %s WHERE name = %s"
val = ("Canyon 123", "John")

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record(s) updated.")

上記のコードでは、nameが"John"であるレコードのaddressを"Canyon 123"に更新しています。

よく発生するエラーと対応法

PythonMySQLを操作する際によく発生するエラーとその対応方法をいくつか紹介します。

「ModuleNotFoundError: No module named 'mysql'」

このエラーは、PythonMySQLドライバがインストールされていない場合に発生します。解決するには、PythonMySQLドライバをインストールする必要があります。例えば、mysql-connector-pythonライブラリを使用する場合は、以下のようにコマンドを入力します。

pip install mysql-connector-python

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'username'@'localhost'」

このエラーは、MySQLに接続するためのユーザー名とパスワードが正しくない場合に発生します。解決するには、正しいユーザー名とパスワードを使用する必要があります。また、MySQLにユーザーが存在しない場合は、新しいユーザーを作成する必要があります。

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax」

このエラーは、SQL文の構文が正しくない場合に発生します。解決するには、正しいSQL構文を使用する必要があります。また、SQL文の引用符やカンマの数などの細かな部分もチェックする必要があります。

mysql.connector.errors.IntegrityError: 1062 (23000): Duplicate entry 'xxx' for key 'PRIMARY'」

このエラーは、一意制約を持つカラムに重複した値を挿入しようとした場合に発生します。解決するには、重複を避けるようにデータを修正する必要があります。

mysql.connector.errors.InterfaceError: 2055: Lost connection to MySQL server at 'localhost:3306', system error: 10054」

このエラーは、MySQLサーバーとの接続が切れた場合に発生します。解決するには、MySQLサーバーが実行されているかどうか、またはネットワーク接続が問題ないかを確認する必要があります。

以上が、PythonMySQLを操作する際によく発生するエラーとその対応方法です。

まとめ

以上がPythonMySQLに接続して、テーブルを作成し、データを挿入、取得、更新する方法です。これらのコードを組み合わせて、より複雑なデータベースアプリケーションを作成することができます。

これらのプログラムはPythonの基本的な文法とライブラリで実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com