Dieser Artikel veranschaulicht anhand von Beispielen die Verwendung benutzerdefinierter MySQL-Funktionen. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Beginnen wir mit einem einfachen Beispiel. Erstellen Sie eine Funktion, um ein Datum im Format „2009-06-23 00:00:00“ in ein Datum im Format „2009 23. Juni 00:00“ umzuwandeln: TRENNUNGSZEICHEN $$ Funktion löschen, wenn `sp_test`.`getdate`$$ vorhanden ist ERSTELLEN SIE DIE FUNKTION `sp_test`.`getdate`(gdate datetime) GIBT varchar(255) ZURÜCK BEGINNEN DECLARE x VARCHAR(255) DEFAULT ''; SET x = date_format(gdate,'%Y Jahr %m Monat %d Tag %h Stunde %i Minute %s Sekunde'); RETURN x; ENDE $$ TRENNUNGSZEICHEN ; Analyse: Der erste Satz definiert einen Endbezeichner. Da MySQL standardmäßig ein Semikolon als Endbezeichner von SQL-Anweisungen verwendet und ein Semikolon innerhalb des Funktionskörpers verwendet wird, steht es im Konflikt mit dem standardmäßigen SQL-Endbezeichner. Daher müssen Sie zuerst ein anderes Symbol als SQL-Endbezeichner definieren. Der zweite Satz lautet: Wenn die Funktion bereits existiert, löschen Sie sie. Sp_test ist der Name der Datenbank, die Funktion ist mit der Datenbank verknüpft und getdate ist der Name der Funktion. Der dritte Satz erstellt eine Funktion. Die Klammern enthalten den Namen und den Typ des Parameters. RETURNS definiert den Typ des Rückgabewerts der Funktion. Der Funktionskörper muss zwischen BEGIN END platziert werden; Mit DECLARE werden Variablen im Funktionskörper definiert. Hier wird eine Variable x definiert, die standardmäßig leer ist. Anschließend wird mit SET der Variable x ein Wert zugewiesen. RETURN ist der Rückgabewert. Hier wird die Variable x zurückgegeben. Der Typ von x muss mit dem im dritten Satz definierten Rückgabetyp übereinstimmen. Anruf: Wählen Sie getdate('2009-06-23 00:00:00'); Gibt „2009-06-23 00:00:00“ zurück. Branchenstruktur TRENNUNGSZEICHEN $$ DROP-FUNKTION, WENN `sp_test`.`cutString` EXISTIERT $$ ERSTELLEN SIE DIE FUNKTION `sp_test`.`cutString`(s VARCHAR(255),n INT) GIBT varchar(255) ZURÜCK BEGINNEN WENN(ISNULL(s)) DANN ZURÜCKGEBEN ''; SONST WENN CHAR_LENGTH(s)<n, DANN RETURN s; SONST WENN CHAR_LENGTH(S)=n, DANN RETURN „gleich“; SONST RETURN CONCAT(LINKS(s,n),'...'); ENDE, WENN; ENDE $$ TRENNUNGSZEICHEN ; Analyse: Dies ist eine Funktion zum Extrahieren einer Zeichenfolge. Sie hat zwei Parameter, einer ist eine Zeichenfolge s und der andere ist eine Zahl n. Sie behält die ersten n Bits der Zeichenfolge s. Wenn die Anzahl der Bits in der Zeichenfolge kleiner als n ist, gibt sie die Zeichenfolge s zurück. Wenn sie größer als n ist, gibt sie die ersten n Bits zurück, gefolgt von ... Anruf: Wählen Sie cutString('abcdefghijklmnopqrstuvwxyz',5); Gibt „abced...“ zurück. Schleifenstruktur TRENNUNGSZEICHEN $$ Funktion löschen, wenn `sp_test`.`morestar` vorhanden ist$$ ERSTELLEN SIE DIE FUNKTION `sp_test`.`morestar`(n INT) GIBT TEXT ZURÜCK BEGINNEN DECLARE i INT DEFAULT 0; DECLARE s TEXT DEFAULT ''; meineSchleife:LOOP Setze i = i + 1; SETZEN Sie s = CONCAT(s,'*'); WENN i > n, DANN VERLASSE myloop; ENDE, WENN; ENDE DER SCHLEIFE myloop; RETURN s; ENDE $$ TRENNUNGSZEICHEN ; Analyse: Generieren Sie n *. Anruf: Wählen Sie mehr Stern (5); zurückkehren '*****' Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen ansehen: „Zusammenfassung der allgemeinen MySQL-Funktionen“, „Zusammenfassung der Kenntnisse zu MySQL-Protokollvorgängen“, „Zusammenfassung der Kenntnisse zu MySQL-Transaktionsvorgängen“, „Zusammenfassung der Kenntnisse zu gespeicherten MySQL-Prozeduren“ und „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Diagramm des Hyperledger Fabric 1.4-Umgebungskonstruktionsprozesses unter Windows 10
>>: Detaillierte Erklärung des strikten Modus in JavaScript
Vorwort Nach der Installation von MySQL und Navic...
Inhaltsverzeichnis Private Klassenfelder in JavaS...
Obwohl Mac-Systeme mit PHP und Apache ausgeliefer...
1. Stoppen Sie zuerst den Datenbankserver Dienst ...
In diesem Artikel wird der spezifische Code von V...
Schauen Sie sich zuerst den Code an #/bin/sh Datu...
In diesem Artikel wird der spezifische Code von J...
1. Reinigen Sie vor der Installation gründlich rp...
1|0 Kompilieren Sie den Kernel (1) Führen Sie den...
Mininet Mininet ist eine leichtgewichtige, softwa...
Folgendes ist passiert. Heute habe ich mit GitHub...
Zusammenfassung: Problemlösungsaufzeichnungen von...
Inhaltsverzeichnis SSH-Protokoll SSH Verbindungsp...
Bei kommerziellen Datenbanken hat die Datenbankak...
Inhaltsverzeichnis 1. Typ des Operators 2. Instan...