自由に検索フォーム

ちょっと使い方が難しいです。
分からないけどコンピュータに興味があるという方は、挑戦してみてください。


基本てきな書き方

  1. SELECT 列の名前 FROM テーブルの名前 WHERE 条件
  2. SELECT 列の名前1, 列の名前2 FROM テーブルの名前 WHERE 条件1 and 条件2
  3. SELECT 列の名前 FROM テーブルの名前 WHERE 条件 ORDER BY 列の名前

上で書かれているのは、SQLというデータベースを検索する言語です。
これはほんの一例で、もっとたくさんの書き方があります。

  1. 一番基本てきな書き方です。
    読みたいテーブル(表のこと)と、表示したい列の名前を指定して、
    さらに読みたい行を選ぶための条件(第7週の放送、など)を加えればOKです。
  2. 1とほぼ同じですが、列の名前はカンマ(,)で区切ると複数指定できます。
    条件も、andやorで結ぶと、複数指定できます。
  3. ORDER BY を使うと、行を表示する順番を指定できます。
    ORDER BY で日付の列を指定すれば、その日付の順番で表示されます。

データベース情報

天てれデータベース2003のテーブル情報です。

senshi_mst
てれび戦士マスタ。てれび戦士の情報があります。
senshi_cd てれび戦士コード。
senshi_name てれび戦士の名前。フルネームではない。
short_name てれび戦士の略称。一文字の略記。
gender てれび戦士の性別。1が男子、2が女子。
birth てれび戦士の誕生日。
corner_mst
コーナーマスタ。コーナーの情報があります。
corner_cd コーナーコード。
corner_name コーナーの名称。
date_mst
日付マスタ。日付の情報があります。
date_cd 日付コード。
week_no 週の名前。
date_print 一般的な日付(例:2004年1月13日)。
hoso_tbl
放送テーブル。各日付のコーナーの情報があります。
date_cd 日付コード。
number 放送の順番。それぞれの日付でコーナーが放送された順番。
corner_cd コーナーコード。
memo その放送についての簡単なメモ。
shusseki_tbl
出席テーブル。各てれび戦士が放送に出演した情報があります。
date_cd 日付コード。
number 放送の順番。それぞれの日付でコーナーが放送された順番。
senshi_cd 戦士コード。

上記のマスタやテーブルは細かく分けられているため、
いろいろな検索ができるのですが、その分使いにくくなっています。

そこで上の5つの表から分かりやすく検索した結果を、次のビューにまとめました。
なので、普通の検索は次のビューを使う方がやりやすいと思います。

shusseki_corner_view
出席コーナービュー。放送単位で全てれび戦士の出席情報があります。
date_cd 日付コード。
number 放送の順番。それぞれの日付でコーナーが放送された順番。
corner_cd コーナーコード。
corner_name コーナーの名称。
week_no 週の名前。
date_print 一般的な日付(例:2004年1月13日)。
juneh 樹音の出欠。出席のときは略称。
shisei 紫星の出欠。出席のときは略称。
emma エマの出欠。出席のときは略称。
shiho 志穂の出欠。出席のときは略称。
yagi やぎっちの出欠。出席のときは略称。
yuka 結花の出欠。出席のときは略称。
arisa 有沙の出欠。出席のときは略称。
joan ジョアンの出欠。出席のときは略称。
mickel マイケルの出欠。出席のときは略称。
chee ちひろの出欠。出席のときは略称。
riho 里穂の出欠。出席のときは略称。
misaki 美咲の出欠。出席のときは略称。
nozomi 望の出欠。出席のときは略称。
gouki 公輝の出欠。出席のときは略称。
kousei 幸生の出欠。出席のときは略称。
sayuri 小百合の出欠。出席のときは略称。
takuya 卓也の出欠。出席のときは略称。
brian ブライアンの出欠。出席のときは略称。
anna 杏奈の出欠。出席のときは略称。
yama 山ちゃんの出欠。出席のときは略称。
nanase 七世の出欠。出席のときは略称。
memo その放送についての簡単なメモ。

検索の例

天てれデータベース2003から検索するときの例を書いてみました。

SELECT date_print, corner_name FROM shusseki_corner_view WHERE yama IS NOT NULL
山ちゃんが出演した日付とコーナー名を表示するSQLです。
SELECT senshi_name, IF(gender=1,'男子','女子'), birth FROM senshi_mst ORDER BY birth
てれび戦士の名前と性別、誕生日を表示するSQLです。
SELECT sm.senshi_name, count(st.senshi_cd) prs_cnt FROM shusseki_tbl st
 JOIN senshi_mst sm ON st.senshi_cd = sm.senshi_cd
 JOIN hoso_tbl ht ON st.date_cd = ht.date_cd AND st.number = ht.number
 JOIN corner_mst cm ON ht.corner_cd = cm.corner_cd
 WHERE cm.corner_name = 'あるある川柳'
 GROUP BY st.senshi_cd
 ORDER BY prs_cnt DESC, sm.birth
あるある川柳の出演回数が多い順(同じ回数のときは誕生日の早い順)に表示するSQLです。
さらに3回以上の出演者だけ表示したいときは、"HAVING prs_cnt >= 3"のようにHAVING句を使います。

戻る