【ACCESS SQL】ACCESSとSQLの基本がここにある。それがリレーションシップ

記事
IT・テクノロジー

YouTubeでも紹介しています。是非ご覧ください。


ACCESSの醍醐味は、リレーショナルデータベースを作成できることです。
リレーショナルデータベースって・・・・・・
カンタンに言えば、テーブルをつなげることです。



ACCESSとSQLの基本がここにある

こんにちは。伊川です。
前回は、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列を表示させる
1.png

2.png

SELECT FROM WHEREの基本を知っていれば、日本語に直訳できると思います。
また、
1番目は、FROM
2番目は、WHERE
3番目は、SELECT

この順番に読んでいきます。


3.png

テーブルをつなげるJOINとWHERE 作業手順 その2 floorを昇順する

4.png

赤枠の中が、floorを、昇順で並べるSQL文です。

5.png


テーブルをつなげるJOINとWHERE 作業手順 その3 上記を、JIONで記載する

6.png

7.png

8.png

9.png


結果は同じです。
書き方に流行があるのか、わかりませんが、JOINのほうが、可読性があると思います。

テーブルをつなげるJOINとWHERE  その4 左外部結合と、右外部結合

これは、左外部結合です。

10.png
11.png



山田太朗は、dep_idは、NULLなので、INNER JOINでは、抽出されません。
しかし、左外部結合することで、抽出することができます。

12.png

13.png


テーブルをつなげるJOINとWHERE 作業手順 その5 実務で利用する

実務で、素直に、デザインビューで結合できればなと思ったことはありませんか?
競馬になりますが、こんな場合です。
14.png



MT_testbに、このようなデータがあります。
主キーは、16桁のレースIDです。


15.png

一方で、MT_testaには、このようなデータがあります。
主キーは、18桁のレースID馬です。
レースID馬は、レースID+ゼッケン番号です。
2つのテーブルには、等しいIDはありません。
しかし、等しい値を含んだものはあります。
なので、下記のようなSQL文を書きます。


16.png


17.png

デザインビューで確認するとこんな感じです。

18.png


INNTRJOINで書いてみます。
19.png
20.png


同じ結果になりました。
WHEREと、INNTRJOINで異なるのは、INNTRJOINでは、デザインビューで、確認することができません。
デザインビューを開こうとすると、下記のエラーが出ます。

21.png


INNTRJOINは、不便と思っていました。
しかし、違います。
不便と思っていたのは、SQLの知識がないからです。
SQLの知識があれば、INNTRJOINのほうが、汎用性があると思います。



ここがポイント

ACCESSの初学者の時は、クエリは文章で記載されているということに、とても感動していました。
しかし、その感動と共に、SQL文は、複雑なので、勉強したくないとも、思いました。
私が観ていたSQLは、ACCESSが記載したコードで、人が書いたコードではありません。
ACCESSが記載したコードは、複雑になります。
マクロの記録を同じです。
その複雑なコードは、SQLの知識によって簡略化されるのです。


まとめ
SQL文は、勉強するたびに、本当に面白くなってきました。
なので、別途、書籍を2冊購入しました。
サブクエリなのに、サブクエリを利用しなくても実現できる方法などなど・・・
得た情報は、随時公開していきます。
今回も最後まで読んでいただきありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す