So schreiben Sie benutzerdefinierte gespeicherte Prozeduren und Funktionen in MySQL mit Python
MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem und Python ist eine leistungsstarke Programmiersprache. Die Kombination beider ermöglicht einen flexibleren und effizienteren Datenbankbetrieb. Gespeicherte Prozeduren und Funktionen in MySQL können uns dabei helfen, häufig verwendete Operationslogik zu kapseln und das Schreiben wiederholten Codes zu reduzieren. In diesem Artikel wird anhand spezifischer Codebeispiele erläutert, wie Sie mit Python benutzerdefinierte gespeicherte Prozeduren und Funktionen schreiben.
CREATE DATABASE testdb; USE testdb; CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), age INT, email VARCHAR(255) );
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="testdb" ) mycursor = mydb.cursor()
def create_procedure(): sql = """ CREATE PROCEDURE get_users_by_age( IN min_age INT, IN max_age INT ) BEGIN SELECT * FROM users WHERE age >= min_age AND age <= max_age; END """ mycursor.execute(sql) mydb.commit()
def call_procedure(): mycursor.callproc("get_users_by_age", (18, 30)) for result in mycursor.stored_results(): for row in result.fetchall(): print(row)
def create_function(): sql = """ CREATE FUNCTION count_users_by_age( min_age INT, max_age INT ) RETURNS INT BEGIN DECLARE user_count INT; SELECT COUNT(*) INTO user_count FROM users WHERE age >= min_age AND age <= max_age; RETURN user_count; END """ mycursor.execute(sql) mydb.commit()
def call_function(): mycursor.callfunc("count_users_by_age", int, (18, 30))
An diesem Punkt haben wir gelernt, wie man benutzerdefinierten Speicher schreibt in MySQL mit Python-Prozeduren und -Funktionen. Durch die Kombination von Python mit MySQL können wir Datenbankoperationen flexibler durchführen und die Wiederverwendbarkeit und Wartbarkeit des Codes verbessern.
Der vollständige Code lautet wie folgt:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="testdb" ) mycursor = mydb.cursor() def create_procedure(): sql = """ CREATE PROCEDURE get_users_by_age( IN min_age INT, IN max_age INT ) BEGIN SELECT * FROM users WHERE age >= min_age AND age <= max_age; END """ mycursor.execute(sql) mydb.commit() def call_procedure(): mycursor.callproc("get_users_by_age", (18, 30)) for result in mycursor.stored_results(): for row in result.fetchall(): print(row) def create_function(): sql = """ CREATE FUNCTION count_users_by_age( min_age INT, max_age INT ) RETURNS INT BEGIN DECLARE user_count INT; SELECT COUNT(*) INTO user_count FROM users WHERE age >= min_age AND age <= max_age; RETURN user_count; END """ mycursor.execute(sql) mydb.commit() def call_function(): mycursor.callfunc("count_users_by_age", int, (18, 30)) create_procedure() call_procedure() create_function() call_function()
Das Obige beschreibt, wie Sie mit Python benutzerdefinierte gespeicherte Prozeduren und Funktionen in MySQL schreiben. Ich hoffe, es wird Ihnen hilfreich sein. Durch die rationelle Nutzung gespeicherter Prozeduren und Funktionen können wir die Effizienz und Flexibilität von Datenbankoperationen verbessern und leistungsfähigere Funktionen erreichen.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie benutzerdefinierte gespeicherte Prozeduren und Funktionen in MySQL mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!