step04 クエリ言語SQL

SQLとは

これまで、クエリの作成には、クエリのデザインビューと、そこに表示される、デザイングリッドという仕組みで行ってきた(図4-1を参照)。そうした演習ではしばしば、「もうクエリはできていますので、実行してください」という台詞を使ったはずだ。しかしなぜ、デザイングリッドにいろいろな文字列を入力するだけで、クエリの作成などというボタンを押すことなしにクエリができるのだろうか。言い換えれば、デザイングリッドという仕組みは、何をしているのだろう。

図4-1: MS Accessのデザイングリッド

実は、デザイングリッドはエディタである。エディタといっても、秀丸のような汎用のテキストエディタではなく、構造エディタ※1という分類に属する、まあ特殊なエディタだ。構造エディタは主としてプログラミングに用いられ、デザイングリッドも、SQL(Structured Query Language)という言語を対象としている。クエリのデザインとは、SQLプログラミングだったのである。編集中(作成中)のクエリは、SQLビューに切り替えることで見ることができる。図4-2にSQLビューの画面を示す。

1 特定の文法(syntax)に沿ったテキストしか作成できないようにしたテキストエディタのこと。メールの本文など、不定型のテキストを書くことはできないが、その代わり、どのように操作しても、その文法から外れる心配はない。

図4-2: SQLビューの画面

図中のSQL文は、Select文(またはSelect-From-Where文)であり、図4-1のデザイングリッドに対応して、自動的に作成されたものである。実行ボタンを押すと、SQL処理系に渡されて実行される。どのようなデザイングリッドの入力に対しても、必ず1つのSelect文が存在する。だから、「もうクエリはできています」ということになるのだ。
SQLは、MS Accessを含むリレーショナル・データベース管理システム(RDBMS)において事実上の標準(デファクトスタンダード)になっているクエリ言語であり、国際標準にもなっているので、データベースを習得するには必須の技術である。SQLにはSelect文以外にも多くの構文がある※2が、デザイングリッドが生成するのはSelect文のみであり、MS Accessにはそれ以外の構文を直接実行させる手段が(おそらく)存在しない。だから、この単元でのSQL学習も、Select文だけに範囲を絞る。

2 後述の教科書で、SQL以外の構文について簡単に紹介するが、作成演習はしない。実行手段がないからである。

ところで、こうは思わなかっただろうか。【基礎編】の講座ではSQL言語を知らなくてもデータベースは作れた。それに、デザイングリッドが自動的にSQL文を生成してくれるのなら、言語を直接学ばなくてもよいのではないか、と。
単純なクエリに関していえば、それは事実である。だが、実は、デザイングリッドはすべてのSelect文を生成できない。したがって、この【応用編】で対象とする、より複雑で実用的なデータベースを構築するには、SQL言語を学ぶ必要が出てくるわけだ。DBMSの中核部では、クエリの実行がSQL言語の処理に置き換えられているのだから、当然、Select文で書けないクエリは存在しない。step03で用いた教科書でも、依然としてSQLは対象外だったので、別の単元を立てた。ここまで学んだ皆さんは、もはやデータベースの初心者ではなく中級者だ。

教科書によるSQLの学習

SQLの、より正確にはSelect文のプログラミングを系統立てて習得するために、以下の教科書(『これだけは知っておきたいデータベースの常識』(藤本壱、技術評論社より抜粋)を元に、詳細な解説を行う。このリンクからダウンロードして、授業中に参照すること。予定している小テストでは、この資料の持ち込みを許可するので、手元におけるよう印刷するとよい。
また、この教科書で実例とされているテーブル類を、別のAccessファイルとして用意したので、これもリンクからダウンロードすること。

SQLの小テスト

この単元の内容を正しく理解したことを確認するため、小テストを行う。上記教科書の印刷物のみ、持ち込みを許可する。また、演習で作成したAccessデータベースを利用したり、答案のクエリを試行するため、MS Accessの使用も許可する。Webの利用は禁止するが、おそらくWebを調べたところで、問題の解決には役立たないだろう。