はじめに
このプロジェクトでは、社員データベースの社員テーブル(emp)に対して包括的な DML(データ操作言語)操作を行う方法を学びます。新しいレコードの挿入、既存のレコードの更新、およびテーブルからのレコードの削除方法を学びます。
👀 プレビュー

🎯 タスク
このプロジェクトでは、以下を学びます。
sudoコマンドを使ってパスワードなしで MySQL にアクセスする方法- SQL ファイルからのデータを MySQL データベースにインポートする方法
- 単一の SQL ステートメントを使って
empテーブルに新しいレコードを挿入する方法 empテーブルの社員の上司を更新する方法comm値が NULL のempテーブルのすべてのレコードを更新してcommを 0 に設定する方法empテーブルから社員番号が最も高いレコードを削除する方法empテーブルの特定のマネージャに直接報告するすべての社員を削除する方法
🏆 成果
このプロジェクトを完了すると、以下ができるようになります。
- MySQL データベーステーブルに対して包括的な DML 操作を行う
- SQL ステートメントを使ってデータを挿入、更新、削除する方法を理解する
- 関係型データベースでのデータの管理と操作に関する経験を得る
- プロジェクト内のさまざまなタスクを完了することで問題解決能力を向上させる
MySQL にアクセスしてデータをインポートする
このステップでは、パスワードなしで sudo コマンドを使って MySQL にアクセスし、/home/labex/project/personnel.sql のデータを personnel データベースにインポートする方法を学びます。
- MySQL サービスを起動する:
sudo service mysql start
sudoコマンドを使って MySQL にアクセスする:
sudo mysql
/home/labex/project/personnel.sqlのデータをpersonnelデータベースにインポートする:
SOURCE /home/labex/project/personnel.sql;
personnelデータベースに切り替える:
USE personnel;
新しいレコードを挿入する
このステップでは、単一の SQL ステートメントを使って emp テーブルに 2 つの新しいレコードを追加する方法を学びます。
emp テーブルに以下の 2 つのレコードを追加します。
INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (9878, 'JOHN', 'CLERK', 7499, '2022-01-05', 1800, 0, 10),
(8868, 'JANE', 'CLERK', 7566, '2022-02-12', 2500, NULL, 20);
社員の上司を更新する
このステップでは、emp テーブルの社員 SCOTT の直属の上司を社員 BLAKE の直属の上司に変更する方法を学びます。
UPDATE emp
SET mgr = (SELECT mgr
FROM emp
WHERE ename = 'BLAKE')
WHERE ename = 'SCOTT';
NULL の手当金額を更新する
このステップでは、comm 値が NULL である emp テーブルのすべてのエントリを更新して、comm を 0 に設定する方法を学びます。
UPDATE emp
SET comm = 0
WHERE comm IS NULL;
最も大きな社員番号を削除する
このステップでは、emp テーブルから最も大きな社員番号のエントリを削除する方法を学びます。
DELETE FROM emp
WHERE empno = (SELECT MAX(empno) FROM emp);
ブレイクに報告する社員を削除する
このステップでは、emp テーブルで BLAKE に直接報告するすべての社員を削除する方法を学びます。
DELETE FROM emp
WHERE mgr = (SELECT empno FROM emp WHERE ename = 'BLAKE');
上記の手順の後、以下の結果を参照して検証できます。
MariaDB [personnel]> select * from emp;
+-------+--------+-----------+------+------------+---------+------+--------+
| empno | ename | job | mgr | hiredate | sal | comm | deptno |
+-------+--------+-----------+------+------------+---------+------+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | 0.00 | 20 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | 0.00 | 20 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | 0.00 | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | 0.00 | 10 |
| 7788 | SCOTT | ANALYST | 7839 | 1987-06-13 | 3000.00 | 0.00 | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | 0.00 | 10 |
| 7876 | ADAMS | CLERK | 7788 | 1987-06-13 | 1100.00 | 0.00 | 20 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | 0.00 | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | 0.00 | 10 |
| 8868 | JANE | CLERK | 7566 | 2022-02-12 | 2500.00 | 0.00 | 20 |
+-------+--------+-----------+------+------------+---------+------+--------+
10 rows in set (0.000 sec)
まとめ
おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabEx でさらに多くの実験を行って練習してください。



