MySQL 数据操作综合指南

MySQLMySQLBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本项目中,你将学习如何对员工数据库中的员工表(emp)执行全面的数据操作语言(DML)操作。你将学习如何插入新记录、更新现有记录以及从表中删除记录。

👀 预览

DML操作预览

🎯 任务

在本项目中,你将学习:

  • 如何使用sudo命令无密码访问MySQL
  • 如何将SQL文件中的数据导入MySQL数据库
  • 如何使用单个SQL语句向emp表中插入新记录
  • 如何更新emp表中员工的主管
  • 如何将emp表中所有comm值为NULL的记录更新为将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表中添加两条新记录。

emp表中添加以下两条记录:

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';

更新空佣金值

在这一步中,你将学习如何把emp表中所有comm值为NULL的记录更新为将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 中练习更多实验来提升你的技能。