Erstellen von gespeicherten Prozeduren für die Abfrage von Kursdaten

SQLSQLBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du in MySQL einen gespeicherten Prozedur erstellen, um Kurse mit einem Creditwert von mehr als 3 abzurufen. Dieses Projekt hilft dir, die Grundlagen des Umgangs mit gespeicherten Prozeduren in einem Datenbankmanagementsystem zu verstehen.

👀 Vorschau

MariaDB [edusys]> CALL getCourses();
+-----------+----------------------------+------------+---------+
| course_id | title                      | dept_name  | credits |
+-----------+----------------------------+------------+---------+
| BIO-101   | Intro. to Biology          | Biology    |       4 |
| BIO-301   | Genetics                   | Biology    |       4 |
| CS-101    | Intro. to Computer Science | Comp. Sci. |       4 |
| CS-190    | Game Design                | Comp. Sci. |       4 |
| PHY-101   | Physical Principles        | Physics    |       4 |
+-----------+----------------------------+------------+---------+
5 rows in set (0.000 sec)

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du MySQL mit dem sudo-Befehl ohne Passwort zugreifst
  • Wie du Daten in die MySQL-Datenbank importierst
  • Wie du eine gespeicherte Prozedur erstellst, um bestimmte Daten aus einer Tabelle abzurufen
  • Wie du die gespeicherte Prozedur testest, um sicherzustellen, dass sie wie erwartet funktioniert

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Den Zweck und die Vorteile der Verwendung von gespeicherten Prozeduren in einer Datenbank zu verstehen
  • Eigene gespeicherte Prozeduren zu erstellen, um spezifische Datenabruftasks durchzuführen
  • Gespeicherte Prozeduren zu debuggen und zu testen, um sicherzustellen, dass sie korrekt funktionieren
  • Die im Rahmen dieses Projekts erworbenen Kenntnisse anzuwenden, um komplexere datenbankbasierte Anwendungen zu entwickeln

Zugang zu MySQL und Import der Datenbank

In diesem Schritt lernst du, wie du MySQL mit dem sudo-Befehl ohne Passwort zugreifst und die Daten aus /home/labex/project/edusys.sql in MySQL importierst.

  1. Starte den MySQL-Dienst:
sudo service mysql start
  1. Greife auf MySQL mit dem sudo-Befehl zu:
sudo mysql
  1. Importiere die Daten aus /home/labex/project/edusys.sql in MySQL und wechsle zur edusys-Datenbank:
MariaDB [None]> SOURCE /home/labex/project/edusys.sql;

Erstellen der gespeicherten Prozedur getCourses

In diesem Schritt wirst du eine gespeicherte Prozedur namens getCourses erstellen, die Kurse aus der Tabelle course abruft, wobei der Wert des Felds credits größer als 3 ist.

  1. Öffne die Datei getCourses.sql.
  2. Füge den folgenden Code zur Datei getCourses.sql hinzu:
-- Creating the getCourses stored procedure
DELIMITER //

CREATE PROCEDURE getCourses()
BEGIN
-- Retrieve courses from the course table where the credits field is greater than 3
SELECT course_id, title, dept_name, credits
FROM course
WHERE credits > 3;
END //

DELIMITER ;
  1. Speichere die Datei und beende sie.

Testen der gespeicherten Prozedur getCourses

In diesem Schritt wirst du die gespeicherte Prozedur getCourses testen, um sicherzustellen, dass sie wie erwartet funktioniert.

  1. Führe das Skript getCourses.sql in MySQL aus:
MariaDB [edusys]> SOURCE /home/labex/project/getCourses.sql;
  1. Rufe die gespeicherte Prozedur getCourses auf:
MariaDB [edusys]> CALL getCourses();
+-----------+----------------------------+------------+---------+
| course_id | title                      | dept_name  | credits |
+-----------+----------------------------+------------+---------+
| BIO-101   | Intro. to Biology          | Biology    |       4 |
| BIO-301   | Genetics                   | Biology    |       4 |
| CS-101    | Intro. to Computer Science | Comp. Sci. |       4 |
| CS-190    | Game Design                | Comp. Sci. |       4 |
| PHY-101   | Physical Principles        | Physics    |       4 |
+-----------+----------------------------+------------+---------+
5 rows in set (0.000 sec)

Die Ausgabe zeigt, dass die gespeicherte Prozedur getCourses wie erwartet funktioniert und alle Kurse mit einem Creditwert von mehr als 3 abruft.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs ausprobieren, um deine Fähigkeiten zu verbessern.