-
절차 만들기
MySQL 데이터베이스에 테이블을 저장하는 저장 프로시저를 만듭니다.
함수 생성
사용자 정의 함수, 특히 데이터를 반환하는 저장 프로시저를 만듭니다.
절차 변경
CREATE PROCEDURE를 사용하여 생성된 미리 지정된 저장 프로시저에 대한 변경 사항은 관련 저장 프로시저나 저장 기능에 영향을 주지 않습니다. .
변경 기능
CREATE FUNCTION으로 생성된 미리 지정된 저장 프로시저에 대한 변경 사항은 관련 저장 프로시저나 저장 함수에 영향을 주지 않습니다. .
낙하 절차
MySQL 테이블에서 하나 이상의 저장 프로시저를 삭제합니다.
드롭 기능
MySQL 테이블에서 하나 이상의 저장된 함수를 삭제합니다.
생성 절차 표시
CREATE PROCEDURE를 사용하여 생성된 미리 지정된 저장 프로시저의 텍스트를 반환합니다. 이 선언은 SQL:2003 사양에 대한 MySQL 확장입니다.
생성 기능 표시
CREATE FUNCTION을 사용하여 생성된 미리 지정된 저장 프로시저의 텍스트를 반환합니다. 이 선언은 SQL:2003 사양에 대한 MySQL 확장입니다.
절차 상태 표시
이름, 유형, 작성자, 생성 날짜, 수정 날짜를 포함하여 미리 지정된 저장 프로시저의 특성을 반환합니다. 이 선언은 SQL:2003 사양에 대한 MySQL 확장입니다.
기능 상태 표시
이름, 유형, 작성자, 생성 날짜, 변경 날짜를 포함하여 미리 지정된 저장 함수의 특성을 반환합니다. 이 선언은 SQL:2003 사양에 대한 MySQL 확장입니다.
부르다
CREATE PROCEDURE를 사용하여 생성된 미리 지정된 저장 프로시저를 호출합니다.
시작 ... 끝
실행된 여러 문 집합을 포함합니다.
선언하다
지역 변수, 환경, 프로세서 및 포인터를 지정하는 데 사용됩니다.
세트
로컬 및 글로벌 서버 변수의 값을 변경하는 데 사용됩니다.
선택 ... 안으로
표시 변수를 저장하는 데 사용되는 열입니다.
열려 있는
포인터를 여는 데 사용됩니다.
술책
다음 열을 얻으려면 특정 포인터를 사용하십시오.
닫다
포인터를 닫고 여는 데 사용됩니다.
만약에
if-then-else-end if 문입니다.
사례...언제
사례 진술의 구조
고리
간단한 루프 구조입니다. LEAVE 문을 사용하여 종료할 수 있습니다.
떠나다
IF, CASE, LOOP, REPEAT 및 WHILE 문을 종료하는 데 사용됩니다.
반복
주기를 다시 시작하는 데 사용됩니다.
반복하다
루프는 마지막에 테스트됩니다.
하는 동안
처음에 테스트되는 루프입니다.
보고
저장 프로시저의 값을 반환합니다.
MySQL 5.0은 저장 프로시저 명령문을 지원합니다.
1. 저장 프로시저 만들기
1.기본 문법:
프로시저 sp_name() 생성
시작하다
.........
끝
2.매개변수 전달
2. 저장 프로시저 호출
1.기본 구문: sp_name() 호출
참고: 저장 프로시저에 매개변수가 전달되지 않은 경우에도 저장 프로시저 이름 뒤에 괄호를 추가해야 합니다.
3. 저장 프로시저 삭제
1.기본 문법:
삭제 프로시저 sp_name//
2. 주의사항
(1) 하나의 저장 프로시저에서 다른 저장 프로시저를 삭제할 수 없으며 다른 저장 프로시저를 호출할 수만 있습니다.
4. 블록, 조건, 루프
1. 일반적으로 사용되는 블록 정의
시작하다
...
끝;
다음과 같이 블록에 별칭을 지정할 수도 있습니다.
레이블:시작
...........
끝 라벨;
Leave 레이블을 사용하여 블록에서 벗어나 블록 뒤의 코드를 실행할 수 있습니다.
2.조건문
조건이 그렇다면
성명
또 다른
성명
종료하면;
3. 루프 문
(1).while 루프
[레이블:] WHILE 표현 DO
진술
END WHILE [라벨];
(2).루프 루프
[라벨:]루프
진술
END LOOP [레이블];
(3).루프까지 반복
[라벨:] 반복
진술
UNTIL 표현식
END REPEAT [레이블];
5. 기타 일반적으로 사용되는 명령
1.프로시저 상태 표시
해당 데이터베이스가 속한 데이터베이스, 저장 프로시저의 이름, 생성 시간 등을 포함하여 데이터베이스에 있는 모든 저장 프로시저의 기본 정보를 표시합니다.
2.sp_name 프로시저 생성 표시
저장 프로시저 생성 구문:
CREATE PROCEDURE 프로시저_이름([매개변수[,...])
[언어 SQL]
[ [아님] 결정적이지 않음 ]
[{SQL 포함|SQL 데이터 수정|SQL 데이터 읽기|SQL 없음}]
[SQL 보안 {DEFINER|INVOKER}]
[COMMENT 코멘트_문자열]
절차_문
SHOW PROCEDURE STATUS 또는 SHOW CREATE PROCEDURE를 사용하여 저장 프로시저 정보를 볼 수 있습니다. 또한 시스템 테이블 INFORMATION_SCHEMA.ROUTINES에도 저장 프로시저에 대한 일부 정보가 포함되어 있습니다(SHOW FUNCTION STATUS).
기능 생성
CREATE FUNCTION 함수_이름(매개변수[,...])
반환 데이터 유형
[언어 SQL]
[ [아님] 결정적이지 않음 ]
[ {SQL 포함 | SQL이 SQL 데이터를 읽지 않음} ]
[SQL 보안 {DEFINER|INVOKER}]
[COMMENT 코멘트_문자열]
명세서 본문
함수는 기본적으로 저장 프로시저와 동일합니다. 주요 차이점은 다음과 같습니다.
1. RETURNS를 사용하여 반환 유형을 지정하려면
2. 함수는 값을 반환해야 하며 명령문 본문에서 RETURN을 사용해야 합니다. (참고: 반환 유형을 지정하려면 RETURNS를 사용하고 반환 값에는 RETURN을 사용하십시오.)
3. 매개변수는 IN과 OUT을 구분하지 않으며 모두 IN 유형입니다.
예:
함수 생성 cust_status(in_status CHAR(1))
VARCHAR 반환(20)
DECLARE 시작 long_status VARCHAR(20);
IF in_status="O" THEN SET long_status="기한 초과";
ELSEIF in_status="U" 그런 다음 설정 long_status="최신";
ELSEIF in_status="N" 그런 다음 long_status="new"를 설정합니다.
종료하면;
RETURN(long_status);
끝;
부르다:
SELECT cust_status('O');
방아쇠
생성 [DEFINER={user|CURRENT_USER}] TRIGGER Trigger_name
{이전|이후} {업데이트|삽입|삭제}
ON table_name
각 행에 대해
Trigger_statements
의미: table_name 테이블에서 업데이트, 삽입 및 삭제 작업이 수행되기 전(전) 또는 후(후)에 Trigger_statements 명령문 작업이 트리거됩니다.
예:
mysql> TRIGGER account_balance_au 생성
각 행에 대한 account_balance 업데이트 후
시작하다
더미 INT를 선언하십시오.
IF NEW.balance<0 THEN
SET NEW.잔액=NULL;
종료하면;
끝
위의 트리거는 account_balance 테이블을 업데이트한 후 업데이트된 잔액 값이 0보다 작으면 NULL로 변경함을 의미합니다.
참고: OLD.balance인 경우 업데이트 전의 원래 값을 의미합니다.