ホームページ >データベース >mysql チュートリアル >Python を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法
Python を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法
MySQL は一般的に使用されるリレーショナル データベース管理システムであり、Python は強力なプログラミング言語です。 2 つを組み合わせることで、より柔軟で効率的なデータベース操作が可能になります。 MySQL のストアド プロシージャとストアド関数は、一般的に使用される操作ロジックをカプセル化し、繰り返しコードを記述するのを減らすのに役立ちます。この記事では、Python を使用してカスタム ストアド プロシージャと関数を作成する方法を、具体的なコード例とともに紹介します。
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))
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()上記は、Python を使用して MySQL にカスタム ストアド プロシージャと関数を記述する方法です。ストアドプロシージャやストアドファンクションを合理的に活用することで、データベース操作の効率性と柔軟性を向上させ、より強力な機能を実現します。
以上がPython を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。