Gespeicherte Prozedur Cursor Datenbankabrufen

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 einen Cursor verwendest, um die Kursinformationen aus der Tabelle section auszugeben, in der der Semesterbeginn im Frühling ist. Du wirst eine gespeicherte Prozedur erstellen, um die Kursdetails abzurufen, und dann die Prozedur ausführen, um die Ergebnisse anzuzeigen.

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du den MySQL-Server starten und eine Datenbank importieren kannst
  • Wie du eine gespeicherte Prozedur mit einem Cursor erstellen kannst
  • Wie du eine gespeicherte Prozedur ausführen kannst, um Daten aus einer Datenbank abzurufen

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Zu verstehen, wie du einen Cursor verwendest, um Daten aus einer Datenbank abzurufen
  • Eine gespeicherte Prozedur zu erstellen, um Datenbankoperationen zu kapseln
  • Eine gespeicherte Prozedur auszuführen, um die gewünschten Daten anzuzeigen

Starte MySQL und importiere die Datenbank

In diesem Schritt lernst du, wie du den MySQL-Server startest und die Datenbank edusys.sql in MySQL importierst.

  1. Starte den MySQL-Server:

    sudo /etc/init.d/mysql start
  2. Melde dich am MySQL-Terminal an:

    mysql -uroot
  3. Importiere die Datenbank edusys.sql:

    SOURCE ~/project/edusys.sql

Erstelle die gespeicherte Prozedur

In diesem Schritt lernst du, wie du eine gespeicherte Prozedur erstellst, um die Kursinformationen aus der Tabelle section abzurufen, in der der Semesterbeginn im Frühling ist.

  1. Erstelle eine neue Datei namens getSection.sql im Verzeichnis /home/labex/project.

  2. Definiere im Datei getSection.sql das Trennzeichen als //:

    DELIMITER //
  3. Erstelle die gespeicherte Prozedur getSectionProcude():

    CREATE PROCEDURE getSectionProcude()
    BEGIN
        SELECT course_id, year, room_number
        FROM section
        WHERE semester = 'Spring';
    END //
  4. Setze das Trennzeichen zurück auf den Standardwert:

    DELIMITER ;

Führe die gespeicherte Prozedur aus

In diesem Schritt lernst du, wie du die gespeicherte Prozedur getSectionProcude() ausführst, um die Kursinformationen abzurufen.

  1. Im MySQL-Prompt führe den folgenden Befehl aus, um das Skript subquery.sql auszuführen:

    SOURCE ~/project/getSection.sql
  2. Führe die gespeicherte Prozedur aus:

    CALL getSectionProcude();

    Dies wird die Kursinformationen ausgeben, in denen der Semesterbeginn im Frühling ist.

    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)
✨ Lösung prüfen und üben

Zusammenfassung

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