OpenOffice.org 初心者入門講座 で最も基本的なクエリーの作り方(Q01Prefecture)は解説しましたので、今回はその続きになります。まだの方は先にそちらをご覧ください。
今回は2つのテーブルを共通のフィールドで関連付けて、まるで1つのテーブルのように表示する方法を解説します。これがリレーショナルデータベースでクエリーを活用する基本となります。クエリーがわかれば、Base はわかります。
【1】Base を起動して、「sampleDB070.odb」を開きます。
【2】クエリーを表示します。
【3】「デザイン表示でクエリーを作成」をクリックします。
【4】「テーブルまたはクエリーの追加」ダイアログボックスで、「表」を選択すると、テーブルの一覧が表示されます。
【5】「クエリー」を選択すると、クエリーの一覧が表示されます。
【6】「表」を選択し、「T02City」を選択したら、「追加」ボタンをクリックします。
【7】「閉じる」ボタンをクリックします。
【8】クエリーデザイン画面に、「T02City」が追加されました。
【9】「CITY_CD」をダブルクリックします。
【10】「CITY_CD」が画面下に選択されました。
【11】同様に「CITY_NAME」、「PREF_CD」を選択します。
【12】「クエリーの実行」ボタンをクリックします。
【13】クエリーの実行結果が表示されました。
しかし都道府県名は表示されていません。有名な都市ならわかりますが、日本全国には市町村が1900以上あります。都道府県も一緒に表示されていたほうがわかりやすいです。
そこで次は都道府県も表示してみましょう。
【14】メニューから「表示 → プレビュー」を選択します。
【15】クエリーデザイン画面に戻りました。
*この戻る操作を覚えてください。
【16】「テーブルまたはクエリーの追加」ボタンをクリックします。
【17】ダイアログボックスで、「T01Prefecture」を追加します。
【18】クエリーデザイン画面に「T01Prefecture」が追加されました。
【19】マウスで T02City の「PREF_CD」を、T01Prefecture の「PREF_CD」にドラッグ&ドロップします。
*逆でも同じです。
【20】テーブル同士が「PREF_CD」で関連付けられました。
【21】T01Prefecture の「PREF_NAME」をダブルクリックして選択します。
【22】「クエリーの実行」ボタンをクリックします。
【23】今度は都道府県名が表示されました。
【24】他の都道府県も表示されているか確認してください。
ここまでの作業を保存しましょう。
【25】「保存」ボタンをクリックします。
【26】クエリー名に「Q02City」と入力し、「OK」ボタンをクリックします。
【27】クエリーのタイトルが変わりました。
【28】保存したらクエリーは閉じてください。
【29】データベースファイルウィンドウに「Q02City」が表示されています。
【30】作成したクエリーは、クエリーを実行したり、編集、削除することができます。
【31】復習を兼ねて、「Q02City」を編集で開き、CITY_CD の並べ替えを「昇順」に設定してください。
設定したら保存します。
【解説】
(1) PREF_CD は両方のテーブルにありますが、必ず T02City 側の PREF_CD を選択します。
これはとても重要なポイントです。クエリー Q02City の主役となるテーブルは、 T02City です。しかし T02City だけでは都道府県名が表示できないので、T01Prefecture を追加しました。つまり T01Prefecture は脇役です。
もし T01Prefecture 側の PREF_CD を選択した場合、このクエリーから作成したフォームでは、データが入力できないなどの不具合の原因となります。
(2)クエリーを使うと、フィールドの並び順は自由に入れ替えることができます。また目的のフィールドだけを選んで表示することができます。
(3)クエリーを使うと、複数のテーブルを関連付けて、まるで一つのテーブルのように、データを表示することができます。
(4)レコードは必ずしも番号順に表示されるとは限りませんので、並べ替えを設定するようにしてください。
【ワンポイント】
余裕のある方は、今回のようなクエリーをデザインした場合、どのようなSQL文ができるのか見てください。今はSQL文の意味がわからなくても結構です。SQL文を見慣れることが大事です。