PythonでMySQLのデータを触ってみる。

今回はPythonでMysqlのデータを触ってみようと思います。

mysqlclient公式ドキュメント

mysqlclient公式Github

MySQLとmysqlclientをインストールします。

$ brew install mysql
$ brew services start mysql
$ pip install mysqlclient

とりあえずルートアカウントで以下のことをします。

  • データベース「connect_test_python」を作成
  • 「connect_test_python」DBにuserテーブルを作成
  • nameに値をインサート
#アクセス
mysql -uroot

# データベース作成
create database connect_test_python;
use connect_test_python;

# 「connect_test_python」DBにuserテーブルを作成
create table user (id int, name varchar(10));

# インサート
insert into user values (1, 'user1');
insert into user values (2, 'user2'); 

確認用Mysqlコマンド

show databases;;
show tables;
select * from user;

これでローカルにmysqlのデータができました。 実際にサンプルコードを作ってみましたので、動かしてみましょう。

[sample.py]

import MySQLdb

# 接続する
con = MySQLdb.connect(
    user='root',
    passwd='',
    host='localhost',
    db='connect_test_python')

# カーソルを取得する
cur = con.cursor()

# SQL(データベースを操作するコマンド)を実行する
# userテーブルから、データを取り出す
sql = "select * from user"
cur.execute(sql)

# 実行結果を取得する
rows = cur.fetchall()

# 一行ずつ表示する
for row in rows:
 print(row)

cur.close


# 接続を閉じる
con.close

リザルト:

(1, 'user1')
(2, 'user2')

解説:

con = MySQLdb.connect(
    user='root',
    passwd='',
    host='localhost',
    db='connect_test_python')

ここでMySQLに接続しています、今回はrootアカウントでmacのデフォルトのパスワードはないので空白です。 hostはローカルですね、ポートは特に変更がないのでデフォルトで、DBは作成した「connect_test_python」を使用しています。

cur = con.cursor()
sql = "select * from user"
cur.execute(sql)
rows = cur.fetchall()

一行目でカーソルを指定して、二行目でSQL文を指定して、三行目で実行していますね。4行目で結果をrowsに格納しています。

まとめ

今回はmysqlclientの触りをしてみました。 このpipはSQLを直接参照できるみたいですね。

せっかくなので次はORマッパーも調べてみたいなーとうっすら思っています。

Nakano
Nakano
Back-end engineer

AWS,Rails,UE4,vue.js,hugo,その他なんでもやりたい