Access学習メモ 7-18.SQL基礎学習⑱

Access学習メモ 7-18.SQL基礎学習⑱

コンテンツ
学び
クエリ(Query):データベースに対する要求(命令)
SQL:その要求を書くための言語

学習メモ7-17で作られた3つのテーブル
・マスタテーブル①「M_名簿」
M_名簿.png

・UPDATE文(更新命令句)による「M_名簿」加工テーブル
②「M_名簿_ただの怪獣」
M_名簿_ただの怪獣.png

 ③「M_名簿_大怪獣」
M_名簿_大怪獣.png

これら①~③をひとつのテーブルとして集約したいときの、主な方法

【1】アクションクエリ系
空っぽのテーブルを作り、3つのテーブルがもつレコードをすべて追加する。
※ポイント
WHERE 1=0 という絶対に満たされない条件を敢えて付けることで
中身のないテーブル構造だけをコピーしている。

↓新規テーブル「T_統合名簿」作成SQL
SELECT *
INTO T_統合名簿
FROM M_名簿
WHERE 1=0;

オブジェクト一覧の見た目はこんな感じ
テーブル作成.png

クエリ「実行」キーを押下すると
中身のないテーブル「T_統合名簿」が新設される。
新規テーブル.png

①②③3つのテーブルのデータを新規テーブル「T_統合名簿」へ↑↑↑
~レコードを順に追加するSQL~
①M_名簿 
INSERT INTO T_統合名簿
SELECT * FROM M_名簿;

②M_名簿_ただの怪獣
INSERT INTO T_統合名簿
SELECT * FROM M_名簿_ただの怪獣;

③M_名簿_大怪獣
INSERT INTO T_統合名簿
SELECT * FROM M_名簿_大怪獣;

それぞれ見た目はこんな感じ(通常の選択クエリと異なる)
追加クエリ.png


【2】選択(通常)クエリ系
ユニオンクエリ(UNION / UNION ALL)
同一フィールド(列の項目)をもつ複数のテーブルを
一時的にくっつけて(UNION / UNION ALL)
見た目を同一テーブルのように表現できる。 
新しくテーブルを作って(CREATE TABLE)、
データを入れる(INSERT)ような、
【1】データベース編集系とは別の、安全かつスマートな方法。

SELECT * FROM M_名簿
UNION ALL
SELECT * FROM M_名簿_ただの怪獣
UNION ALL
SELECT * FROM M_名簿_大怪獣;

方法【1】でも【2】でも同じ様式の画面を確認することができた。
【1】の結果(新規テーブル作成)
統合.png

【2】の結果(選択クエリによる表現)
UNION.png

「小美人」や「泉の精」のように
キャラクター名の変更に関与しないメンバーのキャラNo(主キー)は
それぞれのテーブル上で、わざと同じものを使用させてみたが
重複エラーを起こすことなく
同一テーブル内のレコード情報として結合できたことが意外だった。

同じアクションクエリでも、7-17のデータベース上書き更新とは異なり、
元となるテーブル情報を保護できる今回の追加クエリのほうが、安全性は上。

事務の仕事で重要なのは、スキルだけでなく日々の信頼関係の積み重ね。
情報を慎重に丁寧に扱うことは、顧客の安心感や職場内における信用獲得に繋がっていく。
データベースの学習を通じて、大切にしたいこと。



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