1. MySQL 프로시저 함수에 대한 기본 지식
MySQL 프로시저
MySQL 프로시저는 여러 SQL 문으로 구성되며 매개변수를 받고 입력 매개변수에 대해 특정 작업을 수행합니다. MySQL 프로시저는 특정 기능을 달성하기 위해 여러 SQL 문을 캡슐화하는 방법입니다.
MySQL 프로세스는 다음과 같은 특징을 가지고 있습니다.
(1) MySQL 프로세스는 서버 측에서 실행됩니다.
(2) MySQL 프로시저는 입력 매개변수를 수신하고 출력 매개변수를 반환할 수 있습니다.
(3) MySQL 프로시저는 테이블을 생성 및 업데이트하고, 데이터베이스에 데이터를 삽입 및 업데이트할 수 있습니다.
(4) MySQL 프로시저는 제어 흐름 문, 루프, 분기 및 예외 처리기를 포함할 수 있습니다.
(5) MySQL 프로세스는 사용자 정의 함수와 하위 프로세스를 지원합니다.
MySQL 함수
MySQL 함수는 MySQL에 정의된 단일 쿼리 문 집합입니다. 하나 이상의 입력 매개변수를 허용하고 하나 이상의 값을 반환합니다. 함수를 사용하여 데이터를 계산, 비교, 변환 및 조작할 수 있습니다.
MySQL 함수는 다음과 같은 특징을 가지고 있습니다.
(1) MySQL 함수는 서버 측에서 실행됩니다.
(2) MySQL 함수는 입력 매개변수를 수신하고 출력 매개변수를 반환할 수 있습니다.
(3) MySQL 함수는 단일 값만 반환할 수 있으며 삽입, 업데이트, 삭제 등의 작업을 수행할 수 없습니다.
(4) MySQL 함수에는 제어 흐름 문, 루프, 분기 및 예외 처리기가 포함될 수 없습니다.
(5) MySQL 함수는 사용자 정의 함수와 하위 함수를 지원합니다.
2. MySQL 프로시저 함수 사용 방법
MySQL에서는 CREATE PROCEDURE 및 CREATE FUNCTION 문을 사용하여 프로시저와 함수를 생성할 수 있습니다.
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;
MySQL 함수 만들기
다음은 MySQL 함수를 생성하는 구문입니다.
CREATE FUNCTION function_name([매개변수]) RETURNS data_type
BEGIN
[SQL statements]
END;
여기서 function_name은 함수의 이름이고 매개변수는 함수의 매개변수 목록, data_type은 함수가 반환하는 데이터 유형, SQL 문은 함수에서 실행될 MySQL 문입니다.
예를 들어, 입력 매개변수를 받고 해당 사각형을 반환하는 간단한 MySQL 함수를 만듭니다.
CREATE FUNCTION square(x INT) RETURNS INT
BEGIN
RETURN x*x;
END;
3 MySQL 절차 함수의 예
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;
In the 위 프로세스에서는 커서를 사용하여 데이터베이스의 모든 테이블을 탐색하고 동적 SQL을 사용하여 각 테이블의 행 수를 가져와 콘솔에 출력합니다.
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 프로시저 기능을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!