@ 설명
## LOOP 문
DELIMITER $$ -- 프로시저 생성 시작을 알림
DROP PROCEDURE IF EXISTS loop_test $$ -- 프로시저가 만들어져 있다면 삭제하고 다시 만듬
CREATE PROCEDURE loop_test(IN var INT) -- 파라미터 설정, IN/OUt, 변수이름 var, 타입 INT
BEGIN
DECLARE nCnt INT DEFAULT 0; -- 변수선언
DECLARE nTot INT DEFAULT 0;
loop_xxxx:LOOP -- LOOP 선언, 루프이름 주어짐
IF (var <= nCnt) THEN -- IF 문 사용
LEAVE loop_xxxx; -- loop 탈출 조건 (탈출 조건을 사용하기 위해서는 루프의 이름이 지정되어야 함.)
END IF;
SET nCnt = nCnt + 1; -- 변수 변경
SET nTot = nTot + nCnt;
END LOOP;
SELECT CONCAT(CONCAT(CONCAT('1 부터 ', var), ' 까지의 합은 '), nTot) AS total; -- 결과 값 출력
END $$
DELIMITER ;-- 프로시저 생성 종료를 알림
#########################
Call loo_test(10); -- 프로시저 실행
참고)
-. CONCAT 함수
인자들 str 를 연결시켜 하나의 결과물로 결합 반환하고, 인자 중에 하나 이상의 NULL 값을 가지면 NULL를 반환합니다.
-. IF 사용법
IF condition1 THEN
{...statements to execute when condition1 is TRUE...}
[ ELSEIF condition2 THEN
{...statements to execute when condition2 is TRUE...} ]
[ ELSE
{...statements to execute when both condition1 and condition2 are FALSE...} ]
END IF;
'DataBase > MariaDB' 카테고리의 다른 글
MySql 테이블 타입 종류 및 설명 (0) | 2020.12.07 |
---|---|
Oracle에서 MariaDB로 마이그레이션하기 (0) | 2020.10.06 |
[mysql/mariadb] DB 스케쥴러 (0) | 2020.09.18 |
[MySql/Mariadb] 데이터베이스/SQL문으로 달력 뷰 구성 (0) | 2020.09.18 |
mysql Primary Key 기본키 삭제, 기본키 변경, 여러 컬럼을 기본키로 (0) | 2020.08.31 |