Python入門 MySQLに接続する
はじめに
不定期連載のPython入門第9回目です。
こまごまとした構文学習をすっとばして、DB接続を作成してみましょう。
第7回目にSQLite接続を行いましたが、今回はMySQLに接続します。
今回の内容:
・MySQLの準備(Linux)
・PythonからMySQLに接続してみる
MySQLでテーブル作成
接続するDBとテーブルを作成しておきましょう。今回はLinuxのMySQLを使用します。
SQLiteよりもMySQLの方が機能的に充実しているので、MySQLを使う機会も多いかと思います。
まずはデータベースを作成しましょう。データベース名は「python_db」としました。
1 2 | $ mysql -u root -p (パスワード入力) |
1 2 | sql> create database python_db; sql> use python_db |
次にテーブルを作成しておきましょう。
1 | sql> create table sample(id int primary key auto_increment, name varchar (100)); |
SQLiteのサンプルのときと同じテーブル構成にしています。
SQLiteのSQLとは少し異なるので注意が必要ですね。
データをinsertしておきます。
1 2 3 4 5 | sql> insert into sample values ( 'taro' , 'jiro' , 'saburo' ); sql> select * from sample; 1|taro 2|jiro 3|saburo |
ここまでできたら次にPythonからこのテーブルに接続してみます。
PythonでMySQL接続
MySQLdbモジュールを使用します。
1 | $ vi mysqltest.py |
mysqltest.pyの中身を以下のようにします。
1 2 3 4 5 6 7 8 9 10 11 12 | import MySQLdb as my #MariaDB connect con = my.connect(user = 'user' , password = 'pass' , database = 'python_db' , use_unicode = True , charset = "utf8" ) cursor = con.cursor() statement = "select * from sample" cursor.execute(statement) records = cursor.fetchall() con.close() for record in records: print (record[ 0 ] + record[ 1 ]) |
実行してみましょう。
1 | $ python3 mysqltest.py |
sampleテーブルの中身が表示されればOKです。
PythonからDB接続をして、テーブルの中身を取得できました。
まとめ
今回はPythonからMySQLに接続する方法を説明しました。SQLiteと比べてあまり違いはありませんでした。
MariaDBの場合も同じライブラリが使えるので、MariaDBの場合も同じ記述で大丈夫です。