Web開発で最も人気のある言語といえばPythonです。
WebアプリケーションにPythonを使用している方も多いのではないでしょうか。
Webアプリケーション + MySQLデータベースは開発では必須の環境です。
そこで今回はこのPythonでMySQLを使用する方法について簡単に解説してみたいと思います。
目次
環境を整える
MySQLとPythonを連結させる前にまずは下準備をしておきましょう。
windows 10では公式にUbuntuが利用できますので、今回はUbuntuを使っての操作で説明します。
まずUbuntuで以下のコマンドを実行してください。
mysql -u root -p
MySQLがpasswordを求めてくるので入力して次へ進みます。
次にデータベースを作成しましょう。
作成するには次のコマンドを実行します。
CREATE DATABASE test_db;
下準備はこれで整いましたが、これと同時進行で念のためにPythonのライブラリもインストールしておきましょう。
ターミナルで以下のコマンドを実行することでライブラリをインストールすることが出来ます。
pip install mysql-connector-python
これで全ての下準備は整いました。
Pythonを使ってテーブルを作成
ここからはPythonに慣れていただくためにPythonを使っていきます。
まずはテーブルを作成してみましょう。
テーブルの作成は以下のコードで可能です。
import mysql.connector db=mysql.connector.connect(host="利用中のホスト", user="test_user", password="設定したパスワード") cursor=db.cursor() cursor.execute("use sample_db") db.commit() cursor.execute("""create table if not exists test_table( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(32), age INT);""") db.commit()
このコードを実行したら、確認のためにMySQLのシェルから以下のコードを実行してみましょう。
MariaDB [sample_db]> use sample_db Database changed MariaDB [sample_db]> show tables; +---------------------+ | Tables_in_sample_db | +---------------------+ | test_table | +---------------------+ 1 row in set (0.000 sec)
先ほど作成したテーブルが表示されれば完了です。
INSERTを使ってデータを挿入する
次の操作ではINSERT文を使用し、いくつかのデータを挿入してみましょう。
以下のコードを参考にして実行してみてください。
import mysql.connector db=mysql.connector.connect(host="利用中のホスト", user="test_user", password="設定したパスワード") cursor=db.cursor() cursor.execute("use sample_db") db.commit() str_name = "insert into test_table (name, age) values (%s, %s);" member_list = [ ("Michel", 30), ("Alen", 24), ("Jonathan", 32) ] for name in member_list: cursor.execute(str_name, name) db.commit()
実行をかけたら再度MySQLのシェルから結果が反映されているかを確認してみましょう。
MariaDB [sample_db]> select * from test_table; +----+----------+-----+ | id | name | age | +----+----------+-----+ | 1 | Michel | 30 | | 2 | Alen | 24 | | 3 | Jonathan | 32 | +----+----------+-----+ 3 rows in set (0.000 sec)
きちんと挿入されていることが確認できました。
SELECTを使って検索する
次はPythonを使用してデータを検索してみましょう。
今回はMySQLのシェルではなくPythonですので間違わないように注意してください。
以下のコードを参考に組み立ててみてください。
import mysql.connector db=mysql.connector.connect(host="利用中のホスト", user="test_user", password="設定したパスワード") cursor=db.cursor() cursor.execute("use sample_db") db.commit() cursor.execute('select * from test_table') rows = cursor.fetchall() for i in rows: print(i)
実行結果
(1, 'Michel', 30) (2, 'Alen', 24) (3, 'Jonathan', 32)
MySQLと同じように呼び出せたら成功です。
UPDATEでデータを更新する
次はUPDATE文を使って更新作業をしてみましょう。
import mysql.connector db=mysql.connector.connect(host="利用中のホスト", user="test_user", password="設定したパスワード") cursor=db.cursor() cursor.execute("use sample_db") db.commit() cursor.execute('update test_table set age=20 WHERE name="Alen"') db.commit() cursor.execute('select * from test_table') rows = cursor.fetchall() for i in rows: print(i)
実行結果
(1, 'Michel', 30) (2, 'Alen', 20) (3, 'Jonathan', 32)
Alenの年齢が20に更新されていることが確認できました。
DELETEでデータの削除
次はDELETEを使ってデータを削除する方法です。
ここまでくるともうお気づきの方もいらっしゃると思いますが、コードはほぼ一緒です。
import mysql.connector db=mysql.connector.connect(host="利用中のホスト", user="test_user", password="設定したパスワード") cursor=db.cursor() cursor.execute("use sample_db") db.commit() cursor.execute('delete from test_table where name="Alen"') db.commit() cursor.execute('select * from test_table') rows = cursor.fetchall() for i in rows: print(i)
実行結果
(1, 'Michel', 30) (3, 'Jonathan', 32)
Alenのレコードが削除されたことが確認できました。
まとめ
いかがでしたか?
今回はPythonとMySQLの連結方法について紹介しました。
Webアプリケーションの開発でPythonを選択する方は多いです。
まだ慣れていない方もこれを機に一度検討してみてもよいかもしれません。