PythonとMySQL:データベース接続、作成、CRUD操作の実践ガイド
PythonとMySQL:データベース接続、作成、CRUD操作の実践ガイド
現代のデータ駆動型世界では、Python開発者はしばしばリレーショナルデータベースとの連携が必要になります。MySQLはオープンソースのRDBMSとして、その堅牢性、コミュニティサポート、使いやすさから依然として人気の選択肢です。このガイドでは、MySQLとそのPythonコネクタのインストールから、データベース・テーブルの作成、基本的なCRUD操作まで、ベストプラクティスとクリーンコードを強調しながらすべてのステップを解説します。
MySQLとは?
MySQLは主要なオープンソースリレーショナルデータベース管理システム(RDBMS)です。共同創業者Michael Wideniusの娘にちなんで名付けられ、1995年に構築されました。SQLベースのインターフェース、強力なパフォーマンス、クロスプラットフォームサポートにより、Webアプリケーション、データ分析などの定番となっています。
Linux/UnixへのMySQLインストール
MySQLダウンロードから公式RPMパッケージをダウンロード。ターミナルで実行:
rpm -i
例:
rpm -i MySQL-5.0.9.0.i386.rpm
インストール確認:
mysql --version
WindowsへのMySQLインストール
同じMySQLサイトからWindowsインストーラーをダウンロードし、ウィザードに従ってインストール。ステップバイステップの視覚的ガイドは公式チュートリアルを参照。
Python用MySQLコネクタのインストール
pipでコネクタライブラリをインストール。Python 2と3でコマンドがわずかに異なります:
pip install mysql-connector
pip3 install mysql-connector
MySQL接続のテスト
コネクタインストール後、シンプルな接続オブジェクト作成で接続テスト。hostname、username、passwordを実際の認証情報に置き換えてください。
import mysql.connector
conn = mysql.connector.connect(
host="hostname",
user="username",
passwd="password"
)
print(conn)
成功時の出力例:
<mysql.connector.connection.MySQLConnection object at 0x000002338A4C6B00>
Python経由でのデータベース作成
カーソルオブジェクトを通じてCREATE DATABASE文を実行:
import mysql.connector
conn = mysql.connector.connect(
host="localhost",
user="root",
passwd="root"
)
cursor = conn.cursor()
cursor.execute("CREATE DATABASE my_first_db")
cursor.execute("SHOW DATABASES")
for db in cursor:
print(db)
出力:
("my_first_db",)
テーブル作成
シンプルなテーブル
2カラムのstudentテーブルを作成:
cursor.execute("CREATE TABLE student (id INT, name VARCHAR(255))")
cursor.execute("SHOW TABLES")
for tbl in cursor:
print(tbl)
出力:
("student",)
主キー付きテーブル
自動インクリメント主キーを含むemployeeテーブルを定義:
cursor.execute("CREATE TABLE employee (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), salary INT(6))")
cursor.execute("SHOW TABLES")
for tbl in cursor:
print(tbl)
出力:
("employee",)
("student",)
テーブルの変更
既存カラムを主キーに変更:
cursor.execute("ALTER TABLE student MODIFY id INT PRIMARY KEY")
検証はテーブルの説明やスキーマの手動確認で可能。
データの挿入
両テーブルに行を挿入:
student_sql = "INSERT INTO student(id, name) VALUES (1, 'John')" employee_sql = "INSERT INTO employee(id, name, salary) VALUES (1, 'John', 10000)" cursor.execute(student_sql) cursor.execute(employee_sql) conn.commit() print(cursor.rowcount, "レコード挿入完了")
出力:
2 レコード挿入完了
次のステップ
ここから更新、削除、より高度なクエリを探求できます。完了時は必ず接続をクローズ:
conn.close()
Happy coding!
Python
- Python print()関数の実践ガイド:基本から応用まで
- Python strip()メソッド完全ガイド:実践例付き
- Python str.count()マスター:文字と部分文字列のカウント実例集
- Python format()文字列を明確な例でマスター
- Python String.find()メソッド完全ガイド:構文、例、代替手法
- Pythonラムダ関数をマスターする:実例とベストプラクティス
- Python round()関数を実例で徹底解説
- Python map()関数をマスター:構文、例、ベストプラクティス
- Python timeit():実行時間測定の実例付きガイド
- Python collections.Counter:効率的なカウント、更新、演算操作
- Python type()とisinstance()の理解:実例付き解説