Heim > Datenbank > MySQL-Tutorial > Analyse von Triggern und gespeicherten Prozedurinstanzen der MySQL-Datenbank

Analyse von Triggern und gespeicherten Prozedurinstanzen der MySQL-Datenbank

王林
Freigeben: 2023-05-27 11:46:06
nach vorne
1723 Leute haben es durchsucht

1. Zweck des Experiments

  • 1. Beherrschen Sie die von einem Mainstream-DBMS unterstützte SQL-Programmiersprache und standardisieren Sie das Design gespeicherter Prozeduren 🎜##🎜 🎜#

    2 Die Funktionen und Ausführungsprinzipien verschiedener Triggertypen verstehen und die Wirksamkeit von Triggern überprüfen;
  • 3. Das Systemdenken der Schüler verbessert die Programmierfähigkeiten, die zur Lösung komplexer technischer Probleme erforderlich sind.
  • 2. Experimentelle Anforderungen
  • Beherrschen Sie die SQL-Programmiersprache eines Mainstream-DBMS und definieren Sie VOR (für) basierend auf der zuvor erstellten Datenbank Trigger und AFTER-Trigger beherrschen die Definition gespeicherter Datenbankprozeduren, das Ausführen gespeicherter Prozeduren, das Umbenennen gespeicherter Prozeduren, das Löschen gespeicherter Prozeduren und das Übergeben von Parametern gespeicherter Prozeduren.

Warme Erinnerung:

Der folgende Inhalt wurde getestet, es wird jedoch zwangsläufig Auslassungen geben, aber die meisten Ideen und Implementierungen des Codes wurden getestet und sind korrekt.

3. Implementierungsinhalte und -schritte

1. Erstellen Sie eine einfache gespeicherte Prozedur ohne Parameter

( 1) Erstellen Sie die gespeicherte Prozedur sp_avggrade, um die Funktion zum Abfragen der Durchschnittsnoten der Studenten in jedem Kurs zu implementieren.

delimiter//
CREATE PROCEDURE sp_avggrade()
COMMENT '查询每门课程学生的平均成绩的功能'
BEGIN
SELECT cno as 课程号,avg(grade)as 平均成绩
FROM sc
GROUP BY cno;
end//
delimiter;
Nach dem Login kopieren

2. Erstellen Sie eine gespeicherte Prozedur mit Eingabeparametern
  • (1) Erstellen Sie eine gespeicherte Prozedur sp_course_avggrade, um die Abfrage durch Eingabe der Kursnummer zu implementieren Parameter Funktion zur Angabe der durchschnittlichen Kursnote der Kursnummer;

  • call sp_avggrade();
    Nach dem Login kopieren
(2) Rufen Sie diese gespeicherte Prozedur auf, um die Durchschnittsnote des angegebenen Kurses zu erhalten.

3. Erstellen Sie eine gespeicherte Prozedur mit Eingabe- und Ausgabeparametern.

(1) Erstellen Sie eine gespeicherte Prozedur sp_sdept _student, um den vom Benutzer eingegebenen Abteilungsnummernparameter zu implementieren , Die Funktion, um die Anzahl der Studenten in der Hochschule zu ermitteln und in Form einer Variablen auszugeben;

delimiter//
CREATE PROCEDURE sp_course_avggrade(IN c_no CHAR(2))
COMMENT '通过输入课程编号参数查询指定课程编号的课程平均成绩的功能'
BEGIN
SELECT cno,AVG(grade)
FROM sc
WHERE cno=c_no;
END//
delimiter;
Nach dem Login kopieren
(2) Rufen Sie die gespeicherte Prozedur auf, um die Anzahl der Studenten in der entsprechenden Abteilung in zu erhalten Form einer zurückgegebenen Variablen.
delimiter//
CREATE PROCEDURE sp_sdept_student2(IN _sdept CHAR(10),OUT num int)
BEGIN
SELECT COUNT(sno) INTO num
FROM student
WHERE _sdept = sdept;
END//
delimiter;
Nach dem Login kopieren

4. Erstellung und Verwendung von Triggern

(1) Erstellen Sie einen Trigger in der Studententabelle, um zu erkennen, dass der Student in der Punktetabelle Kaskadenlöschung von Notendatensätzen;

SET @num=10;
CALL sp_sdept_student2('计科',@num);
SELECT @num AS '人数';
Nach dem Login kopieren

(2) Erstellen Sie einen Auslöser in der Kursauswahltabelle. Wenn die eingegebene Note größer als 100 Punkte und weniger als 0 Punkte ist, wird der Datensatz gelöscht weigerte sich, eingefügt und angezeigt zu werden; Verifizierung(1)

#🎜🎜 #
delimiter//
CREATE TRIGGER delete_stu
BEFORE DELETE
ON student
FOR EACH ROW
BEGIN
DELETE
FROM sc
WHERE sc.sno=old.sno;
END//
delimiter;
Nach dem Login kopieren

Verifizierung(2)

delimiter//
CREATE TRIGGER scgrade
BEFORE INSERT ON sc
FOR EACH ROW
BEGIN
IF new.grade>100 or new.grade < 0 THEN
SIGNAL SQLSTATE &#39;45000&#39;
SET message_text=&#39;录入成绩不符合规定,拒绝插入&#39;;
END IF;
END//
delimiter;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAnalyse von Triggern und gespeicherten Prozedurinstanzen der MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage