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;
シノニムの役割
シノニムは、テーブルやビューに割り当てる別名として機能します。実際のエンティティの本来の名前や所有者を隠蔽(シャドーイング)する目的でも利用でき、パブリックアクセス用のシノニムを公開することで、テーブルの利用範囲を安全に拡張することも可能です。
-
PHPの「|」(ビットOR)と「||」(論理OR)演算子の違いを徹底解説
「|」ビット単位OR演算子とは「|」はビット単位OR演算子です。数値を2進数のビット列として扱い、対応する各ビットを比較して、どちらか一方でも1であればそのビットを1に設定します。「||」論理OR演算子とは「||」は論理OR演算子で、オペランド全体を一つの値として評価します。if文などの条件分岐で真偽値を判定する際によく使われます。また、「||」には短絡評価(ショートサーキット評価)という特徴があり、左側のオペランドがtrueと評価された場合、右側の式は評価されません。サンプルコード以下の例では、「|」と「||」の動作の違いを実際のコードで確認できます。<!DOCTYPE html>
-
C#のconstとreadonlyの違いを徹底解説!正しい使い分けのポイント
C#には、一度宣言したら変更できない不変(イミュータブル)な値を定義するためのキーワードとして、「const」と「readonly」の2つが用意されています。どちらも定数のような役割を持ちますが、その挙動や適用できる場面には重要な違いがあります。本記事では、それぞれの特徴と使い分けのポイントをコード例とともに詳しく解説します。constキーワードとは「const」修飾子は、コンパイル時に値が確定し、以後一切変更されない定数を宣言するために使用します。C#では、組み込み型(int、double、stringなど)のみをconstとして宣言でき、クラスや構造体などのユーザー定義型をconstにする