Python

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

ウマたん
ウマたん
本記事では、PythonのSqlite3を使ってデータベース操作をおこなっていきます。PythonでSQL扱えると便利!もちろんPythonだけでなくSQLの知識も必要になるので注意してくださいねー!

こんにちは!

消費財メーカーでデータサイエンスに携わっているウマたん(@statistics1012)です。

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

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

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

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

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

ウマたん
ウマたん
Pythonの勉強は以下の記事をチェック!
【独学入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【統計ラボ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...

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文の簡単な構文についてまとめていますのでよければご覧ください!

PC
SQLで覚えるべき書き方はSELECT文だけ!SELECT文とWHERE句・集計関数をマスターしよう!当サイト【統計ラボ】の本記事では、SQLでマスターしておきたい基本的な構文SELECT文について見ていきます!SQLでは、基本SELECT文ができて後はそれにWHERE句や集計関数そして他テーブルのJOINなどが出来れば不自由しません!...

Pythonはデータ解析やスクレイピングそしてWebアプリケーション作成まで出来る幅広いプログラミング言語!

以下の記事で初心者がPythonを習得する方法・SQLを習得する方法についてまとめていますのでよければご覧ください!

【独学入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【統計ラボ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...
SQLを最速でマスターできるオススメ本と勉強方法!当サイト【統計ラボ】の本記事では、SQLを勉強するのにオススメな本と勉強法についてまとめていきます!SQLはデータサイエンスの基本であり必ずマスターしておかなくてはいけない言語です。早い段階から手を動かすことで理解が深まりますよー!...
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!