今回の記事ではPythonで自身のPCにインストールしたMySQLに接続し、テーブルの作成・データ確認・追加を行う方法をご紹介する記事です。その際に起きるモジュールインポートエラーなど回避する方法も合わせて記載しているので初心者でも操作可能となっております。是非参考にして見て下さい。
Python環境の構築とMySQLでデータベース作成
まずはMySQLにデータベースを作成する必要があるのでそちらを作成します。MySQLはターミナルやCMDから操作できるので下記実行でデータベースは作成しておきましょう。
mysql.server start
MySQLサーバの起動
mysql -u root -p
パスワード打つ
create database python_db;
ここ基本大文字表記ですが別に小文字でもクエリ実行は可能です。
次にPythonの仮想環境を作成し、MySQLに接続するためのPython環境を作成していきます。仮想環境など必要ない方はこの工程はなしでもOKです。ただし、Pythonを扱う上で、仮想環境でライブラリを管理するとかなり便利なのでなるべく仮想環境を作成して下さい。Anacondaの方はAnaconda Navigatorから仮想環境を作成できます。
その仮想環境上で今回使用するmysqlclientをpipでインストールして使用していきます。
理由としてVerの違いなのか仮想環境を作らずにローカルにpipインストールしたものだとモジュールがうまくインストールできずエラーになったからです。
適当なフォルダ上で仮想環境作成
pyvenv test_env
source test/bin/activate
これで仮想環境に入ります。
touch test.py
pythonファイルの作成
このファイル上に下記のコードを書いてみましょう。
では次にMySQLに接続して見ましょう。
MySQLに接続し、テーブル作成・データ確認・追加
import MySQLdb
# データベースへの接続とカーソルの生成
connection = MySQLdb.connect(
host='localhost',
user='root',
passwd='自身の設定したもの',
db='python_db',
charset='utf8'
)
cursor = connection.cursor()
# テーブルの初期化
cursor.execute("DROP TABLE IF EXISTS name_age_list")
# テーブルの作成
cursor.execute("""CREATE TABLE name_age_list(
id INT(11) AUTO_INCREMENT NOT NULL,
name VARCHAR(30) NOT NULL COLLATE utf8mb4_unicode_ci,
age INT(3) NOT NULL,
PRIMARY KEY (id)
)""")
# データの追加
cursor.execute("""INSERT INTO name_age_list (name, age)
VALUES ('test1', '1'),
('test2', '2'),
('test3', '3')
""")
# 一覧の表示
cursor.execute("SELECT * FROM name_age_list")
for row in cursor:
print(row)
# 保存を実行
connection.commit()
# 接続を閉じる
connection.close()
ここで大切なものはデータベースの接続とカーソルの生成です。まず、接続をした上でデータの確認・追加などが行えるようになります。接続に必要な情報を記載していれば問題ないです。そしてcursor.excuteの後ろのカッコの中にSQLクエリを記載していけば良いです。要はSQLを操作するクエリをターミナルなどではなくcursor.excuteのカッコの中に記載するだけです。
Pythonファイル実行
ターミナルからの実行でかきの表示が出るはずです。
python test.py
test1 1
test2 2
test3 3
では今回の記事は以上です。他にも多数のPython関連の記事を記載しているのでぜひ参考にして見て下さい。
コメント