通用功能综合

MySQLMySQLBeginner
立即练习

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

简介

在本项目中,你将学习如何访问 MySQL、导入数据以及使用 MySQL 内置函数查询员工信息。

👀 预览

MariaDB [personnel]> SOURCE /home/labex/project/answer.sql;
+------------------------------------------+---------------+----------------+
| 姓名                                     | 年收入        | 当前用户       |
+------------------------------------------+---------------+----------------+
| bc70be7f38046e64dd779f276ce4a20f99153f26 | 800000.000    | root@localhost |
| 6e1cae96112fe249dc0fb4f9a004c9dc04315608 | 1900000.000   | root@localhost |
| 7c7f32425fa076caeed971f5549c82ffa88fd0eb | 1750000.000   | root@localhost |
| a1787353201302d65c744486c1e940709fee0eff | 2975000.000   | root@localhost |
| f3b9b87a2f377c006e935f32dd25ea55ebf7f551 | 2650000.000   | root@localhost |
| 7cde55b3a6e9cf610db200b6b9cc9b5adca1657f | 2850000.000   | root@localhost |
| 4f90e103facadd0787d7a6828f096f6e66595a47 | 2450000.000   | root@localhost |
| 7634fdc80aa4027cfd5e966abc1b6b4b4ea19fbe | 3000000.000   | root@localhost |
| 50b8a339f82ab9ce6c55bf8ea10dad8513e9d142 | 5000000.000   | root@localhost |
| e043e3d3ebddafaa5ed97f7dcc4d236286f8ad4a | 1500000.000   | root@localhost |
| 2d2eb27e1db8836e44cd4e94f58b89728331e8de | 1100000.000   | root@localhost |
| 6afc44af3cbdbb6718e8da8715a1956b895dc5d2 | 950000.000    | root@localhost |
| 7e5b07d8bbb5e0a55b5d428476d4691b3ee97b4a | 3000000.000   | root@localhost |
| 25d5ae3b0e0dac511ba94e337b88e0887538b31f | 1300000.000   | root@localhost |
+------------------------------------------+---------------+----------------+
14 rows in set (0.000 sec)

🎯 任务

在本项目中,你将学习:

  • 如何使用 sudo 命令无密码访问 MySQL
  • 如何将 SQL 文件中的数据导入 MySQL 数据库
  • 如何从 emp 表中查询员工的姓名和年收入
  • 如何使用 SHA 函数对员工姓名进行加密
  • 如何将年收入格式化为保留三位小数
  • 如何显示当前数据库账户信息

🏆 成果

完成本项目后,你将能够:

  • 自信地使用命令行访问和管理 MySQL 数据库
  • 执行数据导入和基本数据查询操作
  • 应用 MySQL 内置函数来操作和格式化数据
  • 理解数据安全和加密的重要性
  • 展示你使用 MySQL 数据库和 SQL 查询的能力

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") subgraph Lab Skills mysql/use_database -.-> lab-301342{{"通用功能综合"}} mysql/select -.-> lab-301342{{"通用功能综合"}} mysql/source -.-> lab-301342{{"通用功能综合"}} mysql/database -.-> lab-301342{{"通用功能综合"}} end

访问 MySQL 并导入数据

在本步骤中,你将学习如何使用 sudo 命令无密码访问 MySQL,并将 /home/labex/project/personnel.sql 中的数据导入 MySQL 并切换到 personnel 数据库。

  1. 打开终端并使用以下命令启动 MySQL 服务:
sudo service mysql start
  1. 使用 sudo 命令访问 MySQL:
sudo mysql
  1. /home/labex/project/personnel.sql 中的数据导入 MySQL 并切换到 personnel 数据库:
MariaDB [None]> SOURCE /home/labex/project/personnel.sql;

查询员工姓名和年收入

在本步骤中,你将学习如何查询 emp 表中所有员工的姓名和年收入,并显示当前操作的数据库账户信息。

  1. 将以下代码添加到 answer.sql 文件中。
SELECT SHA(emp.ename) AS '姓名',
       FORMAT(IFNULL(emp.sal, 0) + IFNULL(emp.comm, 0), 3) AS '年收入',
       CURRENT_USER() AS '当前用户'
FROM emp;

代码功能如下:

  • SHA(emp.ename):使用 SHA 函数对员工姓名进行加密。
  • IFNULL(emp.sal, 0) + IFNULL(emp.comm, 0):通过将薪资(sal)和奖金(comm)列相加来计算年收入,并将任何 NULL 值替换为 0。
  • FORMAT(..., 3):将年收入格式化为保留三位小数。
  • CURRENT_USER():显示当前数据库账户信息。
  1. 执行 answer.sql 文件。
SOURCE /home/labex/project/answer.sql;

查询将返回以下输出:

+------------------------------------------+---------------+----------------+
| 姓名                                     | 年收入        | 当前用户       |
+------------------------------------------+---------------+----------------+
| bc70be7f38046e64dd779f276ce4a20f99153f26 | 800.000       | root@localhost |
| 6e1cae96112fe249dc0fb4f9a004c9dc04315608 | 1,900.000     | root@localhost |
| 7c7f32425fa076caeed971f5549c82ffa88fd0eb | 1,750.000     | root@localhost |
| a1787353201302d65c744486c1e940709fee0eff | 2,975.000     | root@localhost |
| f3b9b87a2f377c006e935f32dd25ea55ebf7f551 | 2,650.000     | root@localhost |
| 7cde55b3a6e9cf610db200b6b9cc9b5adca1657f | 2,850.000     | root@localhost |
| 4f90e103facadd0787d7a6828f096f6e66595a47 | 2,450.000     | root@localhost |
| 7634fdc80aa4027cfd5e966abc1b6b4b4ea19fbe | 3,000.000     | root@localhost |
| 50b8a339f82ab9ce6c55bf8ea10dad8513e9d142 | 5,000.000     | root@localhost |
| e043e3d3ebddafaa5ed97f7dcc4d236286f8ad4a | 1,500.000     | root@localhost |
| 2d2eb27e1db8836e44cd4e94f58b89728331e8de | 1,100.000     | root@localhost |
| 6afc44af3cbdbb6718e8da8715a1956b895dc5d2 | 950.000       | root@localhost |
| 7e5b07d8bbb5e0a55b5d428476d4691b3ee97b4a | 3,000.000     | root@localhost |
| 25d5ae3b0e0dac511ba94e337b88e0887538b31f | 1,300.000     | root@localhost |
+------------------------------------------+---------------+----------------+
14 行记录(0.000 秒)

该查询已保存在文件 /home/labex/project/answer.sql 中。

✨ 查看解决方案并练习

总结

恭喜你!你已完成本项目。你可以在 LabEx 中练习更多实验以提升技能。