Создание хранимых процедур для извлечения данных о курсах

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

Введение

В этом проекте вы научитесь создавать хранимую процедуру в MySQL для извлечения курсов с количеством кредитов более 3. Этот проект поможет вам понять основы работы с хранимыми процедурами в системе управления базами данных.

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

MariaDB [edusys]> CALL getCourses();
+-----------+----------------------------+------------+---------+
| course_id | title                      | dept_name  | credits |
+-----------+----------------------------+------------+---------+
| BIO-101   | Введение в биологию        | Biology    |       4 |
| BIO-301   | Генетика                    | Biology    |       4 |
| CS-101    | Введение в информатику     | Comp. Sci. |       4 |
| CS-190    | Игровой дизайн              | Comp. Sci. |       4 |
| PHY-101   | Физические принципы        | Physics    |       4 |
+-----------+----------------------------+------------+---------+
5 rows in set (0.000 sec)

🎯 Задачи

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

  • Как обращаться к MySQL с использованием команды sudo без пароля
  • Как импортировать данные в базу данных MySQL
  • Как создать хранимую процедуру для извлечения конкретных данных из таблицы
  • Как протестировать хранимую процедуру, чтобы убедиться, что она работает как ожидается

🏆 Достижения

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

  • Разобраться в назначении и преимуществах использования хранимых процедур в базе данных
  • Создать собственные хранимые процедуры для выполнения конкретных задач по извлечению данных
  • Отлаживать и тестировать хранимые процедуры, чтобы убедиться, что они функционируют правильно
  • Применить полученные знания из этого проекта для создания более сложных приложений, управляемых базой данных

Подключиться к MySQL и импортировать базу данных

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

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

Создать хранимую процедуру getCourses

В этом шаге вы создадите хранимую процедуру под названием getCourses, которая извлекает курсы из таблицы course, где значение поля credits больше 3.

  1. Откройте файл getCourses.sql.
  2. Добавьте следующий код в файл getCourses.sql:
-- Создание хранимой процедуры getCourses
DELIMITER //

CREATE PROCEDURE getCourses()
BEGIN
-- Извлечение курсов из таблицы course, где поле credits больше 3
SELECT course_id, title, dept_name, credits
FROM course
WHERE credits > 3;
END //

DELIMITER ;
  1. Сохраните и закройте файл.

Тестировать хранимую процедуру getCourses

В этом шаге вы протестируете хранимую процедуру getCourses, чтобы убедиться, что она работает как ожидается.

  1. Запустите скрипт getCourses.sql в MySQL:
MariaDB [edusys]> SOURCE /home/labex/project/getCourses.sql;
  1. Вызовите хранимую процедуру getCourses:
MariaDB [edusys]> CALL getCourses();
+-----------+----------------------------+------------+---------+
| course_id | title                      | dept_name  | credits |
+-----------+----------------------------+------------+---------+
| BIO-101   | Введение в биологию        | Biology    |       4 |
| BIO-301   | Генетика                    | Biology    |       4 |
| CS-101    | Введение в информатику     | Comp. Sci. |       4 |
| CS-190    | Игровой дизайн              | Comp. Sci. |       4 |
| PHY-101   | Физические принципы        | Physics    |       4 |
+-----------+----------------------------+------------+---------+
5 rows in set (0.000 sec)

Вывод показывает, что хранимая процедура getCourses работает как ожидается, извлекая все курсы с количеством кредитов более 3.

Резюме

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

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