Heim > Datenbank > MySQL-Tutorial > Hauptteil

Detaillierte Erläuterung der gespeicherten MySQL-Prozedur mit Beispielen

王林
Freigeben: 2020-01-22 19:41:25
nach vorne
2828 Leute haben es durchsucht

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
Nach dem Login kopieren

(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);
Nach dem Login kopieren

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;;
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:cnblogs.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