Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der gespeicherten MySQL-Prozedur mit Beispielen

Detaillierte Erläuterung der gespeicherten MySQL-Prozedur mit Beispielen

王林
王林nach vorne
2020-01-22 19:41:252852Durchsuche

Detaillierte Erläuterung der gespeicherten MySQL-Prozedur mit Beispielen

Was ist eine gespeicherte MySQL-Prozedur?

Eine gespeicherte Prozedur ist eine kombinierte SQL-Anweisung, die auf dem Server gespeichert ist. Sie wird kompiliert, erstellt und in der Datenbank gespeichert. Benutzer können sie über den Namen der gespeicherten Prozedur aufrufen und ausführen. Die Kernidee gespeicherter Prozeduren ist die Kapselung und Wiederverwendbarkeit auf der SQL-Sprachebene der Datenbank. Die Verwendung gespeicherter Prozeduren kann die Geschäftskomplexität des Anwendungssystems verringern, erhöht jedoch die Belastung des Datenbankserversystems, sodass bei der Verwendung umfassende Geschäftsüberlegungen berücksichtigt werden müssen.

Grundlegendes Syntaxformat

CREATE PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body

(Kostenloses Teilen von Lernvideo-Tutorials: MySQL-Video-Tutorial)

Beispiel 1: Verbrauch berechnen Rabatt

-- 创建存储过程
DROP PROCEDURE IF EXISTS p01_discount ;
CREATE PROCEDURE p01_discount(IN consume NUMERIC(5,2),OUT payfee NUMERIC(5,2))BEGIN
    -- 判断收费方式
    IF(consume>100.00 AND consume<=300.00) THEN
        SET payfee=consume*0.8;
    ELSEIF (consume>300.00) THEN 
        SET payfee=consume*0.6;
    ELSE 
        SET payfee = consume;    END IF;    SELECT payfee AS result;END ;
        -- 调用存储过程
        CALL p01_discount(100.0,@discount);

Beispiel 2: Während...Daten schreiben

Eine Datentabelle bereitstellen

CREATE TABLE `t03_proced` (  
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT &#39;主键ID&#39;,  
`temp_name` varchar(20) DEFAULT NULL COMMENT &#39;名称&#39;,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=&#39;触发器写数据&#39;;

Programm speichern

entsprechend dem Eingang Parameter zum Bestimmen der Anzahl der Datenelemente, die in die Tabelle t03_proced geschrieben werden.

DROP PROCEDURE IF EXISTS p02_batch_add ;
CREATE PROCEDURE p02_batch_add(IN count INT(11))BEGIN
    DECLARE temp int default 0;
    WHILE temp < count DO
        INSERT INTO t03_proced(temp_name) VALUES (&#39;pro_name&#39;);        
        SET temp = temp+1 ;   
         END WHILE;
         END ;
         -- 测试:写入10条数据call p02_batch_add(10);

Hinweise

1. Geschäftsszenarien

Die Anwendung gespeicherter Prozeduren in der tatsächlichen Entwicklung ist normalerweise nicht sehr weit verbreitet. Die Levelentwicklung ermöglicht eine bessere Verwaltung, Wartung und Optimierung.

2. Ausführungsgeschwindigkeit

Wenn in einem einfachen Szenario das Schreiben von Einzeltabellendaten, basierend auf dem Schreiben einer Anwendung oder eines Datenbankverbindungs-Clients, im Vergleich zum Schreiben einer gespeicherten Prozedur ist, ist die Geschwindigkeit viel langsamer Gespeicherte Prozeduren haben weitgehend keinen Netzwerkkommunikations-Overhead, Analyse-Overhead, Optimierungs-Overhead usw.

Empfohlene verwandte Artikel und Tutorials: MySQL-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der gespeicherten MySQL-Prozedur mit Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen