Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan Python

Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan Python

WBOY
WBOYasal
2023-09-20 11:33:48577semak imbas

Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan Python

Cara menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan Python

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, dan Python ialah bahasa pengaturcaraan yang berkuasa. Menggabungkan kedua-duanya membolehkan operasi pangkalan data yang lebih fleksibel dan cekap. Prosedur dan fungsi tersimpan dalam MySQL boleh membantu kami merangkum logik operasi yang biasa digunakan dan mengurangkan penulisan kod berulang. Artikel ini akan memperkenalkan cara menggunakan Python untuk menulis prosedur dan fungsi tersimpan tersuai, dengan contoh kod khusus.

  1. Persediaan
    Pertama, pastikan anda telah memasang pangkalan data Python dan MySQL dan boleh menyambung ke pangkalan data.
  2. Buat Pangkalan Data dan Jadual
    Kami akan menggunakan pangkalan data sampel untuk menunjukkan penggunaan prosedur dan fungsi tersimpan tersuai. Mula-mula, cipta pangkalan data bernama "testdb" dan buat jadual bernama "pengguna" di dalamnya dengan struktur berikut:
CREATE DATABASE testdb;

USE testdb;

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255),
  age INT,
  email VARCHAR(255)
);
  1. Tulis kod Python
    Seterusnya, kami akan menulis kod Python untuk mencipta Prosedur dan fungsi storan tersuai. Mula-mula, import modul yang diperlukan dan sambungkan ke pangkalan data:
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="testdb"
)

mycursor = mydb.cursor()
  1. Menulis prosedur tersimpan tersuai
    Di bawah ialah contoh mencipta prosedur tersimpan tersuai. Prosedur tersimpan ini akan menanyakan pengguna berdasarkan julat umur yang ditentukan dan mengembalikan hasilnya. Sintaks prosedur tersimpan adalah seperti berikut:
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()
  1. Panggil prosedur tersimpan tersuai
    Selepas mencipta prosedur tersimpan, kita boleh menggunakan kod berikut untuk memanggilnya:
def call_procedure():
  mycursor.callproc("get_users_by_age", (18, 30))
  for result in mycursor.stored_results():
    for row in result.fetchall():
      print(row)
  1. Tulis fungsi tersuai
    Sebagai tambahan kepada prosedur tersimpan, kami juga boleh Mencipta fungsi tersuai. Di bawah ialah contoh mencipta fungsi tersuai. Fungsi ini akan mengembalikan bilangan pengguna dalam lingkungan umur yang ditentukan. Sintaks fungsi tersebut adalah seperti berikut:
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()
  1. Panggil fungsi tersuai
    Selepas mencipta fungsi, kita boleh menggunakan kod berikut untuk memanggilnya:
def call_function():
  mycursor.callfunc("count_users_by_age", int, (18, 30))

Pada ketika ini, kami telah belajar cara menulis storan tersuai dalam MySQL menggunakan Prosedur dan fungsi Python. Dengan menggabungkan Python dengan MySQL, kami boleh melaksanakan operasi pangkalan data dengan lebih fleksibel dan meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod.

Kod lengkap adalah seperti berikut:

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()

Di atas ialah cara menggunakan Python untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL. Saya harap ia akan membantu anda. Dengan menggunakan prosedur dan fungsi tersimpan secara rasional, kami boleh meningkatkan kecekapan dan fleksibiliti operasi pangkalan data dan mencapai fungsi yang lebih berkuasa.

Atas ialah kandungan terperinci Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn