Извлечение данных из базы данных с использованием курсора хранимой процедуры

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

Введение

В этом проекте вы научитесь использовать курсор для вывода информации о курсах из таблицы section, где семестр - весна. Вы создадите хранимую процедуру для извлечения деталей о курсах и затем выполните процедуру для отображения результатов.

🎯 Задачи

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

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

🏆 Достижения

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

  • Разобраться, как использовать курсор для извлечения данных из базы данных
  • Создать хранимую процедуру для encapsulation операций с базой данных
  • Выполнить хранимую процедуру для отображения нужных данных

Запустить MySQL и импортировать базу данных

В этом шаге вы научитесь запускать сервер MySQL и импортировать базу данных edusys.sql в MySQL.

  1. Запустите сервер MySQL:

    sudo /etc/init.d/mysql start
    
  2. Войдите в терминал MySQL:

    mysql -uroot
    
  3. Импортируйте базу данных edusys.sql:

    SOURCE ~/project/edusys.sql
    

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

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

  1. Создайте новый файл с именем getSection.sql в директории /home/labex/project.

  2. В файле getSection.sql определите разделитель как //:

    DELIMITER //
    
  3. Создайте хранимую процедуру getSectionProcude():

    CREATE PROCEDURE getSectionProcude()
    BEGIN
        SELECT course_id, year, room_number
        FROM section
        WHERE semester = 'Spring';
    END //
    
  4. Сбросьте разделитель обратно к значению по умолчанию:

    DELIMITER ;
    

Выполнить хранимую процедуру

В этом шаге вы научитесь выполнять хранимую процедуру getSectionProcude() для извлечения информации о курсах.

  1. В提示符 MySQL выполните следующую команду для выполнения скрипта subquery.sql:

    SOURCE ~/project/getSection.sql
    
  2. Выполните хранимую процедуру:

    CALL getSectionProcude();
    

    Это выведет информацию о курсах, где семестр - весна.

    MariaDB [edusys]> CALL getSectionProcude();
    +-----------+------+-------------+
    | course_id | year | room_number |
    +-----------+------+-------------+
    | CS-101    | 2018 | 101         |
    | FIN-201   | 2018 | 101         |
    | MU-199    | 2018 | 101         |
    | HIS-351   | 2018 | 514         |
    | CS-190    | 2017 | 3128        |
    | CS-190    | 2017 | 3128        |
    | CS-319    | 2018 | 3128        |
    | EE-181    | 2017 | 3128        |
    | CS-319    | 2018 | 100         |
    | CS-315    | 2018 | 120         |
    +-----------+------+-------------+
    10 rows in set (0.001 sec)
    

Резюме

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

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