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.
- Starte den MySQL-Dienst:
sudo service mysql start
- Greife auf MySQL mit dem
sudo-Befehl zu:
sudo mysql
- Importiere die Daten aus
/home/labex/project/edusys.sqlin MySQL und wechsle zuredusys-Datenbank:
MariaDB [None]> SOURCE /home/labex/project/edusys.sql;
Erstelle die gespeicherte 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.
- Öffne die Datei
getCourses.sql. - Füge den folgenden Code zur Datei
getCourses.sqlhinzu:
-- 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 ;
- Speichere die Datei und beende sie.
Teste die gespeicherte Prozedur getCourses
In diesem Schritt wirst du die gespeicherte Prozedur getCourses testen, um sicherzustellen, dass sie wie erwartet funktioniert.
- Führe das Skript
getCourses.sqlin MySQL aus:
MariaDB [edusys]> SOURCE /home/labex/project/getCourses.sql;
- Rufe die gespeicherte Prozedur
getCoursesauf:
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.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs ausprobieren, um deine Fähigkeiten zu verbessern.
