5.4.10 クイックSQLで使用されるデータベース用語
クイックSQLで使用される一般的なデータベース用語について学習します。
クイックSQLには、次のデータベース用語への参照が含まれています。
-
BLOB – バイナリ・ラージ・オブジェクトまたは
CLOB
です。BLOBは、バイナリ・データを格納し、文字セットのエンコーディングを行いません。BLOB
サイズでは、システム構成に応じて4GB以上を格納できます。 -
チェック制約 – チェック制約は、特定の列に含まれる値を制限する宣言的な方法です。
create table projects ( id number primary key, name varchar2(50), status varchar2(30) check (status in ('OPEN','CLOSED')) );
-
CLOB – キャラクタ・ラージ・オブジェクト(
CLOB
)です。VARCHAR2
データ型の最大サイズは32,767バイトですが、CLOB
サイズでは最大4GBの文字データを格納できます。 -
列 – RDBMS表では、行と列で構成される表にデータが格納されます。各列には名前が付けられます。たとえば、
first_name
です。 -
データベース – コンピュータに保持されているデータを構造化したセット(特に様々な方法でアクセスできるもの)。
-
データ・モデル – データ・モデルは、データの要素を編成し、それらが互いにどのように関連しているかを定義するための方法です。モデルは通常、物理データベース・モデルに変換すると表と列に変換されるエンティティにデータを編成します。このツールは、インデントされたテキストから物理データ・モデルを作成するための非常に基本的なツールです。重大なデータ・モデリングには、適切なデータ・モデリング・ツールOracle SQL Data Modelerを使用することをお薦めします。これは、生産性を高め、データ・モデリング・タスクを簡略化する無料のグラフィカル・ツールです。
-
データ型 – 表内の各列にデータ型があります。データ型によく使用されるのは、文字列
(VARCHAR2)
、数値
、日付
です。 -
DML – データ操作言語。SQLコマンドには次のものがあります。
-
INSERT
- 表に新しい行を追加するためのSQL文。 -
UPDATE
- 表内の1つ以上のデータ行を更新するためのSQL文。 -
DELETE
- 表から1つ以上のデータ行を削除するためのSQL文。
-
-
外部キー – 別の表を参照する、表内の1つ以上の列。たとえば、従業員を部門別に編成している場合、employees表内の
department_id
がemployee
表の主キーへの外部キーになるという具合です。外部キーを定義することで、表間の関係を宣言的に定義することになります。 -
結合 – 結合とは、2つ以上の表またはビューの行を結合するSQL問合せです。
FROM
句に複数の表を記述すると、必ず問合せは結合問合せになります。リレーショナル・データベース・モデルの主な利点は、繰り返し発生するデータを1つの場所に格納できることです。たとえば、部門と従業員という2つの表があるとします。次に、両方の表からデータを選択する問合せを示します。select d.name, d.location, e.name, e.job from departments d, employees e where e.department_id = e.id
部門の名前や場所に変更があった場合には、1箇所でのみ変更されます。
-
リレーショナル・データベース – リレーショナル・モデルにデータを編成するデータベース・モデル。リレーショナル・モデルは、リレーションとも呼ばれ、列と行からなる1つ以上の表にデータが編成されます。リレーショナル・データベース内のデータにアクセスし、データベース・オブジェクトを定義するための標準言語はSQLです。
-
RDBMS – リレーショナル・データベース管理システム。
-
オブジェクト – データベース・オブジェクトは、データの格納または管理に使用される名前付きのウィジェットです。たとえば、
tables
、views
、triggers
、synonyms
はすべてデータベース・オブジェクトとみなされます。 -
PL/SQL – Oracleが開発したSQL言語の手続き型拡張要素です。PL/SQLは、手続き型言語SQLを表します。PL/SQLはサーバー側に格納される手続き型言語で、Oracleデータベースのデータに対して手続き操作を実行するのに使用できます。
-
問合せ – リレーショナル・データベース内のデータにアクセスしたり問い合せるには、SQL
SELECT
文を使用します。SQLでは、SELECT
文により、1つ以上の表またはビューからデータを問い合せることができます。-
projectsという表にある3つの列の問合せ
select id, name, status from projects where status = 'OPEN';
-
集約問合せ
select count(*) count_of_projects, sum(case when status = 'OPEN' then 1 else 0) open_projects, sum(case when status = 'CLOSED' then 1 else 0) closed_projects from projects;
-
-
予約語 – オブジェクト識別子として使用できない名前。たとえば、
SELECT
を表名として使用することはできません。 -
行 – RDBMS表では、行と列で構成される表にデータが格納されます。各行は、1つ以上の列で構成されています。
-
順序 – 順序とは、複数のユーザーが一意の整数を生成するために使用できるデータベース・オブジェクトです。シーケンス・ジェネレータは順序番号を生成し、一意主キーの自動的な生成、および複数の行または表の間のキーの調整に役立ちます。順序は、次の構文を使用して作成できます。
create sequence project_seq;
順序値は、
project_seq.currval
(現在の値)またはproject_seq.nextval
(次の値)を使用して参照できます。nextval
にアクセスするたびに、順序が増分されます。デフォルトの増分は1
です。 -
スキーマ – スキーマは、表などのデータベース・オブジェクトを作成するためのネームスペースです。データベースにデータベース表を作成することはなく、データベースのスキーマ内に作成します。各データベースには、任意の数のスキーマを格納できます。スキーマは、ユーザーと呼ばれることもあります。新規にデータベースを用意する場合は、まずスキーマ(またはユーザー、両者は同じものです)を作成し、次にそのスキーマまたはユーザー内に表を作成します。スキーマを作成するには、SQL
create schema
コマンドまたはcreate user
コマンドを使用します。スキーマは、データベース内にデータベース・オブジェクトを編成するための手段です。 -
SQL – Structured Query Language。データベース表を定義したり、表内のデータを操作するために使用される言語。
-
構造化データ – リレーショナル・データベース・データは、データが行と列に整然と編成されるため、構造化とよく呼ばれます。非構造化とは通常、データに構造が適用されていないことを言います。
-
表 – 行と列に編成された関連データを格納するデータベース・オブジェクト。
-
表の作成
create table projects ( id number primary key, name varchar2(50), status varchar2(30) );
-
表への行の挿入
insert into projects (id, name, status) values (1, 'My Project','OPEN');
-
表のデータの問合せ
select id, name, status from projects where status = 'OPEN';
-
-
トリガー – データベース・トリガーは、特定の表で発生した特定のイベントに応えて自動的に実行されるプロシージャ・コードです。たとえば、行挿入の前や後です。次のトリガーは、列を強制的に小文字にします。
create or replace trigger PROJECTS_BIU before insert or update on PROJECTS for each row begin :new.OWENER_EMAIL := LOWER(:new.OWENER_EMAIL); end; /
-
ビュー – データベース・ビューは、SQL文の結果セットに基づいた仮想表です。ビューは、ストアド・クエリーとも呼ばれます。複数の表を結合するビューを作成できます。このようなビューを作成したら、表の場合と同じように問い合せることができます。次に、ビューを作成するSQLの例を示します。
create view department_employees as select d.name, d.location, e.name, e.job from departments d, employees e where e.department_id = e.id;
親トピック: クイックSQLの使用