フクの非日常

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DB:平成20年 午後I-3

チケットの空席検索の問題。こういったSQLの副問い合わせはとても苦手。午前Iは選択可能なので極力避けるとおもう!
なぜならば・・・ここまで複雑なSQLは書いたことがないから。あ、べつにそんな消極的な理由ではなく、データベースといえ扱う分野が広いから、SQL組むのがメインの人、テーブル設計・実装がメインの人、リソース管理がメインの人といろいろあって良いと思うんですよね。ただ自分がそのなかでSQLメインではない、というくらいで。

複数のテーブルをがしゃっとくっつけて、一発で結果を出すのはかなり難しいと思います。。。自分ではまず書けないので、設問のSQLの虫食いを埋めるのも一苦労。でもまあ、後援ごとに座席数を数えて、その数が0か10%未満か、もっと残っているかで×、△、○をつけていくのは理解できた。回答するにはそれに加えてSQLの構文を深くしってないといけないんですね。今回は「USING」の後ろに来るのは何か?みたいなのがありましたが、USINGの事例探すのでも大変でした。。。(結局、USINGは何を使って結合するかを示すようです!)あと、NATURAL JOINだとか、INNER JOINだとか、区別がはっきりわかってません。要は、WHERE句で繋いだのとどう違うのよ!?ってのを知りたいです。ええ、わかってます。調べますとも。。。

【結合について】
内部結合は3つの表記表がある。
・FROMに表を置き、WHERE句で条件を指定する
・INNER JOINとON句またはUSING句で条件を指定する →USING(列名)
・NATURAL JOINを指定する(条件は不要)

自然結合は条件を指定しない代わりに、共通の名前とデータ型を持つものは結合列と認識されるそうです。
ちょっと勉強になりました。

しかし、毎回思うのはSQLするときって、みんなどうやって書いてるんだろう?手書きでSQL組んで構文エラーとか起こさないのかしら。。。それともアタシが修行が足りないだけ?データベース試験は実際にDBを叩ける環境で試験をさせてもらえないだろうか!実際に正しい処理結果が出ることを確認して回答を書くほうが、より実践的だと思います。(ああ、それにしてもSQLは難しいナリよ・・)

コメント


管理者にだけ表示を許可する
 

 

トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。