Анализ данных MySQL

SQLSQLBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь использовать встроенные функции MySQL для извлечения соответствующей информации из таблицы сотрудников (emp) в базе данных по персоналу. Вы будете практиковать написание SQL-запросов для доступа к и манипуляции данными в реляционной базе данных.

👀 Предварительный просмотр

MariaDB [personnel]> SOURCE /home/labex/project/multiple_line_function.sql;
+---------------+------------+------------+-------------+
| department_id | max_salary | min_salary | avg_salary  |
+---------------+------------+------------+-------------+
|            20 |    3000.00 |     800.00 | 2175.000000 |
|            10 |    5000.00 |    1300.00 | 2916.666667 |
+---------------+------------+------------+-------------+
2 rows in set (0.001 sec)

🎯 Задачи

В этом проекте вы научитесь:

  • Как обращаться к MySQL с использованием команды sudo без пароля
  • Как импортировать данные из SQL-файла в базу данных MySQL
  • Как написать SQL-запрос для извлечения номера отдела, максимальной зарплаты, минимальной зарплаты и средней зарплаты для отделов с средней зарплатой 2000 и выше, и отсортировать результаты по убыванию номера отдела

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться, как использовать встроенные функции MySQL для выполнения сложного анализа данных
  • писать SQL-запросы для извлечения и манипуляции данными из реляционной базы данных
  • применять свои знания SQL для решения реальных задач управления данными

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") sql/BasicSQLCommandsGroup -.-> sql/select("SELECT statements") sql/BasicSQLCommandsGroup -.-> sql/insert("INSERT INTO statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") sql/DataManipulationandQueryingGroup -.-> sql/order_by("ORDER BY clause") sql/DataManipulationandQueryingGroup -.-> sql/group_by("GROUP BY clause") sql/DataManipulationandQueryingGroup -.-> sql/having("HAVING clause") subgraph Lab Skills mysql/use_database -.-> lab-301364{{"Анализ данных MySQL"}} sql/select -.-> lab-301364{{"Анализ данных MySQL"}} sql/insert -.-> lab-301364{{"Анализ данных MySQL"}} mysql/select -.-> lab-301364{{"Анализ данных MySQL"}} mysql/source -.-> lab-301364{{"Анализ данных MySQL"}} sql/create_table -.-> lab-301364{{"Анализ данных MySQL"}} sql/order_by -.-> lab-301364{{"Анализ данных MySQL"}} sql/group_by -.-> lab-301364{{"Анализ данных MySQL"}} sql/having -.-> lab-301364{{"Анализ данных MySQL"}} end

Доступ к MySQL и импорт данных

В этом шаге вы научитесь обращаться к MySQL с использованием команды sudo без пароля и импортировать данные из /home/labex/project/personnel.sql в MySQL.

  1. Запустите службу MySQL:
sudo service mysql start
  1. Подключитесь к MySQL с использованием команды sudo:
sudo mysql
  1. Импортируйте данные из /home/labex/project/personnel.sql в MySQL и переключитесь на базу данных personnel:
MariaDB [(none)]> SOURCE /home/labex/project/personnel.sql;

Напишите SQL-запрос

В этом шаге вы научитесь писать SQL-запрос для извлечения соответствующей информации из таблицы emp в базе данных personnel.

  1. Откройте файл multiple_line_function.sql.
  2. Добавьте в файл следующий SQL-запрос:
SELECT deptno AS 'department_id', MAX(sal) AS'max_salary', MIN(sal) AS'min_salary', AVG(sal) AS 'avg_salary'
FROM emp
GROUP BY deptno
HAVING AVG(sal) >= 2000
ORDER BY deptno DESC;

Этот запрос будет извлекать номер отдела, максимальную зарплату, минимальную зарплату и среднюю зарплату для отделов с средней зарплатой 2000 и выше, и сортировать результаты по убыванию номера отдела.

Запустите SQL-запрос

В этом шаге вы научитесь запускать SQL-запрос, который вы написали на предыдущем шаге.

  1. Откройте MySQL-промпт:
MariaDB [personnel]> SOURCE /home/labex/project/multiple_line_function.sql;

Это выполнит SQL-запрос и покажет результаты в MySQL-пrompt.

Вывод должен выглядеть примерно так:

+---------------+------------+------------+-------------+
| department_id | max_salary | min_salary | avg_salary  |
+---------------+------------+------------+-------------+
|            20 |    3000.00 |     800.00 | 2175.000000 |
|            10 |    5000.00 |    1300.00 | 2916.666667 |
+---------------+------------+------------+-------------+
2 rows in set (0.001 sec)

Поздравляем! Вы успешно завершили проект.

✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.