> 데이터 베이스 > MySQL 튜토리얼 > Python을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

Python을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

WBOY
풀어 주다: 2023-09-20 11:33:48
원래의
601명이 탐색했습니다.

Python을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

Python을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

MySQL은 일반적으로 사용되는 관계형 데이터베이스 관리 시스템이며 Python은 강력한 프로그래밍 언어입니다. 두 가지를 결합하면 보다 유연하고 효율적인 데이터베이스 운영이 가능해집니다. MySQL의 저장 프로시저와 함수는 일반적으로 사용되는 작업 논리를 캡슐화하고 반복되는 코드 작성을 줄이는 데 도움이 됩니다. 이 기사에서는 Python을 사용하여 특정 코드 예제와 함께 사용자 정의 저장 프로시저 및 함수를 작성하는 방법을 소개합니다.

  1. 준비
    먼저 Python 및 MySQL 데이터베이스가 설치되어 있고 데이터베이스에 연결할 수 있는지 확인하세요.
  2. 데이터베이스 및 테이블 만들기
    샘플 데이터베이스를 사용하여 사용자 정의 저장 프로시저 및 함수의 사용을 보여줍니다. 먼저 "testdb"라는 데이터베이스를 만들고 그 안에 다음 구조로 "users"라는 테이블을 만듭니다.
CREATE DATABASE testdb;

USE testdb;

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255),
  age INT,
  email VARCHAR(255)
);
로그인 후 복사
  1. Write Python code
    다음으로 Python 코드를 작성하여 사용자 지정 저장소 프로시저와 함수를 만듭니다. 먼저 필요한 모듈을 가져오고 데이터베이스에 연결합니다.
import mysql.connector

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

mycursor = mydb.cursor()
로그인 후 복사
  1. 사용자 지정 저장 프로시저 작성
    다음은 사용자 지정 저장 프로시저를 만드는 예입니다. 이 저장 프로시저는 지정된 연령대를 기준으로 사용자를 쿼리하고 결과를 반환합니다. 저장 프로시저의 구문은 다음과 같습니다.
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. 사용자 지정 저장 프로시저 호출
    저장 프로시저를 생성한 후 다음 코드를 사용하여 이를 호출할 수 있습니다.
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. 사용자 지정 함수 작성
    외에도 저장 프로시저를 사용하여 사용자 정의 함수를 만들 수도 있습니다. 다음은 사용자 정의 함수를 생성하는 예입니다. 이 함수는 지정된 연령 범위 내의 사용자 수를 반환합니다. 함수의 구문은 다음과 같습니다.
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. 사용자 정의 함수 호출
    함수를 생성한 후 다음 코드를 사용하여 함수를 호출할 수 있습니다.
def call_function():
  mycursor.callfunc("count_users_by_age", int, (18, 30))
로그인 후 복사

이 시점에서 사용자 정의 저장소를 작성하는 방법을 배웠습니다. MySQL에서는 Python 프로시저와 함수를 사용합니다. Python과 MySQL을 결합함으로써 데이터베이스 작업을 보다 유연하게 수행하고 코드 재사용성과 유지 관리성을 향상시킬 수 있습니다.

전체 코드는 다음과 같습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿