찾다
데이터 베이스MySQL 튜토리얼mysql 저장 프로시저 저장 함수

MySQL은 저장 프로시저 및 저장 함수와 같은 데이터베이스 개체의 생성 및 사용을 지원하는 인기 있는 관계형 데이터베이스 관리 시스템입니다. 이 기사에서는 MySQL 저장 프로시저와 저장 함수의 개념, 용도, 구문 및 예를 살펴보겠습니다.

1. 저장 프로시저와 저장 함수란 무엇인가요?

저장 프로시저와 저장 함수는 MySQL의 두 가지 데이터베이스 개체 유형입니다. 이는 모두 MySQL 서버 측에서 생성될 수 있으며 다른 클라이언트 프로그램에서 호출하고 실행할 수 있습니다. 이들의 공통점은 일련의 SQL 문을 캡슐화하고 일부 복잡한 데이터베이스 작업 또는 비즈니스 논리를 구현할 수 있다는 것입니다.

저장 프로시저는 다른 프로그래밍 언어의 서브루틴이나 함수와 유사한 미리 정의된 SQL 문 모음입니다. 단일 SQL 문으로 작성되어 서버에 저장되며 필요할 때 호출할 수 있습니다. 저장 프로시저는 데이터 일괄 처리, 트랜잭션 실행, 빠른 쿼리 등과 같은 일부 특정 비즈니스 요구 사항을 구현하는 데 사용할 수 있습니다. 저장 프로시저는 실행 시 매개변수를 허용할 수 있으며 실행 후 결과를 반환할 수도 있습니다.

저장 함수는 SQL 쿼리에서 호출할 수 있는 프로시저로, 입력 매개 변수를 받아들이고 단일 값을 반환합니다. 저장 프로시저와 마찬가지로 저장 함수도 SQL 문의 모음입니다. 저장된 함수는 일반적으로 값을 계산, 변환 또는 조작하고 결과를 호출자에게 반환하는 데 사용됩니다. 저장 프로시저와 달리 저장 함수는 단일 값만 반환할 수 있으며 결과 집합을 반환할 수 없습니다. 저장된 함수는 쿼리 및 보고서에 널리 사용됩니다.

2. 저장 프로시저 및 저장 함수의 장점

  1. 데이터베이스 성능 향상: 저장 프로시저 및 저장 함수를 서버에서 실행할 수 있어 데이터 전송 부하와 네트워크 통신 오버헤드가 줄어들어 데이터베이스 성능이 향상됩니다.
  2. 보안 강화: 저장 프로시저 및 저장 함수는 액세스 제어를 사용하여 테이블에 대한 액세스를 제어할 수 있습니다. SQL 코드는 데이터베이스 서버에 저장되기 때문에 사용자는 직접 접근할 수 없으며 특정 권한이 있는 경우에만 사용할 수 있습니다.
  3. 단순화된 코드: 저장 프로시저 및 저장 함수는 SQL 코드를 재사용할 수 있으므로 반복되는 SQL 쿼리 및 논리 코드 작성이 줄어들고 코드 양이 줄어들며 유지 관리가 더욱 쉬워집니다.
  4. 이식성: 저장 프로시저와 저장 함수는 다양한 애플리케이션에서 재사용할 수 있으며 다양한 운영 체제와 데이터베이스 플랫폼 간에 이식 가능합니다.

3. 저장 프로시저 생성 및 사용

  1. 저장 프로시저 생성:

저장 프로시저 생성 구문은 다음과 같습니다.

CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter datatype [, …])
BEGIN
SQL statements;
END;
  • procedure_name: 저장 프로시저의 이름
  • 매개 변수: 저장 프로시저에서는 IN(기본값) 입력 매개변수, OUT 출력 매개변수 및 INOUT(동시 입력 및 출력) 매개변수가 될 수 있습니다.
  • datatype: 매개변수의 데이터 유형
  • SQL 문: 저장 프로시저의 본문 문

예를 들어 다음 저장 프로시저는 금액과 고객 ID를 전달하고 해당 금액을 고객 계정 잔액에 추가합니다. :

CREATE PROCEDURE add_amount(IN amt INT, IN cust_id INT)
BEGIN
UPDATE customers SET balance = balance + amt WHERE id = cust_id;
END;
  1. Call 저장 프로시저:

저장 프로시저를 호출하는 구문은 다음과 같습니다.

CALL procedure_name([parameter_value]);

예를 들어 다음 코드는 방금 생성된 add_amount() 저장 프로시저를 호출합니다.

CALL add_amount(100, 1);

위 코드는 다음과 같습니다. 고객 테이블 Yuan에서 ID가 1인 고객의 잔액을 100만큼 늘립니다.

4. 저장 함수 생성 및 사용

  1. 저장 함수 생성:

저장 함수 생성 구문은 다음과 같습니다.

CREATE FUNCTION function_name ([parameter datatype [, …]])
RETURNS datatype
BEGIN
SQL statements;
RETURN return_value;
END;
  • function_name: 저장 함수의 이름
  • parameter: 매개변수 저장 함수
  • datatype: 매개변수 데이터 유형
  • SQL 문: 저장 함수의 본문 문
  • return_value: 저장 함수의 반환 값

예를 들어 다음 예에서는 다음을 계산하는 저장 함수를 만듭니다. 평균:

CREATE FUNCTION average (a INT, b INT)
RETURNS INT
BEGIN
DECLARE result INT;
SET result = (a + b) / 2;
RETURN result;
END;
  1. 저장 함수 호출:

저장 함수 호출 구문은 저장 프로시저 호출과 유사합니다.

SELECT function_name([parameter_value]);

예를 들어 다음 코드는 방금 생성된 평균() 저장 함수를 호출합니다.

SELECT average(10, 20);

위 코드는 (10+20)/2의 결과인 15를 반환합니다.

5. 저장 프로시저 및 저장 함수의 예

  1. 저장 프로시저의 예

다음 저장 프로시저는 모든 고객의 평균 연령을 자동으로 계산하고 그 결과를 다른 테이블에 입력합니다.

CREATE PROCEDURE calc_avg_age()
BEGIN
DECLARE avg_age FLOAT;
SELECT AVG(YEAR(CURDATE()) - YEAR(birth_date)) INTO avg_age FROM customers;
INSERT INTO statistics (name, value) VALUES ('avg_age', avg_age);
END;
  1. 저장 함수 예

다음 저장 함수는 두 날짜 사이의 일수를 반환합니다.

CREATE FUNCTION days_between (date1 DATE, date2 DATE)
RETURNS INT
BEGIN
DECLARE num_days INT;
SET num_days = DATEDIFF(date2, date1);
RETURN num_days;
END;

이제 크리스마스와 2022년 새해 사이의 일수를 알고 싶습니다. 다음 코드를 사용하여 위의 저장 함수를 호출할 수 있습니다.

SELECT days_between('2022-12-25', '2023-01-01');

위 코드는 두 날짜 사이의 일수인 7을 반환합니다.

6. 결론

지금까지 우리는 MySQL 저장 프로시저와 저장 함수의 개념, 구문, 예를 이해했습니다. 이러한 개체는 SQL 코드를 더 잘 구성하고 데이터베이스 성능과 유지 관리성을 향상시키는 데 도움이 될 수 있습니다. 실제 응용 프로그램에서 저장 프로시저와 저장 기능은 데이터 웨어하우스, 비즈니스 인텔리전스, 응용 프로그램 및 기타 분야에서 널리 사용됩니다. 그러나 코드를 과도하게 사용하지 않도록 주의하십시오. 코드의 가독성과 유지 관리성이 저하될 수 있습니다.

위 내용은 mysql 저장 프로시저 저장 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Docker에서 MySQL 메모리 사용을 줄입니다Docker에서 MySQL 메모리 사용을 줄입니다Mar 04, 2025 pm 03:52 PM

이 기사는 Docker에서 MySQL 메모리 사용을 최적화합니다. 모니터링 기술 (Docker Stats, Performance Schema, 외부 도구) 및 구성 전략에 대해 설명합니다. 여기에는 Docker 메모리 제한, 스와핑 및 CGroups와 함께 포함됩니다

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.Mar 04, 2025 pm 04:01 PM

이 기사에서는 MySQL의 "공유 라이브러리를 열 수 없음"오류를 다룹니다. 이 문제는 MySQL이 필요한 공유 라이브러리 (.so/.dll 파일)를 찾을 수 없음에서 비롯됩니다. 솔루션은 시스템 패키지 M을 통한 라이브러리 설치 확인과 관련이 있습니다.

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?Mar 19, 2025 pm 03:51 PM

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)Mar 04, 2025 pm 03:54 PM

이 기사는 Linux에 MySQL을 직접 설치하는 것과 Phpmyadmin이없는 Podman 컨테이너 사용을 비교합니다. 각 방법에 대한 설치 단계에 대해 자세히 설명하면서 Podman의 격리, 이식성 및 재현성의 장점을 강조하지만 또한

sqlite 란 무엇입니까? 포괄적 인 개요sqlite 란 무엇입니까? 포괄적 인 개요Mar 04, 2025 pm 03:55 PM

이 기사는 자체 포함 된 서버리스 관계형 데이터베이스 인 SQLITE에 대한 포괄적 인 개요를 제공합니다. SQLITE의 장점 (단순성, 이식성, 사용 용이성) 및 단점 (동시성 제한, 확장 성 문제)에 대해 자세히 설명합니다. 기음

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드Mar 04, 2025 pm 03:49 PM

이 안내서는 Homebrew를 사용하여 MacOS에 여러 MySQL 버전을 설치하고 관리하는 것을 보여줍니다. 홈 브루를 사용하여 설치를 분리하여 갈등을 방지하는 것을 강조합니다. 이 기사에는 설치, 서비스 시작/정지 서비스 및 Best Pra에 대해 자세히 설명합니다

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까?MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까?Mar 18, 2025 pm 12:01 PM

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?Mar 21, 2025 pm 06:28 PM

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.