スポンサード リンク

スポンサーサイト

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

スポンサード リンク
-- : -- : -- | スポンサー広告 | page top↑
スポンサード リンク

SQLにおける「存在検査(EXISTS)」と「IN述語」の違い

情報処理技術者試験では、初級システムアドミニストレータ試験を含む多くの区分でSQLの問題が出題されます。そのため、いくつもの試験を受けていれば、MySQLやSQL Serverといったソフトを実際に使ったことがなくても徐々にSQLについて詳しくなっていき、ちょっとしたSELECT文程度なら記述したり読むことができるようになります。

しかし、「存在検査(EXISTS)」と「IN述語」はその区別が難しく、基本情報技術者試験の学習をしたときにはどんなに参考書を読んでも違いをはっきりと理解することはできませんでした。そして、半年後にソフトウェア開発技術者試験の学習をしているときに初めてその違いを理解でき、忘れないように取っておいたメモがあったのでそれを記事にしました。

存在検査(EXISTS)

存在検査の場合、子のSELECT句の記述は"*"で、子のSELECT句に親と子のデータを引き合わせる条件記述が必要です。


SELECT 列名 FROM 表名
  WHERE EXISTS
    (SELECT * FROM 表名
      WHERE 条件式)

IN述語

IN述語では、子のSELECT句に列名を記述することができます。


SELECT 列名 FROM 表名
  WHERE 列名 IN
    (SELECT 列名 FROM 表名
      WHERE 条件式)

参考になった本

やさしく説明するのが売りの本では身近な例などを用いて概念をわかった気にさせてくれるだけ(初級シスアドや基本情報レベルではそれで十分)ですが、この本では正規化やSQLの説明が数学的にされていたため、「なんとなくわかる」から、「理解した」になりました。

2008 ソフトウェア開発技術者 午後問題の重点対策 (情報処理技術者試験対策書)
4872686519高田 伸彦 日高 哲郎

アイテック 2007-12-25
売り上げランキング : 20649


Amazonで詳しく見る
by G-Tools

「わかった気にさせてくれる本」ではこの本が一番のお気に入りです。マンガパートと説明パートに別れているのですが、マンガの内容が驚くほどしっかりしています。これ以上の本を探すのは難しいだろうと思えるほど読みやすく、そしてわかりやすかったです。特に正規化の説明がうまかったです。

マンガでわかるデータベース
4274066312高橋 麻奈 あづま 笙子 トレンドプロ

オーム社 2005-12
売り上げランキング : 6630

おすすめ平均star
starおもしろかった!!
starマンガでわかりやすい
star星五つ以上!

Amazonで詳しく見る
by G-Tools

スポンサード リンク

テーマ:情報処理技術者試験 - ジャンル:コンピュータ - ソーシャルブックマーク: この記事をクリップ! Yahoo!ブックマークに登録

23 : 12 : 54 | 資格-情報処理技術者 | トラックバック(0) | コメント(0) | page top↑
<<「ループはポインタ使った方が速い」とは限らない | ホーム | 基本情報技術者試験合格体験記>>
コメント

コメントの投稿














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

トラックバック
トラックバックURL
http://networkprogramming.blog18.fc2.com/tb.php/11-ac79e702
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |

プロフィール

TBVector

Author:TBVector

プロフィール

メールフォーム

記事検索

Google

最近の記事

人気の記事

過去の記事

カテゴリー

タグランキング

リンク

最近のコメント

最近のトラックバック

アクセスカウンタ

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