クエリ(Query):データベースに対する要求(命令)
SQL:その要求を書くための言語
学習メモ7-17で作られた3つのテーブル
・マスタテーブル①「M_名簿」
・UPDATE文(更新命令句)による「M_名簿」加工テーブル
②「M_名簿_ただの怪獣」
③「M_名簿_大怪獣」
これら①~③をひとつのテーブルとして集約したいときの、主な方法
【1】アクションクエリ系
空っぽのテーブルを作り、3つのテーブルがもつレコードをすべて追加する。
※ポイント
WHERE 1=0 という絶対に満たされない条件を敢えて付けることで
中身のないテーブル構造だけをコピーしている。
↓新規テーブル「T_統合名簿」作成SQL
SELECT *
INTO T_統合名簿
FROM M_名簿
WHERE 1=0;
オブジェクト一覧の見た目はこんな感じ
クエリ「実行」キーを押下すると
中身のないテーブル「T_統合名簿」が新設される。
①②③3つのテーブルのデータを新規テーブル「T_統合名簿」へ↑↑↑
~レコードを順に追加するSQL~
①M_名簿
INSERT INTO T_統合名簿
SELECT * FROM M_名簿;
②M_名簿_ただの怪獣
INSERT INTO T_統合名簿
SELECT * FROM M_名簿_ただの怪獣;
③M_名簿_大怪獣
INSERT INTO T_統合名簿
SELECT * FROM M_名簿_大怪獣;
それぞれ見た目はこんな感じ(通常の選択クエリと異なる)
【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】の結果(新規テーブル作成)
【2】の結果(選択クエリによる表現)
「小美人」や「泉の精」のように
キャラクター名の変更に関与しないメンバーのキャラNo(主キー)は
それぞれのテーブル上で、わざと同じものを使用させてみたが
重複エラーを起こすことなく
同一テーブル内のレコード情報として結合できたことが意外だった。
同じアクションクエリでも、7-17のデータベース上書き更新とは異なり、
元となるテーブル情報を保護できる今回の追加クエリのほうが、安全性は上。
事務の仕事で重要なのは、スキルだけでなく日々の信頼関係の積み重ね。
情報を慎重に丁寧に扱うことは、顧客の安心感や職場内における信用獲得に繋がっていく。
データベースの学習を通じて、大切にしたいこと。