Введение
В этом проекте вы научитесь создавать хранимую процедуру в 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.
- Запустите службу MySQL:
sudo service mysql start
- Подключитесь к MySQL с использованием команды
sudo:
sudo mysql
- Импортируйте данные из
/home/labex/project/edusys.sqlв MySQL и переключитесь на базу данныхedusys:
MariaDB [None]> SOURCE /home/labex/project/edusys.sql;
Создать хранимую процедуру getCourses
В этом шаге вы создадите хранимую процедуру под названием getCourses, которая извлекает курсы из таблицы course, где значение поля credits больше 3.
- Откройте файл
getCourses.sql. - Добавьте следующий код в файл
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 ;
- Сохраните и закройте файл.
Тестировать хранимую процедуру getCourses
В этом шаге вы протестируете хранимую процедуру getCourses, чтобы убедиться, что она работает как ожидается.
- Запустите скрипт
getCourses.sqlв MySQL:
MariaDB [edusys]> SOURCE /home/labex/project/getCourses.sql;
- Вызовите хранимую процедуру
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, чтобы улучшить свои навыки.
