授業では名簿と成績表という2つの表を結びつける操作で、データベースの使用例を学びました。この例では、
沢山のデータが入った、2つの大きなデータの集まり(表)がある 2つを比較したいのだけど、一つ一つを目で見て比較するのは面倒
という場合です。実際のケースとしては、次のような場合があるでしょう。
このケースでは、2つの表があります。
ウェブ登録で得られた参加者のデータ 氏名、連絡先、振り込み金額、メールアドレスなどが入っている(後にmeiboと呼ぶ表) 郵便局から得られた振り込みリスト:振り替え伝票から氏名、日付、振り込み金額をリストにしたもの(後にfurikomiと呼ぶ表)
手作業で解決するならば、それぞれの表をエクセルで作成し、氏名で並び替え、上から順に、会費未納の人はいないか(まれに、2回振り込んでしまっている人もいます)、振り込み金額が間違っている人がいないかどうかをチェックします。でも、未納者だけなら目でみて探しても、そんなに時間はかかりませんが、振り込み金額の間違えまでもチェックしていると、かなり大変な作業になります。
こういう場合、SQLiteを使ってmeiboとfurikomiとでもいう2つのテーブルを使えば、目でみてチェックする作業をコンピュータにやらせることができるのです。例えば、次のようなSQLを1行かけば、処理は済んでしまいます。
> select meibo.namae, e-mail, kingaku, furikomi.kingaku from meibo left outer join furikomi on meibo.namae = furikomi.namae where meibo.kingaku != furikomi.kingaku order by furikomi.kingaku desc;
このケースでも2つの表があります。
野生植物に関する和名、学名、科名などの対応表(後にyaseiと呼ぶ表) 自分が野外で採集した100種の植物の和名リスト(後にcollectionと呼ぶ表)
この場合もSQLiteを使って、yaseiとcollectionとでもいう2つのテーブルを作れば、何度も検索やコピペを繰り返さなくても、和名と学名の対応表が出来てしまいます。
> select collection.wamei, gakumei from collection left outer join yasei on collection.wamei = yasei.wamei order by collection.wamei;