MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

SQLのテーブル・ビュー・シノニムの違いをわかりやすく解説


本記事では、構造化照会言語(SQL)における「テーブル」「ビュー」「シノニム」の違いについて、具体例を交えながら詳しく解説します。

テーブル・ビュー・シノニムとは

テーブルはデータを格納する「実体(リポジトリ)」であり、データベース内に物理的に存在します。

ビューはデータベースの物理的な構成要素ではありません。事前にコンパイルされているためデータ取得が高速になるという特徴に加え、安全なアクセス制御の仕組みも提供してくれます。

シノニムとは、テーブル・ビュー・シーケンス・プログラムユニットなどに対して割り当てる「別名(代替名)」のことです。

具体例

まず、次のような従業員テーブルを作成してみましょう。

create table employee (empID integer primary key, name varchar2(30), skill varchar2(30), salary number(20), DOB datetime);

ここで「給与(salary)の情報は、一部のユーザーグループには見せたくない」というシナリオを想定します。このような場合、閲覧を許可する項目だけを抽出したビューを作成すれば、簡単に対応できます。

create view emp_some_details as (select empID,name,skill,DOB from employee);

サンプルプログラム

上記の例をもとに、SQLでテーブルとビューを作成し、それぞれの中身を確認するプログラムは以下の通りです。

create table employee (empID integer primary key, name varchar2(30), skill varchar2(30), salary number(20), DOB datetime);
insert into employee values(100,'AAA','JAVA',30000,2020-08-20);
insert into employee values(101,'BBB','PHP',35000,2020-07-02);
select * from employee;

create view [salary_hide] as select empID,name,skill,DOB from employee ;
select * from salary_hide;

実行結果

上記のプログラムを実行すると、次のような出力が得られます。

100|AAA|JAVA|30000|1992
101|BBB|PHP|35000|2011
100|AAA|JAVA|1992
101|BBB|PHP|2011

後半の2行がビュー「salary_hide」の検索結果です。salary(給与)列が含まれておらず、許可された情報のみが表示されていることが確認できます。

ビューを使うメリット

ビューを利用する主なメリットは以下の通りです。

  • 1つのテーブル、複数のテーブル、1つまたは複数のビュー、あるいはそれらの組み合わせなど、柔軟にデータを参照できる。

  • ビューは基となるテーブル(ベーステーブル)のデータと連動しており、常に最新の状態を反映する。

  • 必要な列だけを見せることで、セキュアなデータアクセスの仕組みを実現できる。

ビューの更新(再定義)

既存のビューは CREATE OR REPLACE VIEW 文で上書き・再定義することができます。構文は以下の通りです。

CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

ビューの削除

不要になったビューを削除するには、DROP VIEW コマンドを使用します。

DROP VIEW view_name;

シノニムの役割

シノニムは、テーブルやビューに割り当てる別名として機能します。実際のエンティティの本来の名前や所有者を隠蔽(シャドーイング)する目的でも利用でき、パブリックアクセス用のシノニムを公開することで、テーブルの利用範囲を安全に拡張することも可能です。

  1. PHPの「|」(ビットOR)と「||」(論理OR)演算子の違いを徹底解説

    「|」ビット単位OR演算子とは「|」はビット単位OR演算子です。数値を2進数のビット列として扱い、対応する各ビットを比較して、どちらか一方でも1であればそのビットを1に設定します。「||」論理OR演算子とは「||」は論理OR演算子で、オペランド全体を一つの値として評価します。if文などの条件分岐で真偽値を判定する際によく使われます。また、「||」には短絡評価(ショートサーキット評価)という特徴があり、左側のオペランドがtrueと評価された場合、右側の式は評価されません。サンプルコード以下の例では、「|」と「||」の動作の違いを実際のコードで確認できます。<!DOCTYPE html>

  2. C#のconstとreadonlyの違いを徹底解説!正しい使い分けのポイント

    C#には、一度宣言したら変更できない不変(イミュータブル)な値を定義するためのキーワードとして、「const」と「readonly」の2つが用意されています。どちらも定数のような役割を持ちますが、その挙動や適用できる場面には重要な違いがあります。本記事では、それぞれの特徴と使い分けのポイントをコード例とともに詳しく解説します。constキーワードとは「const」修飾子は、コンパイル時に値が確定し、以後一切変更されない定数を宣言するために使用します。C#では、組み込み型(int、double、stringなど)のみをconstとして宣言でき、クラスや構造体などのユーザー定義型をconstにする