>  기사  >  데이터 베이스  >  mysql 프로시저 함수

mysql 프로시저 함수

王林
王林원래의
2023-05-08 19:38:36861검색

MySQL은 일반적으로 사용되는 관계형 데이터베이스 관리 시스템으로 사용자가 사용할 수 있는 다양한 기능과 절차를 제공합니다. 그 중 MySQL 프로시저와 함수는 데이터베이스 서버에 작성된 프로그램이다. 이 기사에서는 MySQL 프로시저 함수의 기본 지식, 사용법 및 예를 살펴보겠습니다.

1. MySQL 프로시저 함수에 대한 기본 지식

  1. MySQL 프로시저

MySQL 프로시저는 매개변수를 받아들이고 입력 매개변수에 대해 특정 작업을 수행할 수 있는 SQL 문의 모음입니다. MySQL 프로시저는 캡슐화된 SQL 문으로 간주할 수 있으며 특정 기능을 수행하기 위해 여러 SQL 문을 실행할 수 있습니다.

MySQL 프로세스는 다음과 같은 특징을 가지고 있습니다.

(1) MySQL 프로세스는 서버 측에서 실행됩니다.

(2) MySQL 프로시저는 입력 매개변수를 수신하고 출력 매개변수를 반환할 수 있습니다.

(3) MySQL 프로시저는 테이블을 생성 및 업데이트하고, 데이터베이스에 데이터를 삽입 및 업데이트할 수 있습니다.

(4) MySQL 프로시저는 제어 흐름 문, 루프, 분기 및 예외 처리기를 포함할 수 있습니다.

(5) MySQL 프로세스는 사용자 정의 함수와 하위 프로세스를 지원합니다.

  1. MySQL 함수

MySQL 함수는 MySQL에 정의된 단일 쿼리 문 집합입니다. 하나 이상의 입력 매개변수를 허용하고 하나 이상의 값을 반환합니다. 함수를 사용하여 데이터를 계산, 비교, 변환 및 조작할 수 있습니다.

MySQL 함수는 다음과 같은 특징을 가지고 있습니다.

(1) MySQL 함수는 서버 측에서 실행됩니다.

(2) MySQL 함수는 입력 매개변수를 수신하고 출력 매개변수를 반환할 수 있습니다.

(3) MySQL 함수는 단일 값만 반환할 수 있으며 삽입, 업데이트, 삭제 등의 작업을 수행할 수 없습니다.

(4) MySQL 함수에는 제어 흐름 문, 루프, 분기 및 예외 처리기가 포함될 수 없습니다.

(5) MySQL 함수는 사용자 정의 함수와 하위 함수를 지원합니다.

2. MySQL 프로시저 함수 사용 방법

MySQL에서는 CREATE PROCEDURE 및 CREATE FUNCTION 문을 사용하여 프로시저와 함수를 생성할 수 있습니다.

  1. MySQL 프로시저 생성

다음은 MySQL 프로시저를 생성하는 구문입니다.

CREATE PROCEDURE 프로시저_이름([매개변수])
BEGIN

  [SQL statements]

END;

여기서 프로시저_이름은 프로시저의 이름입니다. 매개변수는 프로시저의 매개변수 목록이고, SQL 문은 프로세스 중에 실행될 MySQL 문입니다.

예를 들어, 두 개의 입력 매개변수를 받고 그 합계를 반환하는 간단한 MySQL 프로시저를 만듭니다.

CREATE PROCEDURE add(IN a INT, IN b INT)
BEGIN

  SELECT a+b;

END;

  1. MySQL 함수 만들기

다음은 MySQL 함수를 생성하는 구문입니다.

CREATE FUNCTION function_name([parameters]) RETURNS data_type
BEGIN

  [SQL statements]

END;

여기서 function_name은 함수의 이름이고,parameters는 함수의 매개변수 목록입니다. 함수에서 data_type은 함수가 반환하는 데이터 유형이고, SQL 문은 함수에서 실행될 MySQL 문입니다.

예를 들어, 입력 매개변수를 받고 해당 사각형을 반환하는 간단한 MySQL 함수를 만듭니다.

CREATE FUNCTION square(x INT) RETURNS INT
BEGIN

  RETURN x*x;

END;

3 MySQL 절차 함수의 예

  1. MySQL 프로시저 예시

다음은 현재 데이터베이스의 각 테이블 이름과 행 개수를 콘솔에 출력하는 간단한 MySQL 프로시저 예시입니다.

CREATE PROCEDURE table_count()
BEGIN

  DECLARE done INT DEFAULT FALSE;
  DECLARE t_name CHAR(32);
  DECLARE t_count INT;
  DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE();
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
  OPEN cur;
  repeat
        FETCH cur INTO t_name;
        IF NOT done THEN
              SET @sql = CONCAT('SELECT COUNT(*) INTO "', t_name, '_count" FROM ', t_name);
              PREPARE stmt FROM @sql;
              EXECUTE stmt;
              DEALLOCATE PREPARE stmt;
              SET @out = CONCAT(t_name, ': ', t_name, '_count');
              SELECT @out;
        END IF;
  until done END REPEAT;
  CLOSE cur;

END

위에서; 프로세스에서는 커서를 사용하여 데이터베이스의 모든 테이블을 탐색하고 동적 SQL을 사용하여 각 테이블의 행 수를 가져와 콘솔에 출력합니다.

  1. MySQL 함수 예

다음은 문자열을 받아 각 단어의 첫 글자를 반환하는 간단한 MySQL 함수 예입니다.

CREATE FUNCTION get_initials(str VARCHAR(255)) RETURNS VARCHAR(255 )
BEGIN

  DECLARE len INT DEFAULT 0;
  DECLARE i INT DEFAULT 0;
  DECLARE initial CHAR(1);
  DECLARE initials VARCHAR(255) DEFAULT '';
  SET len = LENGTH(str);
  WHILE i<=len DO
        SET initial = SUBSTRING(str, i, 1);
        IF i = 1 OR SUBSTRING(str, i-1, 1) = ' ' THEN
              SET initials = CONCAT(initials, initial);
        END IF;
        SET i = i + 1;
  END WHILE;
  RETURN initials;

END;

위 함수에서는 입력 문자열을 반복하고 공백을 기준으로 각 단어를 분할한 후 첫 번째 문자를 가져와 함수 반환 값으로 함께 연결합니다.

요약

MySQL 프로시저 함수는 개발자와 데이터베이스 관리자가 복잡한 데이터 처리 작업을 쉽게 수행하는 데 도움이 되는 MySQL의 매우 중요한 기능입니다. 이 기사에서는 MySQL 프로시저 함수의 기본 지식, 사용법 및 예를 소개합니다. 이 정보를 통해 MySQL의 절차적 기능을 더 잘 이해하고 마스터할 수 있으며 실제 개발에서 그 장점을 최대한 활용할 수 있습니다.

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

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