Python

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

記事内に商品プロモーションを含む場合があります
ウマたん
ウマたん
当サイト【スタビジ】の本記事では、PythonのSqlite3を使ってデータベース操作をおこなっていきます。PythonでSQL扱えると便利!もちろんPythonだけでなくSQLの知識も必要になるので注意してくださいねー!

こんにちは!

データサイエンティストでありながら最近はWeb開発に没頭しているウマたん(@statistics1012)です。

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

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

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

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

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

Pythonでデータベースを扱えるsqlite3とは

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

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

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

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

Python Sqlite3の使用方法

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

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

ロボたん
ロボたん
うわ!たくさんコードがあって理解が難しそう、、、
ウマたん
ウマたん
大丈夫!順番に説明していくよ!

データベースを作成

import sqlite3

dbname = 'trains.db'

conn=sqlite3.connect(dbname)
c = conn.cursor()

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

テーブルを作成

# executeメソッドでSQL文を実行する
create_table = '''create table toukeilab (id value,name verchar)'''
c.execute(create_table)

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

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

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

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

テーブルにデータを格納

sql = 'insert into toukeilab (id, name) values (?,?)'
namelist = (1, "uma")
c.execute(sql, namelist)

conn.commit()

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

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

データを抽出

select_sql = 'select * from toukeilab'

c.execute(select_sql)
result=c.fetchone()

conn.close()

print(result)

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

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でできることは以下にまとめています!

Pythonでできること
【初心者向け】Pythonでできること7選!サンプルコードをまじえて解説!当サイト【スタビジ】本記事では、Pythonでできることを7つまとめていきます!!Pythonで何ができるのか分からない状況から深い理解にもっていきますよー!実際にPythonでの実装例や勉強方法も取り上げているのでぜひご自分の環境で手を動かして実装してみてくださいね!...

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

Python独学勉強法
【Python独学勉強法】Python入門を3ヶ月で習得できる学習ロードマップ当サイト【スタビジ】の本記事では、過去僕自身がPythonを独学を駆使しながら習得した経験をもとにPythonを効率よく勉強する方法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...
SQL
SQLを最速でマスターできる勉強方法とオススメ本・サイト当サイト【スタビジ】の本記事では、SQLを勉強するのにオススメな本と勉強法についてまとめていきます!SQLはデータサイエンスの基本であり必ずマスターしておかなくてはいけない言語です。早い段階から手を動かすことで理解が深まりますよー!...

また、データベース・データマネジメント周りの知識を体系的に付けたい人は以下の記事もしくはUdemy講座でまとめていますので是非見てみてください!

データマネジメント
データマネジメントとは?DMBOK(ディンボック)に沿ってまとめておこう!当サイト【スタビジ】の本記事では、データ活用において非常に重要であるデータマネジメントについてDMBOKの考え方に沿ってまとめていきます。データマネジメントを疎かにしてしまうと、せっかくのデータも意味をなさなくなりますので必ずおさえておきましょう!...

【初学者向け】データマネジメント入門!DX推進やAI 導入を支える重要な要素をDMBOKに沿ってみていこう!

Udemy データマネジメント講座
【オススメ度】
【時間】1.5時間

自分で言うのもなんですが、データマネジメントについてDMBOKに沿ってこれでもかというくらい分かりやすくまとめているつもりです!

\30日以内なら返金無料/このコースを見てみる

 

スタビジアカデミーでデータサイエンスをさらに深く学ぼう!

スタアカサービスバナースタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら