PythonでDBを使用してみる その2 PythonでDBの操作をしてみる

こんにちは。そらです。
前回は、DBやSQL文の基本の文について勉強をしました。今回の記事で考えていくテーブルは、電子部品管理用のアプリケーションで使用することを念頭におきます。
プログラムで簡単に実装をしていくために、このアプリケーションではテーブルを1つでやっていきます。
ただし、拡張性を上げるために、複数テーブルでも簡単に使えるようにテーブルは設計していきたいと思います。
Pythonのプログラムのインデントは2つ下げで紹介していきます。プログラムを書く上で参考にしたサイトは公式のリファレンスと、公式のリファレンスで参考として紹介されていたページです。




テーブルの設計を考える

要素を考える

電子部品を管理していくうえで必要になると思われる情報を以下に列挙します。

  • 型番(名前)
  • パッケージ名
  • 個数
  • 保存場所(ケース番号等)
  • 更新日

この4つのデータが保管できるようなDBのテーブルを製作していきます。

人によっては、別の情報が必要になる可能性が考えられます。そのときは、他のテーブルを生成して対応すればいいと思います。ここで、問題が一つ考えられます。複数のテーブルがあるときに、テーブル間でデータを結び付けるためにはどのようにすればいいのだろうかということです。DBのテーブルを作る上で、全てのテーブルにおいて一意にデータを決定するデータを一つ用意することで対応ができます。この、一意にデータを決定するための要素を主キーと呼びます。詳しくは、参考文献等を参照していただければと思います。

作る表の要素を決定する

要素を考えるのところで出てきた、主キーを追加して表を考えていきます。

主キー 保管場所 部品名 パッケージ名 保存個数 更新日
INTEGER INTEGER TEXT TEXT INTEGER TEXT

Pythonでテーブルを作るときは、それぞれ英語で適当な単語に置き換えて使用していく予定です。

PythonでDBにつないでみる

私のプログラムの実行環境はWindows10でAnacondaを使用しています。
Python 3.7.7 64bitを使用しています。

PythonでDBにアクセスするプログラムを作る

初めに、DBに接続をするだけのプログラムを書きたいと思います。

sqlite3をimportしてコネクトを繋ぐだけのサンプルプログラムになります。続いて、テーブルにデータを挿入したり、テーブルのデータの確認をしてみたいと思います。

基本のSQL文で遊んでみる

前回、紹介したSQL文を使用してexsample.dbを製作して遊んでいきたいと思います。

テーブルを作って、確認をしてみました。削除や更新もSQL文で行うことができます。

SQL文を返す関数を作ってみる

毎回、文を書くのは大変なので文を作る関数を作っておくといいのかなと思います。partslistでテーブルにデータをテーブルに追加するSQL文を作る関数の例を以下に示したいと思います。

SQLの接続周りをクラスにまとめる

ここまで、プログラムを書いてきましたがDBにアクセスをするのにDBを開けたり閉じたりをしていました。毎回、プログラムを書くのは面倒なのでクラスにまとめました。

さいごに

いかがだったでしょうか。次回は、GUIのプログラムに入っていく予定です。GUIのライブラリはtkinterを使用していきます。標準のライブラリであることと、インターネット上に情報が比較的たくさんあるためです。

参考文献

sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース