PythonでMySQLのデータを触ってみる。
今回はPythonでMysqlのデータを触ってみようと思います。
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マッパーも調べてみたいなーとうっすら思っています。