MySQL-Tutorial versteht gespeicherte Prozeduren gründlich

MySQL-Tutorial versteht gespeicherte Prozeduren gründlich

Bildbeschreibung hier einfügen

1. Konzepte im Zusammenhang mit gespeicherten Prozeduren

Was ist eine gespeicherte Prozedur:
Ähnlich wie Methoden in Java und Funktionen in Python.

Vorteile der Verwendung gespeicherter Prozeduren:
1. Verbessern Sie die Wiederverwendbarkeit des Codes;
2. Vereinfachen Sie die Bedienung;
3. Reduziert die Anzahl der Kompilierungen und die Anzahl der Verbindungen zum Datenbankserver und verbessert so die Effizienz. Hinweis: Normalerweise wird bei jeder Ausführung einer SQL-Anweisung einmal eine Verbindung zum MySQL-Server hergestellt.

Die Bedeutung gespeicherter Prozeduren:
Eine Sammlung vorkompilierter SQL-Anweisungen.

2. Verwendung gespeicherter Prozeduren

1) Syntax zum Erstellen einer gespeicherten Prozedur

Prozedur erstellen Name der gespeicherten Prozedur (Parameterliste)
beginnen
     Hauptteil der gespeicherten Prozedur (eine Reihe zulässiger und gültiger SQL-Anweisungen)
Ende

2) Verständnis der Erstellungssyntax

① Parameterliste: Die Parameterliste besteht aus 3 Teilen

Parametermodus Parametername Parametertyp Beispiel: in stuname varchar(20)

② Parametermodusklassifizierung

in: Dieser Parameter kann als Eingabe verwendet werden, d. h. der Anrufer muss einen Wert für diesen Parameter übergeben.

out: Dieser Parameter kann als Ausgabe verwendet werden, d. h. dieser Parameter kann als Rückgabewert verwendet werden.

inout: Dieser Parameter kann sowohl als Eingabe als auch als Ausgabe verwendet werden, d. h. der Parameter muss Werte übergeben und kann Werte zurückgeben.

③ Wenn der Hauptteil der gespeicherten Prozedur nur aus einem Satz besteht, können begin/end weggelassen werden.

Ⅰ Am Ende jeder SQL-Anweisung im Hauptteil der gespeicherten Prozedur ist ein Semikolon erforderlich.
Ⅱ Das Ende der gespeicherten Prozedur kann mit dem Trennzeichen zurückgesetzt werden, andernfalls führt die Verwendung von „;“ zu Verwirrung.
Syntax: Trennzeichen, Endmarkierung. Beispiel: Trennzeichen $ – bedeutet, dass $ als Endsymbol verwendet wird.

④ Aufrufsyntax der gespeicherten Prozedur

Rufen Sie den Namen der gespeicherten Prozedur auf (tatsächliche Parameterliste).

3. Speichervorgang für leere Parameter

„Der gesamte Ausführungsprozess der gespeicherten Prozedur wird am besten im CMD-Fenster ausgeführt.“
-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Prozedur myp() erstellen
beginnen
    	in admin einfügen(Benutzername, `Passwort`)
    	Werte("tom","1111"),("jerry","2222"),
    	("jalen","3333"),("rose","4444"),("tonny","5555");
Ende $
-- Rufen Sie die gespeicherte Prozedur call myp()$ auf.
-- Sehen Sie sich die Ergebnisse an.
Wählen Sie * von Admin$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

4. Gespeicherte Prozeduren mit In-Modus

Bildbeschreibung hier einfügen

1) Fall: Erstellen Sie eine gespeicherte Prozedur, um den entsprechenden Abteilungsnamen basierend auf der Abteilungsnummer abzufragen.

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Prozedur myp2 erstellen (in Num Int)
beginnen
    Wählen Sie e.ename, d.dname
    von emp e 
    links beitreten Abteilung d auf e.deptno=d.deptno
    wobei e.deptno=num;
Ende $
-- Rufen Sie die gespeicherte Prozedur call myp2(10)$ auf.

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

2) Fall: Erstellen Sie eine gespeicherte Prozedur, um zu überprüfen, ob sich der Benutzer erfolgreich angemeldet hat.

Bildbeschreibung hier einfügen

Die Funktionsweise ist wie folgt:

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Prozedur myp3 erstellen (in Benutzername varchar (10), Passwort varchar (10))
beginnen 
    Ergebnis int deklarieren;
    select count(*) in Ergebnis
    aus der Admin-Anzeige
    wobei ad.username=Benutzername
    und ad.password=Passwort;
    Wählen Sie if(count(*) > 0,"Anmeldung erfolgreich","Anmeldung fehlgeschlagen") Anmeldestatus;
Ende $
-- Rufen Sie die gespeicherte Prozedur call myp3('john','8888'); auf.

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

5. Gespeicherte Prozeduren ohne Modus

Bildbeschreibung hier einfügen

1) Fall 1: Erstellen Sie eine gespeicherte Prozedur, um den entsprechenden männlichen Gottesnamen entsprechend dem Namen der Göttin zurückzugeben

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Prozedur myp4 erstellen (in beautyName varchar(20),out boyName varchar(20))
beginnen 
    Wählen Sie b.boyName in boyName
    von Schönheit links schließen sich Jungs b
    auf beauty.boyfriend_id=b.id
    wobei beauty.name=Schönheitsname;
Ende $
-- Rufen Sie #Redefine, eine Variable @boyname, auf, um den Rückgabewert boyName zu erhalten.
rufe myp4("Zhao Min",@Jungenname)$ auf
wähle @boyname$

ruf myp4("Name",@boyname)$ auf
wähle @boyname$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

2) Fall 2: Erstellen Sie eine gespeicherte Prozedur, um den entsprechenden männlichen Gottesnamen und den männlichen Gotteszauberwert entsprechend dem Göttinnennamen zurückzugeben

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Erstelle Prozedur myp5(in beautyName varchar(20), out boyName varchar(20), out userCP int)
beginnen 
    Wählen Sie b.boyName,b.userCP in boyName,userCP
    von Schönheit links schließen sich Jungs b
    auf beauty.boyfriend_id=b.id
    wobei beauty.name=Schönheitsname;
Ende $
-- Rufen Sie #Redefine auf, eine Variable @boyname, um den Rückgabewert boyName zu erhalten.
rufe myp5 auf("Name",@boyname,@usercp)$
wähle @boyname,@usercp$

rufe myp5 auf("Name",@boyname,@usercp)$
wähle @boyname,@usercp$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

6. Gespeicherte Prozedur mit Inout-Modus

1) Fall 1: Geben Sie zwei Werte ein, a und b. Schließlich werden sowohl a als auch b verdoppelt und zurückgegeben.

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Prozedur myp6(inout a int ,inout b int) erstellen
beginnen 
    -- Lokale Variablen müssen nicht in @-Symbole eingeschlossen werden.
    setze a=a*2;
		setze b=b*2;
Ende $
-- Anrufen -- Achten Sie besonders auf den Anrufteil.
setze @m=10$
setze @n=20$
ruf myp6(@m,@n)$ auf
wähle @m,@n$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

7. Fallanalyse gespeicherter Prozeduren

1) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um den Benutzernamen und das Kennwort zu übergeben und in die Admin-Tabelle einzufügen.

2) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um die Göttinnennummer zu übergeben und den Namen und die Telefonnummer der Göttin zurückzugeben.

3) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um die Geburtstage zweier Göttinnen zu übergeben und die Größe zurückzugeben.

1) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um den Benutzernamen und das Kennwort zu übergeben und in die Admin-Tabelle einzufügen.

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
erstelle Prozedur pro1(in Benutzername varchar(20), in Benutzerkennwort varchar(20))
beginnen 
    in admin einfügen(Benutzername, `Passwort`)
    Werte (Benutzername, Benutzerkennwort);
Ende $

-- Rufen Sie die gespeicherte Prozedur call pro1("Lu Zhishen","123abc")$ auf.
Wählen Sie * von Admin$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

2) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um die Göttinnennummer zu übergeben und den Namen und die Telefonnummer der Göttin zurückzugeben.

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Erstellen Sie die Prozedur „pro2“ (in id int,out beautyName varchar(20),out beautyPhone varchar(20)).
beginnen
    Wählen Sie beauty.name,beauty.phone in beautyName,beautyPhone
    von Schönheit
    wobei beauty.id=id;
Ende $

-- Rufen Sie die gespeicherte Prozedur call pro2(2,@beautyname,@beautyphone)$ auf.
Wählen Sie @beautyname,@beautyphone$

ruf pro2(3,@beautyname,@beautyphone)$ an
Wählen Sie @beautyname,@beautyphone$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

3) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um die Geburtstage zweier Göttinnen zu übergeben und die Größe zurückzugeben.

-- Erstellen Sie ein Trennzeichen für gespeicherte Prozeduren $
Erstelle Prozedur pro3 (in Geburtsdatum1 Datum/Uhrzeit, in Geburtsdatum2 Datum/Uhrzeit, Ergebnis int)
beginnen
    Wählen Sie Datediff(Geburtsdatum1, Geburtsdatum2) als Ergebnis aus.
Ende $

-- Rufen Sie die gespeicherte Prozedur call pro3("1993-8-12",now(),@result)$ auf.
wähle @Ergebnis$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

8. Löschen einer gespeicherten Prozedur

Name der gespeicherten Prozedur zum Löschen der Prozedur;

9. Informationen zu einer gespeicherten Prozedur anzeigen

Bildbeschreibung hier einfügen

10.Fallbewertung gespeicherter Prozeduren

1) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um den Namen der Göttin zu übergeben und eine Zeichenfolge im Format „Göttin UND männlicher Gott“ zurückzugeben.
Falls importiert: Xiao Zhao
Rückkehr: Xiao Zhao UND Zhang Wuji
2) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um die Datensätze der Beauty-Tabelle basierend auf der Anzahl der Einträge und dem übergebenen Startindex abzufragen.

1) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um den Namen der Göttin zu übergeben und eine Zeichenfolge im Format „Göttin UND Gott“ zurückzugeben.

Trennzeichen $
Prozedur test1 erstellen (in beautyname varchar(20))
beginnen
    Wählen Sie concat(Schönheit.Name,"UND",Jungs.JungenName)
    von Beauty Left Join Boys
    auf beauty.boyfriend_id=boys.id
    wobei beauty.name=beautyname;
Ende $

rufe test1 auf("Liu Yan")$
rufe test1 auf("Zhao Min")$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

2) Erstellen Sie eine gespeicherte Prozedur oder Funktion, um die Datensätze der Beauty-Tabelle basierend auf der Anzahl der Einträge und dem übergebenen Startindex abzufragen.

Trennzeichen $
Erstelle Prozedur test2 (in StartIndex int, in Länge int)
beginnen
    wählen *
    von Schönheit
    Limit StartIndex,Länge;
Ende $
-- 3 Datensätze pro Seite anzeigen -- Seite 2 anzeigen call test2(3,3)$
-- Seite 3 anzeigen, Aufruf test2(6,3)$

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

Oben finden Sie den detaillierten Inhalt der MySQL-Reihe zum gründlichen Verständnis gespeicherter Prozeduren. Weitere Informationen zu gespeicherten MySQL-Prozeduren finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der gespeicherten MySQL-Prozedur
  • Detaillierte Erläuterung der Konzepte, Prinzipien und allgemeinen Verwendung von gespeicherten MySQL-Prozeduren
  • Detaillierte Erläuterung der gespeicherten Prozeduren und Funktionen von MySql
  • Grundlegendes zu gespeicherten MySQL-Prozeduren und -Funktionen

<<:  Verständnis des CSS-Selektorgewichts (persönlicher Test)

>>:  So verwenden Sie HTML-CSS, um zu steuern, dass Div oder Tabellen an einer bestimmten Position fixiert werden

Artikel empfehlen

JavaScript realisiert die Generierung und Überprüfung von Zufallscodes

Die Generierung und Überprüfung von Zufallscodes ...

Der Unterschied zwischen MySQL execute, executeUpdate und executeQuery

Die Unterschiede zwischen „execute“, „executeUpda...

Codebeispiel für einen einfachen UDP-Server-Client

Ich werde nicht näher auf die Theorie von UDP ein...

Detaillierte Erklärung des Linx awk-Einführungstutorials

Awk ist eine Anwendung zur Verarbeitung von Textd...

js-Entwicklungs-Plugin zum Erzielen eines Tab-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen In MySQL gibt ...

Rastersysteme im Webdesign

Bildung des Gittersystems Im Jahr 1692 war der fr...

Schritte der MySQL-Methode zum Bestimmen, ob es sich um eine Teilmenge handelt

Inhaltsverzeichnis 1. Problem 2. Lösung Option 1:...

Pygame-Code zum Erstellen eines Schlangenspiels

Inhaltsverzeichnis Verwendete Pygame-Funktionen E...