PythonでDBを使用してみる その1 DBの勉強をする

こんにちは。そらです。
過去にSQLの構文等は勉強をしたことがありましたが、実際にプログラムを使用して実装するということをしたことはありませんでした。

Pythonにはデータベース(DB)のひとつであるSQLite3というリレーショナルデータベース(RDB)を扱うライブラリがあります。
今回は、このライブラリとPythonのGUIのライブラリであるTkinterを使用して、電子部品の在庫等を保存するGUIアプリケーションを作ってみたいと思います。Pythonこのアプリケーションを作る前に、DBの操作に必要なSQL文の勉強をしていきます。




リレーショナルデータベース(RDB)について簡単にまとめる

リレーショナルデータベース(RDB)は二次元の表でデータを表現するDBになるため、表に関する処理が基本になります。RDBでは、表と表の間の相互関係も定義することが可能です。DBのメリットとしては、多数のユーザーからアクセスが可能な共用資源として使用できます。

また、DBは管理システムの中で使用されることが多いです。DBが使われているアプリケーションはたくさんあり、wordpressではMySQL使用されています。他にも、SNSアプリケーションやショッピングサイト等のWebアプリケーションでは幅広く使用されているようです。

このように、RDBを管理するシステムは、RDBMS(Relational DataBase Management System)と呼ばれています。
DB操作をすることのできるプログラム言語はPython,C++,Java,PHP等多々あります。そのときの開発に合わせて使うことが望ましいと考えられます。

基本的なSQL文について

SQLは、データベースの操作言語としてISOで標準化がされています。そのため、基本部分は共通化されています。

表の作成、データの挿入、データの更新、データの削除、データの検索についてのSQL文についてまとめていきます。

テーブルの作成(CREATE文)

テーブルの作成と使用例を以下に示します。

データ型に関しては、SQLite-データ型等を参考にすればいいと思います。SQLでは、型の指定法はそれぞれのソフトごとに変わるみたいです。
先程の例では、int型はINTEGER、文字列はTEXTとしています。ここから先、例ではこのテーブルを使用していきます。

データの挿入

データの挿入と使用例を以下に示します。

データ型が文字列の場合は、’または"で文字列を囲んであげる必要があります。また、値の順番はテーブルの順番に準拠している必要があります。

データの検索

データの検索と使用例を以下に示します。

条件が出てきたので、SQLで使用することのできる演算子については、比較演算子の使い方等を参考にするとよさそうです。

データの更新

データの更新と使用例を以下に示します。

WHEREで条件指定をしない場合は、指定した列に存在するものがすべて変更されるため注意してください。

データの削除

データの削除と使用例を以下に示します。

テーブルの削除は別の文があります。ただ、条件を指定しない場合はテーブル内のすべてのデータが消えるため注意が必要です。

おわりに

使用するDBの簡単な紹介と、DB操作における基本的な処理の文の紹介をしました。他にも、列名の変更やデータ型の変更、複数のテーブルから検索等いろいろなことが可能です。

次回は、テーブルの作り方を考えていこうと考えています。テーブルを作るうえで主キーと呼ばれるものが大切になってきます。

参考文献

SQLの基礎を学ぶのに使用しました。