バックエンドシステムは、永続的にデータを保存・管理するためにデータベース(DB)を利用します。その中でも最も広く利用されているのが**リレーショナルデータベース(RDB)です。RDBの概念と、データを操作するための言語であるSQL(Structured Query Language)**の基本操作を習得します。
1. RDBの基本概念
RDB(Relational Database) / 説明: データを行と列を持つ**テーブル(表)**の形で管理し、テーブル間の関連付け(リレーション)によってデータを整理するデータベースの形式です。
テーブル(Table) / 説明: 実際データを格納する場所です。Excelのシートのようなもので、顧客情報や商品情報などを保持します。
行(Row / Record) / 説明: テーブルにおけるデータの一つのまとまり(レコード)です。例えば、一人の顧客に関する全ての情報が一つの行となります。
列(Column / Field) / 説明: テーブルにおけるデータの属性(フィールド)です。例えば、顧客ID、氏名、メールアドレスなどが列となります。
主キー(Primary Key: PK) / 説明: テーブルの各行を一意に識別するための列です。必ずデータが存在し(NULL不可)、重複が許されません。
外部キー(Foreign Key: FK) / 説明: 別のテーブルの主キーを参照するための列です。これにより、テーブル間に**関連(リレーション)**を設定し、データの一貫性を保ちます。
2. SQLの基本操作:データの参照(SELECT)
SELECT 文は、データベースから特定の条件に一致するデータを取得(参照)するために使用されます。
全列の取得 / 構造:
SELECT * FROM テーブル名;/ 説明: 指定したテーブルのすべての列のデータを取得します。特定列の取得 / 構造:
SELECT 列1, 列2 FROM テーブル名;/ 説明: 必要な列だけを指定してデータを取得します。条件による絞り込み / 構造:
WHERE 条件/ 使用例:SELECT * FROM users WHERE age > 20;/ 説明:WHERE句を使用して、特定の条件(例: 年齢が20歳以上)に一致する行のみを絞り込みます。データの並べ替え / 構造:
ORDER BY 列名 ASC/DESC/ 使用例:SELECT * FROM products ORDER BY price DESC;/ 説明:ORDER BY句を使用して、指定した列を基準に昇順 (ASC) または 降順 (DESC) でデータを並べ替えます。
3. SQLの基本操作:データの操作(DML: Data Manipulation Language)
DMLは、データベース内のデータを追加、変更、削除するために使用される言語です。
INSERT(データの追加)
データの追加 / 構造:
INSERT INTO テーブル名 (列1, 列2) VALUES (値1, 値2);/ 説明: 指定したテーブルに新しい行(レコード)を追加します。列の数と値の数が一致している必要があります。
UPDATE(データの更新)
データの更新 / 構造:
UPDATE テーブル名 SET 列1 = 新しい値 WHERE 条件;/ 使用例:UPDATE users SET email = 'new@example.com' WHERE user_id = 1;/ 説明:WHERE句で指定した条件に一致する行のデータを更新します。WHERE句を忘れると、テーブルの全データが更新されるため注意が必要です。
DELETE(データの削除)
データの削除 / 構造:
DELETE FROM テーブル名 WHERE 条件;/ 使用例:DELETE FROM products WHERE stock = 0;/ 説明:WHERE句で指定した条件に一致する行を削除します。WHERE句を忘れると、テーブルの全データが削除されるため注意が必要です。
⭐ 演習課題
以下の操作をSQL文で記述してみましょう。(テーブル名: employees、列: id, name, department, salary と仮定)
employeesテーブルから、sales部門に所属する従業員全員の名前と給与を取得するSQL文を記述してください。employeesテーブルに、idが5、nameが'Tanaka'、departmentが'development'、salaryが6000000の新しい従業員を追加するSQL文を記述してください。idが1の従業員の**salaryを7000000**に更新するSQL文を記述してください。departmentが**hrの従業員を全員削除**するSQL文を記述してください。