関係演算とSQLについての詳しい解説

基本情報技術者試験, FE 基本情報技術者試験
基本情報技術者試験

データベースの操作には、効率的にデータを管理し、必要な情報を引き出すための技術が必要です。

その中で、関係演算SQL(Structured Query Language)は、特に重要な役割を果たします。

この記事では、関係演算とSQLについて、その基本概念から具体的な操作方法まで、詳しく解説します。


スポンサーリンク

関係演算とSQLの概要

関係演算は、データベースにおける基礎的なデータ操作の方法で、テーブル(関係)に対して行う演算のことを指します。

一方、SQLはデータベース管理システム(DBMS)に対してデータの定義や操作を行うための言語です。

SQLは、関係演算をベースに設計されており、データの抽出、挿入、更新、削除などの操作を直感的に実行できます。

まずは、関係演算について解説し、その後にSQLの使い方を紹介します。


関係演算

選択(Selection)

選択は、テーブルの中から特定の条件に一致する行(レコード)を抽出する操作です。

SQLでは、SELECT文においてWHERE句を使用して、特定の条件を指定することで実現されます。

例:

SELECT * FROM Employees WHERE Age > 30;

このクエリは、Employeesテーブルのうち、30歳以上の従業員を抽出します。

射影(Projection)

射影は、テーブルの中から特定の列(フィールド)を選択する操作です。

SQLでは、SELECT文で特定の列を指定することで実行されます。

例:

SELECT Name, Department FROM Employees;

このクエリは、従業員の名前と所属部署のみを表示します。不要な列は排除されます。

結合(Join)

結合は、複数のテーブルを関連付けて、1つのテーブルとして扱う操作です。

結合によって、異なるテーブルのデータを組み合わせて表示できます。

SQLのJOIN句を使うことで、結合を実現します。最も一般的なのは内部結合(INNER JOIN)です。

例:

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

このクエリは、EmployeesテーブルとDepartmentsテーブルをDepartmentIDで結合し、従業員の名前と部署名を表示します。

ビュー表とは

ビュー表は、既存のテーブルから作成される仮想的なテーブルです。

物理的にデータを保持していませんが、SQLで定義されたクエリを通じてデータを参照します。

ビューを使うことで、複雑なクエリを簡潔に扱え、アクセス権を制御することもできます。

ビューの定義例:

CREATE VIEW ActiveEmployees AS
SELECT Name, Department FROM Employees WHERE Status = 'Active';

このビューは、Activeステータスの従業員の名前と部署を簡単に参照できるようにします。


SQL (Structured Query Language)

SQLは、データベースの管理と操作を行うための標準的な言語です。

SQLの構成要素は大きく分けて、データベース構造を定義するDDL(Data Definition Language)、データ操作を行うDML(Data Manipulation Language)、およびその他の補助的な部分から成り立っています。

SQLの言語構成

DDL (Data Definition Language)

DDLは、データベースの構造を定義するためのコマンドセットです。主な操作は次のとおりです:

  • CREATE: 新しいデータベースやテーブルの作成
  • ALTER: 既存のテーブル構造の変更
  • DROP: データベースやテーブルの削除

例:

CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100),
Age INT,
DepartmentID INT
);

このクエリは、従業員の情報を保存するためのEmployeesテーブルを作成します。

DML (Data Manipulation Language)

DMLは、データを操作するためのコマンドを提供します。

代表的な操作にはSELECTINSERTUPDATEDELETEがあります。

SELECT文

SELECT文は、データを取得するための最も基本的なSQL文です。

例:

sqlコードをコピーするSELECT * FROM Employees;

このクエリは、Employeesテーブルの全てのデータを取得します。

UPDATE文

UPDATE文は、既存のデータを更新するために使用します。

例:

sqlコードをコピーするUPDATE Employees SET Age = 35 WHERE EmployeeID = 1;

このクエリは、EmployeeIDが1の従業員の年齢を35歳に更新します。

DELETE文

DELETE文は、不要なデータを削除するために使います。

例:

sqlコードをコピーするDELETE FROM Employees WHERE EmployeeID = 1;

このクエリは、EmployeeIDが1の従業員を削除します。

INSERT文

INSERT文は、新しいデータをテーブルに挿入するために使用します。

例:

INSERT INTO Employees (Name, Age, DepartmentID) VALUES ('John Doe', 30, 2);

このクエリは、従業員John DoeEmployeesテーブルに追加します。

DMLのまとめ
操作内容例文
SELECTデータを取得するSELECT * FROM Employees;
INSERT新しいデータを追加するINSERT INTO Employees (Name, Age) VALUES ('A', 30);
UPDATE既存のデータを更新するUPDATE Employees SET Age = 40 WHERE EmployeeID = 1;
DELETEデータを削除するDELETE FROM Employees WHERE EmployeeID = 2;
DMLのまとめ

SELECT文の具体的な使い方

SELECT文は、SQLの中でも最も使用頻度が高い文です。

次に、SELECT文を使ってデータを操作する方法について詳しく解説します。

行の選択

特定の列やすべての列を選択する基本的な方法は次の通りです。

例:

SELECT Name, Age FROM Employees;

条件を指定した行の選択

WHERE句を使用して、特定の条件に基づいて行を選択します。比較演算子を使用して条件を指定します。

使用可能な比較演算子:

  • = (等しい)
  • != または <> (等しくない)
  • <><=>= (大小比較)

例:

SELECT Name FROM Employees WHERE Age >= 30;

このクエリは、30歳以上の従業員の名前を取得します。

表の結合

複数のテーブルを結合してデータを取り出すこともできます。代表的な結合は、前述の内部結合です。

例:

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

並び替え(ORDER BY)

データを昇順(ASC)または降順(DESC)に並べ替えることができます。デフォルトは昇順です。

例:

sqlコードをコピーするSELECT Name, Age FROM Employees ORDER BY Age DESC;

このクエリは、従業員を年齢の降順で並べ替えます。

グループ化と集合関数

GROUP BYを使用して、データを特定の条件でグループ化し、そのグループに対して集合関数を適用します。

代表的な集合関数:

  • SUM: 合計
  • AVG: 平均
  • MAX: 最大値
  • MIN: 最小値
  • COUNT: 行数

例:

SELECT DepartmentID, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY DepartmentID;

このクエリは、各部署ごとの従業員数を表示します。

グループ化された行の選択(HAVING)

HAVING句は、グループ化後の結果に条件を付けて絞り込みます。

WHEREはグループ化の前に使用され、HAVINGはグループ化の後に使用されます。

例:

SELECT DepartmentID, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY DepartmentID
HAVING COUNT(*) > 5;

このクエリは、従業員数が5人以上いる部署のみを表示します。

SQLの実行手順

SQLのクエリは次の順序で実行されます。

  1. FROM – どのテーブルからデータを取得するか
  2. WHERE – データを絞り込む条件
  3. GROUP BY – データをグループ化
  4. HAVING – グループ化後のデータをさらに絞り込む
  5. SELECT – 最終的にどの列を取得するか
  6. ORDER BY – データの並び替え

まとめ

この記事では、関係演算の基本概念からSQLの詳細な操作方法までを解説しました。

関係演算は、データの選択や射影、結合といった操作を行うための理論的な基礎を提供し、SQLはその実行を担います。

SQLをマスターすることで、データベースを効果的に管理し、必要な情報を簡単に引き出すことが可能になります。

データベースの操作において、SQLの使い方を理解し、関係演算を活用することで、データの取り扱いがより効率的になるでしょう。

コメント