<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>クエリを極める
  



 menu

29. SQL文をどこで使う?

ちょっと休憩・・・。

さてさて、このコーナーではクエリのデザインビューのほかに、SQL文も掲載してます。
でも、このSQL文って、MS-Accessの中で使ってくことってできるんでしょうか・・・??

クエリは、基本的にSQLです。
ですが、SQLというものは、どのデータベースで使うのかによって、書き方や、使える構文なども変わってきます。そんなに激しい違いはないですけれど、細かいところを見ていくとやっぱOracleとSQLServerではSQLの書き方って若干違うし、それはもちろんMS-Accessにも言えることです。また、そのデータベース独自の関数とかを使うこともありますから、SQLを詳しく実戦的に勉強するなら、どのデータベースの中で使うのかを踏まえて取り組んでいった方がいいわけです。
あるいは、「データベースによって若干書き方が違うんだ」ということを頭に置いて、柔軟に考えていくか・・・どっちかですね。

MS-Accessの場合は、クエリのデザインビューの使い方を熟知していれば、SQL文を直接入力したりしなくてもぜんぜんオッケーなんです。でも、このクエリってやつも、SQLで書かれてるわけです。で、どんな風になっているかというと・・・。
クエリのデザインビューで、メニューバー[表示]→[SQLビュー]を選んでみましょう。

こんな感じです。

表示の仕方がSQL文なだけで、これもいうなれば「クエリのデザイン画面」の一種なのです。

基本的なSQLの文法では、

 SELECT フィールド名,フィールド名,フィールド名 FROM テーブル名 WHERE フィールド名="なんか値";

となります。
SELECT(どのフィールドを)、 FROM(どのテーブルから)、 WHERE(どういう条件を満たしたレコードを)という、SQLの基本的な構文を、半角スペースをあけながら入力するのが、SQL文です。画面で見ると、半角スペースがどこにあいているのか分かりにくいですが、じっくり観察してみてください。
また、最後の;(半角セミコロン)は、「このSQL文はここで終わり」という意味を表すものなので、時と場合によっては他の記号にしなくてはならなかったり、必要なかったりします。これはどこでそのSQL文を動かそうとしているかによりますから、あまり難しく考えないほうがいいかもしれません。

で、MS-AccessのクエリをSQL表示したものをもうちょっと細かく観察してみると、

 SELECT テーブル名.フィールド名,テーブル名.フィールド名,テーブル名.フィールド名 FROM テーブル名 WHERE テーブル名.フィールド名="なんか値";

という具合に、フィールド名に必ずテーブル名がつくようになってますね。
でも、このようにテーブルが1個のクエリの場合は、

 SELECT フィールド名,フィールド名,フィールド名 FROM テーブル名 WHERE フィールド名="なんか値";

これでも大丈夫です。

さて、じゃあ・・・たとえばこういうSQL文があったとして、こういうクエリを作りたいけれど、このSQL文を見て同じようなクエリを作るんじゃ、SQLに詳しくないわたしには辛いわ・・・なんて場合は・・・。


【参考:SQL文で書くと?】



 1)クエリを新規作成し、
 2)テーブルも何も選ばないで「テーブルの表示」ウィンドウを閉じてしまい(テーブルなしのデザインビュー状態)
 3)メニューバー[表示]→[SQLビュー]をクリックしてSQL表示にして、
 4)SQL文を貼り付けます。

で、デザイン表示にすると、

これでクエリが出来上がるわけです。

ちゃんとテーブル名やフィールド名が正しくなっていれば(名前が間違ってなければ)、こういう使い方も可能です。
このへんの操作がわかってる人どうしなら、SQL文をやり取りするだけでクエリを作ることができるわけなんですね。
ただし、SQL文を入力している間は、テーブル名が正しいかとかそういうチェックはされません。テーブル名が違えば文法があってても結果は正しく出ませんから、内容をぜんぜん理解せずどっかからコピーしてきたSQLをそのまま貼り付けたってダメなものはダメですよ。よく分からないうちは、地道にデザインビューでクエリを手作りしましょう。

SQL文を直接入力するのはとても難しいです。