はじめに
このプロジェクトでは、MySQL を使って人事管理システムのデータベースを作成する方法を学びます。このデータベースには、社員、所属部署、住居情報などが格納されます。
👀 プレビュー
MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | NO | PRI | NULL | |
| city | varchar(10) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)
🎯 タスク
このプロジェクトでは、以下のことを学びます。
sudoコマンドを使って MySQL にアクセスする方法companySysという名前のデータベースを作成する方法company、work、employの 3 つのテーブルを作成する方法- 各テーブルに適切な主キーと外部キー制約を設定する方法
- テーブルにデータを挿入する方法
🏆 成果
このプロジェクトを完了すると、以下のことができるようになります。
- データベースの作成と管理の基本を理解する
- 関係型データベースで CRUD(作成、読み取り、更新、削除)操作を実行する
- 主キーと外部キーを使ってテーブル間の関係を確立する
- 人事管理システムのデータベース内のデータを管理および操作する
MySQL にアクセスしてデータベースを作成する
このステップでは、sudo コマンドを使って MySQL にアクセスし、companySys データベースを作成する方法を学びます。
- ターミナルを開き、次のコマンドを実行して MySQL サービスを起動します。
sudo service mysql start
sudoコマンドを使って MySQL にアクセスします。
sudo mysql
creatComDatabase.sqlファイルを開きます。creatComDatabase.sqlファイルで、UTF-8 文字セットでcompanySysデータベースを作成します。
CREATE DATABASE IF NOT EXISTS companySys DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
companySysデータベースを使用します。
USE companySys;
テーブルを作成する
このステップでは、company、work、employ の 3 つのテーブルを作成します。
creatComDatabase.sqlファイルを開き、そのファイル内に以下のテーブルを順に作成します。companyテーブルを作成する:
CREATE TABLE IF NOT EXISTS company (
company_name varchar(50) NOT NULL,
city varchar(10),
PRIMARY KEY (company_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
workテーブルを作成する:
CREATE TABLE IF NOT EXISTS work (
per_name varchar(10) NOT NULL,
company_name varchar(50),
salary decimal(10,2),
PRIMARY KEY (per_name),
FOREIGN KEY (company_name) REFERENCES company(company_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
employテーブルを作成する:
CREATE TABLE IF NOT EXISTS employ (
id int NOT NULL,
person_name varchar(10),
street varchar(100),
city varchar(10),
PRIMARY KEY (id),
FOREIGN KEY (person_name) REFERENCES work(per_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
データを挿入する
このステップでは、3 つのテーブルにデータを挿入します。
creatComDatabase.sqlファイルを開き、前のステップから続けて以下の sql 文を追加します。companyテーブルにデータを挿入する:
INSERT INTO company (company_name, city) VALUES
('ABC Company', 'New York'),
('LabEx', 'London'),
('Company 3', 'Paris');
workテーブルにデータを挿入する:
INSERT INTO work (per_name, company_name, salary) VALUES
('John', 'ABC Company', 5000.00),
('Jane', 'LabEx', 6000.00),
('Mary', 'Company 3', 5500.00);
employテーブルにデータを挿入する:
INSERT INTO employ (id, person_name, street, city) VALUES
(1, 'John', '123 Main Street', 'New York'),
(2, 'Jane', '456 Park Avenue', 'London'),
(3, 'Mary', '789 Broadway', 'Paris');
データベースを検証する
このステップでは、テーブルを記述することでデータベースを検証します。
- MySQL クライアントで、次のコマンドを実行して SQL スクリプトを実行します。
MariaDB [(none)]> SOURCE /home/labex/project/creatComDatabase.sql;
companyテーブルを記述する:
DESC company;
MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | NO | PRI | NULL | |
| city | varchar(10) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)
employテーブルを記述する:
DESC employ;
MariaDB [companySys]> DESC employ;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| person_name | varchar(10) | YES | MUL | NULL | |
| street | varchar(100) | YES | | NULL | |
| city | varchar(10) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0.001 sec)
workテーブルを記述する:
DESC work;
MariaDB [companySys]> DESC work;
+--------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| per_name | varchar(10) | NO | PRI | NULL | |
| company_name | varchar(50) | YES | MUL | NULL | |
| salary | decimal(10,2) | YES | | NULL | |
+--------------+---------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
これで、人事管理システムのデータベースを正常に作成し、データを挿入することができました。おめでとうございます!
まとめ
おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabEx でさらに多くの実験を行って練習してください。
