包括的な MySQL データ操作

MySQLMySQLBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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

👀 プレビュー

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 データベースにインポートする方法を学びます。

  1. MySQL サービスを起動する:
sudo service mysql start
  1. sudo コマンドを使って MySQL にアクセスする:
sudo mysql
  1. /home/labex/project/personnel.sql のデータを personnel データベースにインポートする:
SOURCE /home/labex/project/personnel.sql;
  1. 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);

BLAKE に報告する社員を削除する

このステップでは、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 でさらに多くの実験を行って練習してください。