ACCESSの醍醐味は、リレーショナルデータベースを作成できることです。
リレーショナルデータベースって・・・・・・
カンタンに言えば、テーブルをつなげることです。
目次
ACCESSとSQLの基本がここにある
こんにちは。伊川(@naonaoke)です。
前回は、SQL文を利用した、カンタンな計算と、サブクエリを紹介しました。
サブクエリを使えるようになると、ACCESSは、もっと便利になります。
さらに今回は、SQL文を利用して、テーブルをつなげます。
カンタンに言えば、リレーションを組みます。
これは、サブクエリ以上に便利です。
このブログはこんな人にお勧め
- ACCESSで、クエリを勉強している人
- ACCESSで、少し、高度なクエリを書きたい人
- データベースに興味がある人
このブログを、読み終わるころには・・・・
ACCESSには、クエリを作成するために、デザインビューという機能があります。
しかし、デザインビューは、初心者のために、利用しやすい環境を、ACCESSが作ったのです。
データベースを操作するには、データベースを操作するよりSQL文です。
テーブルをつなげるJOINとWHERE
テーブルをつなげることが、ACCESSの醍醐味です。
今は、Excelにも、PowerQueryがあり、テーブルをつなげることができます。
しかし、Excelは、どこまでいってもExcelです。
つまり、デザインビューの機能を超えることはできません。
ACCESSでは、JOINと、WHEREで繋げることができますが、WHEREで繋げるのは、古い書き方なので、新しいJOINで繋げるようにしましょう
テーブルをつなげるJOINとWHERE 作業手順 その1 WHEREで繋げる
それぞれのdep_idで結合してMT_Empoyee表のname列とMT_Department表のname列を表示させる
SELECT FROM WHEREの基本を知っていれば、日本語に直訳できると思います。
また、
1番目は、FROM
2番目は、WHERE
3番目は、SELECT
この順番に読んでいきます。
テーブルをつなげるJOINとWHERE 作業手順 その2 floorを昇順する
赤枠の中が、floorを、昇順で並べるSQL文です。
テーブルをつなげるJOINとWHERE 作業手順 その3 上記を、JIONで記載する
結果は同じです。
書き方に流行があるのか、わかりませんが、JOINのほうが、可読性があると思います。
テーブルをつなげるJOINとWHERE その4 左外部結合と、右外部結合
これは、左外部結合です。
山田太朗は、dep_idは、NULLなので、INNER JOINでは、抽出されません。
しかし、左外部結合することで、抽出することができます。
テーブルをつなげるJOINとWHERE 作業手順 その5 実務で利用する
実務で、素直に、デザインビューで結合できればなと思ったことはありませんか?
競馬になりますが、こんな場合です。
MT_testbに、このようなデータがあります。
主キーは、16桁のレースIDです。
一方で、MT_testaには、このようなデータがあります。
主キーは、18桁のレースID馬です。
レースID馬は、レースID+ゼッケン番号です。
2つのテーブルには、等しいIDはありません。
しかし、等しい値を含んだものはあります。
なので、下記のようなSQL文を書きます。
デザインビューで確認するとこんな感じです。
INNTRJOINで書いてみます。
同じ結果になりました。
WHEREと、INNTRJOINで異なるのは、INNTRJOINでは、デザインビューで、確認することができません。
デザインビューを開こうとすると、下記のエラーが出ます。
INNTRJOINは、不便と思っていました。
しかし、違います。
不便と思っていたのは、SQLの知識がないからです。
SQLの知識があれば、INNTRJOINのほうが、汎用性があると思います。
ここがポイント
ACCESSの初学者の時は、クエリは文章で記載されているということに、とても感動していました。
しかし、その感動と共に、SQL文は、複雑なので、勉強したくないとも、思いました。
私が観ていたSQLは、ACCESSが記載したコードで、人が書いたコードではありません。
ACCESSが記載したコードは、複雑になります。
マクロの記録を同じです。
その複雑なコードは、SQLの知識によって簡略化されるのです。
まとめ
SQL文は、勉強するたびに、本当に面白くなってきました。
なので、別途、書籍を2冊購入しました。
サブクエリなのに、サブクエリを利用しなくても実現できる方法などなど・・・
得た情報は、随時公開していきます。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No299です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。