Maison >base de données >tutoriel mysql >Comment écrire des procédures stockées et des fonctions personnalisées dans MySQL à l'aide de Python
Comment écrire des procédures stockées et des fonctions personnalisées dans MySQL à l'aide de Python
MySQL est un système de gestion de bases de données relationnelles couramment utilisé et Python est un langage de programmation puissant. La combinaison des deux permet des opérations de base de données plus flexibles et plus efficaces. Les procédures et fonctions stockées dans MySQL peuvent nous aider à encapsuler la logique de fonctionnement couramment utilisée et à réduire l'écriture de code répété. Cet article explique comment utiliser Python pour écrire des procédures stockées et des fonctions personnalisées, avec des exemples de code spécifiques.
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))
À ce stade, nous avons appris à écrire un stockage personnalisé dans MySQL en utilisant les procédures et fonctions Python. En combinant Python avec MySQL, nous pouvons effectuer les opérations de base de données de manière plus flexible et améliorer la réutilisabilité et la maintenabilité du code.
Le code complet est le suivant :
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()
Ce qui précède explique comment utiliser Python pour écrire des procédures stockées et des fonctions personnalisées dans MySQL. J'espère que cela vous sera utile. En utilisant rationnellement les procédures et fonctions stockées, nous pouvons améliorer l'efficacité et la flexibilité des opérations de base de données et obtenir des fonctions plus puissantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!