SELECT文の基本的な書式
SELECT文は最も多用する基本的なSQL文で、SELECT句とFROM句からなります。
書式は下記のとおりです。
<書式2.1>
SELECT <列名1>,<列名2>,… FROM <テーブル名>;
<SQL例2.1>
SELECT “ID”,“Name” FROM “Item”;
SQLの実行
それでは<SQL例2.1>をBase上で実行してみましょう。
①ダウンロードして解凍したフォルダー「Base_SQL練習用ファイル」に格納されているデータベースファイル、Base_SQL練習.odbを開きます。
②Base編集画面左ペインの「データベース」欄より「クエリー」を選択し、右ペイン上部の「タスク」欄で[SQL表示でクエリーを作成]をクリックします。(下図参照)
③すると、下図のようにクエリーデザイン画面が表示されますので、<SQL例2.1>のSQL文を手入力し、画面上のアイコン「クエリーの実行」をクリックします。
(注)入力されたSQL文はシステムにより自動的に着色されます。
④すると、下図のようにSQL文の上に実行結果が表示されます。
⑤確認したらクエリーデザイン画面を閉じてください。閉じようとすると下図のようなダイアログボックス「確認」が表示されますので、ボタン[いいえ]をクリックして下さい。
※ この講座ではSQL文を実行して結果を確認したあとのクエリー・オブジェクトは保存しません。検証の都度、[SQL表示でクエリーを作成]をクリックし、クエリーデザイン画面を開いてSQL文を実行して結果を検証し、保存せずに終了する方法をとります。
改行とコメント
<SQL例2.1>はSQL文を手入力して実行・検証しましたが、これ以降はダウンロードして解凍したフォルダー「Base_SQL練習用ファイル」に格納されているSample_SQL2.txtのSQL文をコピペして実行し、結果を検証する手順で学習を進めます。
①下記の例はテーブル「Item」の全ての列を表示する指定をしたSQL文です。
<SQL例2.2>
SELECT
“ID”,
“Name”,
“Unit_ID”,
“UnitPrice”,
“TaxRate”
FROM “Item”;
②SQL文が複雑になると、要所要所で改行しないと読みにくくなります。SQL開発者は一般的に上記のようなスタイルで改行してSQL文を記述しますが、システム上特別なルールはありません。しかし、職場などグループでSQL開発を進めている場合は、改行のスタイルをルール化し、統一しておいたほうがいいでしょう。
※ なお、下記のように「,」を列名の頭に付ける書き方もあります。SQLを数多く扱う内に気付くことですが、このほうが合理的です。例えば上記の書き方で列名の最後の1行「“TaxRate”」を削除したとしましょう。すると列名の最後の行が「“UnitPrice”,」となってエラー発生の原因となり、末尾の「,」1文字を削除する手間が掛かるからです。しかし、この講座では見慣れている上記の書き方で進めることにしましょう。
<SQL例2.2>(別の改行スタイル)
SELECT
“ID”
,“Name”
,“Unit_ID”
,“UnitPrice”
,“TaxRate”
FROM “Item”;
③それでは今回もBase上でSQLを実行してみましょう。
④Sample_SQL2.txtをメモ帳やワードパッドなどのテキストエディターで開きます。
(注)もちろんWriterで開くことも可能ですが、この講座ではサクラエディターで開いた状態をサンプル画像にしています。
⑤テキストエディターが開いたら、下図のように10行目から19行目までのSQLコードを指定してコピーします。
⑥前回同様、Base編集画面左ペインの「データベース」欄より「クエリー」を選択し、右ペイン上部の「タスク」欄で[SQL表示でクエリーを作成]をクリックします。
⑦下図は上記⑤でコピーしたテキストをクエリーデザイン画面上にペーストした状態です。下図のように、Sample_SQL.txtではSQL文にコメントを付けています。赤い破線で囲った個所がコメントです。
⑧ここでSQL文で使用するコメントについて説明します。コメントはSQL文内で何の機能も持たない文字列で、一般的に注釈として使用します。
コメントの記述法には二つあり、ひとつ目に下記のように記述する方法があります。この記述法では「/*」(スラッシュ・アスタリスク)をコメントの開始記号とし、「*/」(アスタリスク・スラッシュ)をコメントの終了記号とする記述法です。開始記号と終了記号の間に挟まれたテキストは全てコメントとして扱われます。
<コメント記述法1>
/*
SQL例2.2 改行とコメント
*/
ふたつ目の方法として下記のような記述法があります。この記述法では「—」(マイナス記号2文字)をコメントの開始記号とし、改行する直前までのテキストがコメントとして扱われます。
<コメント記述法2>
“ID”, — 品目ID
⑨ここでアイコン「クエリーの実行」をクリックします。
⑩すると、下図のようにSQL文が正常に実行され、コメントがなんら障害にならないことが確認できます。
⑪前節でも述べたように、この講座ではクエリー・オブジェクトは保存しませんが、今回だけ保存してみて、SQL文の改行やコメントがどのように保存されるか、確認してみましょう。
⑫クエリーデザイン画面を閉じてください。閉じようとすると下図のようなダイアログボックス「確認」が表示されますので、ボタン[はい]をクリックして下さい。
⑬すると、下図のようにダイアログボックス「名前を付けて保存」が表示され、「クエリー名」欄にデフォルト値「クエリー1」と表示されますので、このままボタン[OK]をクリックして下さい。
⑭Base編集画面左ペインの「データベース」欄より「クエリー」を選択し、右ペイン下部の「クエリー」欄にリスト表示されたクエリー「クエリー1」を右クリックし、コンテキストメニューから「SQL表示で編集」を選択します。(下図参照)
⑮すると、下図のようにクエリーデザイン画面が表示されます。このSQL文は正常に実行することができますが、SQL本体部分の改行情報は全て取り除かれ、コメントはSQL本体より後方に集められてしまいます。これはBaseのクエリー編集機能によるものですので、改行とコメントのスタイルを自分の意図どおりに維持したい場合はこの講座のようにSQL文をBaseとは別のテキストエディターで作成し、テキスト形式ファイルとして保存しておくとよいでしょう。
⑯改行とコメントの説明は以上です。クエリー「クエリー1」はこのあとの学習に不要ですので削除します。
⑰削除の手順は次の通りです。「クエリー1」のクエリーデザイン画面を閉じて、クエリー名の上で右クリックし、コンテキストメニューから「削除」を選択します。(下図参照)
⑱すると下図のようにダイアログボックス「削除の確認」が表示されますので、ボタン[削除]をクリックします。これでクエリー「クエリー1」が削除されます。
開発手法としての「コメント化」について
本来、注釈として使用するためのコメント機能はSQL開発者にとって便利な働きをします。SQL文が複雑な構造になってしまった場合や、開発者にとって初めて実行する手法の場合、特定の行の機能を一時的に無効にした上で実行して、その結果を確認することがあります。こうした手法を「コメント化」といいます。
①実例で説明します。前節で使用した<SQL例2.2>を再度クエリーデザイン画面にコピペします。
②コメント化の例として列名「UnitPrice」(単価)だけ一時的に表示させないようにしてみましょう。この場合、列名「UnitPrice」の行だけコメントにして機能を果たさない、単なる文字列にしてしまえばいいのですから、行の先頭に「—」(マイナス記号2文字)を挿入します。これが列名「UnitPrice」のコメント化です。
③下図が列名「UnitPrice」をコメント化した状態で実行した状態です。実行結果に列「UnitPrice」が表示されていないことが確認できます。
④もちろん、このあと列名「UnitPrice」の行の先頭につけた「—」を削除して再実行したら機能は元に戻ります。
全列指定のSELECT文
ここから先は基本的にBase上での操作手順の説明を省略します。Sample_SQL2.txtからクエリーデザイン画面に適宜コピペして実行し、結果を検証して下さい。
テーブルの全ての列(フィールド)を表示したいときは、列名の替わりに「*」(アスタリスク)を記述します。書式は下記のとおりです。
<書式2.2>
SELECT * FROM <テーブル名>;
<SQL例2.3>
SELECT * FROM “Item”;
このSQLの実行結果は<SQL例2.2>と同じになります。
なお、「*」を指定すると、列(フィールド)がテーブルに定義されている順に表示されます。