クエリ SQL文でクエリを編集する [クエリ]
ACCESSのクエリデザイン画面は、SQLの構文が分からなくても、感覚的な操作でクエリを作成することが出来る、とても便利なツールです。
SQLを直接書けるレベルになっても、キーボードからテーブル名や項目名を入力しなくて良いので、ちょっとした検索や集計をするのに便利です。
SQLServerやOracleなどの本格的なデータベースを使用するようになっても、ACCESSのクエリの便利さを一度覚えると、ACCESSが手放せなくなります。
簡単なクエリを作る場合、ACCESSのクエリデザインの画面はとても便利ですが、扱う項目数やテーブル数が多くなったり、複雑な条件を入力する場合や、サブクエリを利用したい場合は、デザイン画面ではやりにくいことがあります。
複雑な条件の場合は、グリッドに条件を入力していくよりも、WHERE句を直接書いていった方がよりイメージしやすい場合もあります。
ACCESSでもSQL文を直接入力して、SQL文でクエリを作成することができます。
操作方法は以下の通り。
「作成」タブから「クエリデザイン」を選択し、新規のクエリを開きます。
クエリの画面が表示されます。
「デザイン」タブから、左端にある「SQL」をクリックします。
状況により、ここに「SQL」が表示されない場合もありますので、その時は、「表示」をクリックして、展開された項目から「SQLビュー」をクリックして下さい。
クエリデザインの画面が、上図のような、メモ帳みたいな画面に切り替わります。
ここに、直接SQL文を入力していきます。
SQL文を書いて、実行する場合は、「実行」をクリックします。
結果がデータシートで表示されます。
SQL編集に戻るには、左の「表示」から「SQL」を選択します。
また、SQL文を直接書いて作成したクエリを、クエリデザインで表示させることもできます。
「表示」から「デザインビュー」を選択します。
このように、SQL文の内容が、クエリデザインで表示されます。
逆に、ある程度の所までクエリデザインで作成して、その後、SQL文で編集を行うことも出来ます。
ほとんどの場合、複雑なクエリでもなんとかクエリデザインで表示してくれますが、サブクエリやEXISTSを使用している場合などは、デザインビューで編集するのは難しい状態になると思います。
まれに、デザインビューで表示できないこともあります。(その旨メッセージがでます)
また、UNIONクエリは、SQLビューでしか作成することができません。
クエリデザインでは作成するのがめんどうな例。
このようなテーブルがあり、以下の条件でデータを抽出するとします。
項目Aが1、かつ、項目Bから項目Eのうち、いずれかの項目が1以上のレコード。
そのまま条件式に組んでいくと、下図のようになると思います。
ANDとORに加え、括弧も利用することで、文章に近いイメージの式が記述できると思います。
これを、クエリデザインで作成すると、どうなるでしょうか。
こうなります。
クエリデザインは基本的に、条件の行違いはOR、同じ行の別の列の内容はANDとなるので、ORとANDの組み合わせでは、このようなことになります。
条件式を直接記述する場合には、括弧が使えるのですが、クエリデザイン上では同等のことができず、こうなります。
このような条件の場合は、条件式を直接書いた方が簡単かと思います。
それ以前に、クエリデザインで条件を作成するとして、条件の内容から、この画面の状態を即座に思いつけるようになるには、ある程度の経験がないと難しいと思います。
時々、クエリデザインの画面をSQL文で表示させてみて、クエリデザインがどのようなSQL文になっているか、また、SQL文で書いたものが、クエリデザインでどのように表示されるか確認してみると、よりクエリを使いこなせるようになると思います。
コメント 0