PythonでMySQLを操る!データベース入門ガイド
Pythonでデータベースを操作する魅力的な世界へようこそ!特にMySQLは、多くのWebアプリケーションやシステムで利用されている人気のあるデータベースです。今回は、PythonからMySQLデータベースを扱うための基礎知識を、初心者にもわかりやすく解説します。
なぜPythonとMySQL?
Pythonはそのシンプルさと豊富なライブラリで、様々なタスクを効率的にこなせるプログラミング言語です。一方、MySQLは信頼性とパフォーマンスに優れたオープンソースのリレーショナルデータベース管理システム(RDBMS)です。この2つを組み合わせることで、データを効率的に管理・操作する強力なWebアプリケーションやデータ分析ツールを開発できます。
必要なもの
始める前に、以下のものがインストールされているか確認しましょう。
- Python: Pythonの最新バージョンを公式ウェブサイト (https://www.python.org/) からダウンロードしてインストールしてください。
- MySQL: MySQL Community Serverを公式ウェブサイト (https://www.mysql.com/) からダウンロードしてインストールしてください。
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など)を活用することで、さらに高度なデータベース操作が可能になります。頑張ってください!
◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
詳細はこちら
興味がある方はまず質問だけでもどうぞ!
