Inhaltsverzeichnis
1. Was sind gespeicherte Prozeduren und gespeicherte Funktionen?
2. Erstellen Sie eine gespeicherte Prozedur Jobnummer des Mitarbeiters:
3. 创建存储函数
4. 存储过程和存储函数的使用
5. 带有if语句的存储过程
6. 带有循环语句的存储过程
7. 带有事务的存储过程
8. 带有游标的存储函数
rrreee
Heim Datenbank MySQL-Tutorial So verwenden Sie gespeicherte MYSQL-Prozeduren und gespeicherte Funktionen

So verwenden Sie gespeicherte MYSQL-Prozeduren und gespeicherte Funktionen

Jun 03, 2023 pm 04:55 PM
mysql

1. Was sind gespeicherte Prozeduren und gespeicherte Funktionen?

  • Eine gespeicherte Prozedur (Stored Procedure) ist eine Reihe von SQL-Anweisungen, die in der Datenbank gespeichert sind. Durch die Kapselung der Geschäftslogik können gespeicherte Prozeduren die Effizienz der Datenbankausführung und die Datenzugriffssicherheit verbessern.

  • Gespeicherte Funktion bezieht sich auf eine Reihe ausgeführter SQL-Anweisungen, die in einer Datenbank gespeichert sind. Der Unterschied zu gespeicherten Prozeduren besteht darin, dass gespeicherte Funktionen einen Rückgabewert haben.

2. Erstellen Sie eine gespeicherte Prozedur Jobnummer des Mitarbeiters:

CREATE PROCEDURE procedure_name([IN/OUT] parameter_name data_type)
BEGIN
    SQL Statement;
END;
Nach dem Login kopieren

3. Erstellen Sie eine Speicherfunktion employee的员工表,现在需要创建一个存储过程,可以根据员工的工号查询员工的姓名和工资:

DELIMITER //
CREATE PROCEDURE get_employee_info_by_id(IN emp_id INT)
BEGIN
    SELECT name, salary FROM employee WHERE id = emp_id;
END //
DELIMITER ;
Nach dem Login kopieren

3. 创建存储函数

CREATE FUNCTION function_name([IN/OUT] parameter_name data_type) RETURNS data_type
BEGIN
    DECLARE variable_name data_type;
    SQL Statement;
    RETURN variable_name;
END;
Nach dem Login kopieren

假设我们已经有一张名为product的商品表,现在需要创建一个存储函数,可以根据商品的编号查询商品的单价:

DELIMITER //
CREATE FUNCTION get_product_price_by_id(IN product_id INT) RETURNS DECIMAL(10,2)
BEGIN
    DECLARE price DECIMAL(10,2);
    SELECT unit_price INTO price FROM product WHERE id = product_id;
    RETURN price;
END //
DELIMITER ;
Nach dem Login kopieren

4. 存储过程和存储函数的使用

  • 调用存储过程:

CALL procedure_name([parameter_name]);
Nach dem Login kopieren
  • 调用存储函数:

SELECT function_name([parameter_name]);
Nach dem Login kopieren

使用上面创建的get_employee_info_by_id存储过程可以这样调用:

CALL get_employee_info_by_id(1);
Nach dem Login kopieren

使用上面创建的get_product_price_by_id存储函数可以这样调用:

SELECT get_product_price_by_id(1001);
Nach dem Login kopieren

以下是一些常见的存储过程和存储函数的示例:

5. 带有if语句的存储过程

假设我们已经有一张名为employee的员工表,现在需要创建一个存储过程,查询员工的姓名和工资,如果工资大于5000,则在结果中添加一个备注:“高收入”。

DELIMITER //
CREATE PROCEDURE get_employee_info_with_note()
BEGIN
    SELECT name, salary, IF(salary > 5000, '高收入', '') AS note FROM employee;
END //
DELIMITER ;
Nach dem Login kopieren

6. 带有循环语句的存储过程

假设我们已经有一张名为product的商品表,现在需要创建一个存储过程,把商品的单价全部乘以1.1。

DELIMITER //
CREATE PROCEDURE update_all_product_price()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE pid INT;
    DECLARE price DECIMAL(10,2);
    DECLARE cur CURSOR FOR SELECT id, unit_price FROM product;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    OPEN cur;
    read_loop: LOOP
        FETCH cur INTO pid, price;
        IF done THEN
            LEAVE read_loop;
        END IF;
        UPDATE product SET unit_price = price * 1.1 WHERE id = pid;
    END LOOP;
    CLOSE cur;
END //
DELIMITER ;
Nach dem Login kopieren

7. 带有事务的存储过程

假设我们已经有一张名为order的订单表和一张名为order_item的订单详情表,现在需要创建一个存储过程,向这两张表中插入一条记录。

DELIMITER //
CREATE PROCEDURE insert_order(IN order_id INT, IN item_name VARCHAR(50), IN item_price DECIMAL(10,2), IN item_quantity INT)
BEGIN
    START TRANSACTION;
    INSERT INTO `order`(id) VALUES(order_id);
    SET @last_order_id = LAST_INSERT_ID();
    INSERT INTO order_item(order_id, item_name, item_price, item_quantity) VALUES(@last_order_id, item_name, item_price, item_quantity);
    COMMIT;
END //
DELIMITER ;
Nach dem Login kopieren

8. 带有游标的存储函数

假设我们已经有一张名为product

DELIMITER //
CREATE FUNCTION get_max_product_price() RETURNS DECIMAL(10,2)
BEGIN
    DECLARE max_price DECIMAL(10,2);
    DECLARE cur CURSOR FOR SELECT unit_price FROM product;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET max_price = 0;
    OPEN cur;
    FETCH cur INTO max_price;
    read_loop: LOOP
        FETCH cur INTO max_price;
        IF max_price IS NULL THEN
            LEAVE read_loop;
        END IF;
        IF max_price > @max_price THEN 
            SET @max_price = max_price;
        END IF;
    END LOOP;
    CLOSE cur;
    RETURN max_price;
END //
DELIMITER ;
Nach dem Login kopieren
Angenommen, wir haben bereits eine Produkttabelle mit dem Namen product und müssen jetzt eine Speicherfunktion erstellen, die den Stückpreis abfragen kann das Produkt basierend auf der Produktnummer:

rrreee

4. Verwendung von gespeicherten Prozeduren und gespeicherten Funktionen
  • Aufrufen gespeicherter Prozeduren:
  • rrreee

  • Aufrufen gespeicherter Funktionen:

  • rrreee
Verwenden des get_employ ee_info_by_id Die oben erstellte gespeicherte Prozedur kann wie folgt aussehen: 🎜rrreee🎜Mit der get_product_price_by_id kann die oben erstellte gespeicherte Funktion wie folgt aufgerufen werden: 🎜rrreee🎜Hier sind einige Beispiele für gängige gespeicherte Prozeduren und gespeicherte Prozeduren Funktionen: 🎜🎜5. Gespeicherte Prozeduren mit if-Anweisungen 🎜🎜Angenommen, wir haben bereits eine Mitarbeitertabelle mit dem Namen employe. Jetzt müssen wir eine gespeicherte Prozedur erstellen, um den Namen und das Gehalt des Mitarbeiters abzufragen größer als 5000, fügen Sie dem Ergebnis einen Hinweis hinzu: „Hohes Einkommen“. 🎜rrreee🎜6. Gespeicherte Prozedur mit Schleifenanweisung🎜🎜Angenommen, wir haben bereits eine Produkttabelle mit dem Namen product und müssen jetzt eine gespeicherte Prozedur erstellen, um die Stückpreise aller Produkte mit 1,1 zu multiplizieren. 🎜rrreee🎜7. Gespeicherte Prozedur mit Transaktionen🎜🎜Angenommen, wir haben bereits eine Bestelltabelle mit dem Namen order und eine Bestelldetailtabelle mit dem Namen order_item. Jetzt müssen Sie eine gespeicherte Prozedur erstellen um einen Datensatz in diese beiden Tabellen einzufügen. 🎜rrreee🎜8. Speicherfunktion mit Cursor🎜🎜Angenommen, wir haben bereits eine Produkttabelle mit dem Namen product und müssen jetzt eine gespeicherte Funktion erstellen, um den maximalen Stückpreis in der Produkttabelle abzufragen. 🎜rrreee🎜9. Vorteile gespeicherter Prozeduren und gespeicherter Funktionen🎜🎜🎜🎜Code kann wiederverwendet werden, um das wiederholte Schreiben von SQL-Anweisungen zu vermeiden;🎜🎜🎜🎜Flusskontrollanweisungen können in gespeicherten Prozeduren und gespeicherten Funktionen verwendet werden, um komplexe Logik zu verarbeiten;🎜🎜 🎜🎜Datenbankoperationen können durch gespeicherte Prozeduren und gespeicherte Funktionen gekapselt werden, um die Effizienz und Sicherheit zu verbessern. 🎜🎜🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie gespeicherte MYSQL-Prozeduren und gespeicherte Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

So erstellen Sie eine SQL -Datenbank So erstellen Sie eine SQL -Datenbank Apr 09, 2025 pm 04:24 PM

Das Erstellen einer SQL -Datenbank umfasst 10 Schritte: Auswählen von DBMs; Installation von DBMs; Erstellen einer Datenbank; Erstellen einer Tabelle; Daten einfügen; Daten abrufen; Daten aktualisieren; Daten löschen; Benutzer verwalten; Sichern der Datenbank.

See all articles