스토어드 프로시저
- MySQL에서 프로그래밍 기능이 필요할때 사용하는 데이터베이스 개체 입니다.
- 스토어드 프로시저는 아래와 같은 구조를 갖습니다.
DELIMITER $$
CREATE PROCEDURE
BEGIN
# SQL 프로그래밍 코딩
END $$
DELIMITER ;
CALL
IF문
- 조건문으로 가장 많이 사용되는 프로그래밍 문법 중 하나 입니다.
- 조건식이 참이면 SQL문장들을 실행하고 거짓이면 넘어갑니다.
- 두문자 이상이 처리되어야 할때는 BEGIN~END로 묶어주는것을 권장합니다.
- IF~ ELSE문 조건문은 조건에 따라 다른 부분을 수행합니다.
IF <조건식> THEN
SQL문장들
END IF;
IF~ ELSE 예시)
DROP PROCEDURE IF EXISTS ifProc2;
DELIMITER $$
CREATE PROCEDURE ifProc2()
BEGIN
DECLARE myNum INT;
SET myNum = 200;
IF myNum = 100 THEN
SELECT '100 입니다.';
ELSE
SELECT '100 아닙니다.';
END IF;
END $$
DELIMITER ;
CALL ifProc2();
Case문
- 여러 조건중에서 선택하는 경우에 사용합니다.
- Case문은 2가지 이상의 여러가지 경우일때 처리가 가능하므로 다중분기라고 부릅니다.
- Case와 END CASE 사이에 WHEN을 반복해서 여러 조건을 넣을수 있습니다.
DROP PROCEDURE IF EXISTS caseProc;
DELIMITER $$
CREATE PROCEDURE caseProc()
BEGIN
DECLARE point INT ;
DECLARE credit CHAR(1);
SET point = 65 ;
CASE
WHEN point >= 90 THEN
SET credit = 'A';
WHEN point >= 80 THEN
SET credit = 'B';
WHEN point >= 70 THEN
SET credit = 'C';
WHEN point >= 60 THEN
SET credit = 'D';
ELSE
SET credit = 'F';
END CASE;
SELECT CONCAT('점수=>', point), CONCAT('학점=>', credit);
END $$
DELIMITER ;
CALL caseProc();
WHILE문
- 필요한 만큼 계속 같은 내용을 반복하기 위해 사용합니다.
- 조건식이 참인 동안에 SQL문장들을 계속 반복합니다.
- ITERATE[테이블] 은 지정한 레이블로 가서 계속 진행합니다.
- LEAVE[테이블] 은 지정한 레이블을 빠져나갑니다.(WHILE문 종료)
WHILE <조건식> DO
SQL 문장들
END WHILE;
1~100 까지의 합(4의배수 제외,총합 1000 이하) 예시
DROP PROCEDURE IF EXISTS whileProc2;
DELIMITER $$
CREATE PROCEDURE whileProc2()
BEGIN
DECLARE i INT;
DECLARE hap INT;
SET i = 1;
SET hap = 0;
myWhile:
WHILE (i <= 100) DO
IF (i%4 = 0) THEN
SET i = i + 1;
ITERATE myWhile;
END IF;
SET hap = hap + i;
IF (hap > 1000) THEN
LEAVE myWhile;
END IF;
SET i = i + 1;
END WHILE;
SELECT hap;
END $$
DELIMITER ;
CALL whileProc2();
동적 SQL
- PREPARE는SQL문을 실행시키지 않고 준비를 해놓습니다.
- EXECUTE는 준비한 SQL 문을 실행합니다.
- 위의 2개의 방식을 동적 SQL이라고 부릅니다.
use market_db;
PREPARE myQuery FROM 'SELECT * FROM member WHERE mem_id = "APK';
EXECUTE myQuery;
DEALLOCATE PREPARE myQuery;
'학습단 > SQL 학습단' 카테고리의 다른 글
혼공스 12일차(GUI환경에서 테이블 만들기) (0) | 2023.07.25 |
---|---|
3주차 완료 (0) | 2023.07.20 |
혼공스 10일차(조인) (0) | 2023.07.18 |
혼공스 9일차(데이터 형식에 대해 알아 보자) (0) | 2023.07.17 |
2주차 완료 (0) | 2023.07.14 |