プログラミング

PythonのSqlite3を使ってデータベースを操作する方法を見ていこう!

こんにちは!

消費財メーカーでデジタルマーケティングに携わっているウマたんです。

Pythonでデータベースを作成して操作することができるのをご存知でしょうか?

もちろんSQLの知識もある程度必要ですが、Pythonのsqlite3というライブラリーを使えば簡易的にデータベース使えちゃいます。

是非、マスターしておきましょう!

そこで、この記事ではPythonのsqlite3を用いてデータベースを作成する方法について見ていきます。

ウマたん
ウマたん
PythonとSQLを用いてデータベース作成・操作していこう!

sqlite3とは

sqlite3はpythonでデータベースを操作するライブラリーです。

基本的な記述方法はSQLが分かっていれば問題ありません。ちなみにMySQLをPythonで使う方法もあります。

sqlite3のリファレンスに関して詳細は以下のURLをご覧ください!

https://docs.python.org/ja/3.5/library/sqlite3.html

Python Sqlite3の使用方法

Sqlite3で簡単にデータベースを作成し、テーブルにデータを格納し抽出してみます。

コードは以下のようになっています。

データベースを作成

こちらの部分でデータベースを作成しています。conn.cursor()はデータベースに接続するためのおまじないだと思っていただければ問題ございません。

テーブルを作成

こちらで、テーブルを作成しています。テーブル上の列名を型と同時に定義します。

この時、テーブルが既に存在する場合エラーを起こしてしまうので、もしテーブルが存在する場合はテーブルを作成しないという処理を入れる必要があります。

また複数のSQL文処理を行う場合は、executeではなくexecutescriptを使う必要があります。

これらに関しては後述します。

テーブルにデータを格納

こちらでテーブルにデータを格納していきます。

conn.commit()ではデータの格納を保存します。

データを抽出

こちらの部分で格納したデータを抽出していきます。

fetchoneではデータを1行抽出します。

conn.close()では、データベースへの接続を止めます。

これで簡単なデータベース作成・操作方法は終了。続いて他のコードと組み合わせて、少し応用した実装を行っていきましょう!

Pythonで応用的なコードを実装

今回実装したいのは、ある記事情報をスクレイピングで抽出しそれらの類似度を計算した後、抽出に使ったURLと類似度をデータベースに格納して抽出するというもの。

実際にはデータベースを経由する必要はありませんが、勉強のためSqlite3を使ってみましょう。

ちなみにスクレイピングと類似度算出に関しては以下の記事でまとめているので参考にしてみてください。

コードは以下のようになっています。

前半部分ではスクレイピング・形態素解析・類似度算出を行う関数を定義しています。

その後データベース格納から抽出まで行うクラスを定義し、その中で関数を定義しています。

基本的に先ほどと変わりませんが、テーブル既に存在する場合は消去し新たにテーブルを定義するSQL文を作成しています。

そのSQL文を実行する際はexecutescriptを使っています。

各URLに紐づくテキストの類似度をデータベースに蓄積していくなどを行うことが可能ですね!

Pythonでデータベース操作 まとめ

Pythonでデータベースを操作する方法について見てきました。

今回は簡易的なSQL文についてのみ見てきましたが、SQL文を使えば様々なデータを作成・抽出・加工することができます。

以下の記事でSQL文の簡単な構文についてまとめていますのでよければご覧ください!

SQLで覚えるべき書き方はSELECT文だけ!SELECT文とWHERE句・集計関数をマスターしよう!こんにちは!デジタルマーケターのウマたんです。 SQLが使えるようになると、データベースから自分で自由にデータを引っ張ってくること...