🔰

データベース基礎とSQL入門学んで基礎固め

2024/08/21に公開

個人的理解を深めるために、データベースの基本からSQLの基礎までを紹介します。

データベースの基礎

データベースとは

データベース(DB)は、情報を効率的に管理・検索・更新するためのシステムです。
データベースは、データの保存とアクセスを効率化します。

リレーショナルデータベースの概念

リレーショナルデータベースは、データをテーブル形式で管理し、テーブル間の関係を定義します。
以下は基本的な用語です。

用語 説明
テーブル データを行と列で整理する構造。(例: 顧客テーブル、注文テーブル)
行(レコード) テーブル内の1つのデータエントリ。(例: 1人の顧客の情報)
列(フィールド) テーブル内のデータの属性。(例: 顧客名、住所)
主キー(PK) 各行を一意に識別するための列。(例: 顧客ID)
外部キー(FK) 他のテーブルの主キーを参照する列。テーブル間の関係を構築

SQLの基礎

SQLとは

SQL(Structured Query Language)は、データベースの操作や管理を行うための言語です。
SQLを使用すると、データの検索、挿入、更新、削除が簡単に行えます。

基本的なSQLクエリ

以下は、SQLの基本的なクエリの例です。

クエリタイプ 説明
SELECT データを検索する。
INSERT 新しいデータを追加する。
UPDATE 既存のデータを更新する。
DELETE データを削除する。

それぞれのSQLクエリを使用した場合のテーブルの変化を、具体的な例をもとに説明します。

1. SELECT

データを検索するためのクエリです。

基本形:

SELECT カラム名1, カラム名2, ... 
FROM テーブル名
WHERE カラム = 'データ名';

以下の例では、employees テーブルから namedepartment のデータを、Sales 部署に所属する従業員のみを対象に取得します。

クエリ:

SELECT name, department
FROM employees
WHERE department = 'Sales';

実行前のテーブル (employees):

id name department salary
1 Alice Sales 5000
2 Bob HR 4000
3 Carol Sales 5500
4 Dave IT 6000

実行結果:

name department
Alice Sales
Carol Sales

2. INSERT

新しいデータをテーブルに追加します。

基本形:

INSERT INTO テーブル名 (カラム名1, カラム名2, ...)
VALUES (1,2, ...);

以下の例では、employees テーブルに name, department, salary に対応する値 Eve, Marketing, 4500 を挿入します。

クエリ:

INSERT INTO employees (name, department, salary)
VALUES ('Eve', 'Marketing', 4500);

実行前のテーブル (employees):

id name department salary
1 Alice Sales 5000
2 Bob HR 4000
3 Carol Sales 5500
4 Dave IT 6000

実行後のテーブル (employees):

id name department salary
1 Alice Sales 5000
2 Bob HR 4000
3 Carol Sales 5500
4 Dave IT 6000
5 Eve Marketing 4500

3. UPDATE

既存のデータを更新します。

基本形:

UPDATE テーブル名
SET カラム名1 = 新しい値1, カラム名2 = 新しい値2, ...
WHERE 条件;

以下の例では、employees テーブルの salary5200 に更新します。
ただし、条件に一致する行 (nameAlice である行) にのみ適用されます。

クエリ:

UPDATE employees
SET salary = 5200
WHERE name = 'Alice';

実行前のテーブル (employees):

id name department salary
1 Alice Sales 5000
2 Bob HR 4000
3 Carol Sales 5500
4 Dave IT 6000
5 Eve Marketing 4500

実行後のテーブル (employees):

id name department salary
1 Alice Sales 5200
2 Bob HR 4000
3 Carol Sales 5500
4 Dave IT 6000
5 Eve Marketing 4500

4. DELETE

テーブルからデータを削除します。

決定:

DELETE FROM テーブル名
WHERE 条件;

以下の例では、employees テーブルから条件に一致する行 (nameDave である行) を削除します。

クエリ:

DELETE FROM employees
WHERE name = 'Dave';

実行前のテーブル (employees):

id name department salary
1 Alice Sales 5200
2 Bob HR 4000
3 Carol Sales 5500
4 Dave IT 6000
5 Eve Marketing 4500

その他SQLクエリ

基本的なSQLクエリ以外に、WHERE, ORDER BY, GROUP BY についても説明します。

クエリタイプ 説明
WHERE 特定の条件に基づいてデータをフィルタリングする。
ORDER BY 検索結果を特定の順序で並べ替える。
GROUP BY データをグループ化し、集計関数を適用する。

以下のテーブルを元に考えていきます。

実行後のテーブル (employees):

id name department salary
1 Alice Sales 5200
2 Bob HR 4000
3 Carol Sales 5500
5 Eve Marketing 4500

1. 条件指定(WHERE句)

WHERE句を使用して、特定の条件に基づいてデータを検索します。
以下の例では、employees テーブルから id2 の従業員データを取得します。

クエリ:

SELECT * FROM employees
WHERE id = 2;

実行結果:

id name department salary
2 Bob HR 4000

2. ソート(ORDER BY句)

ORDER BY句を使用して、結果を特定の順序で並べ替えます。
以下の例では、employees テーブルから従業員のデータを salary で昇順に並べ替えます。

クエリ:

SELECT * FROM employees
ORDER BY salary ASC;

実行結果:

id name department salary
2 Bob HR 4000
5 Eve Marketing 4500
1 Alice Sales 5200
3 Carol Sales 5500

3. グルーピング(GROUP BY句)

GROUP BY句を使用して、データをグループ化し、集計関数を適用します。
以下の例では、employees テーブルの各部門 (department) ごとに平均給与 (AVG(salary)) を計算します。

クエリ:

SELECT department, AVG(salary)
FROM employees
GROUP BY department;

実行結果:

department AVG(salary)
Sales 5350
HR 4000
Marketing 4500

Discussion