조회수 확인



저장 프로시저 폼


 CREATE PROCEDURE 프로시저명()

 BEGIN

     SQL 문1

     SQL 문2

 END



저장 프로시저 생성


 

1
2
3
4
5
6
7
8
9
 
DELIMITER //
CREATE PROCEDURE pr1()
BEGIN
    select * from sale;
    select * from employ;
END
//
DELIMITER ;
cs





저장 프로시저 호출


 

1
2
3
CALL procedure_name;
 
CALL pr1;
cs






 




설정한 값 이상인 레코드만 표시하는 프로시저


1
2
3
4
5
6
7
8
9
10
11
DELIMITER //
 
CREATE PROCEDURE pr2(d INT)
BEGIN
    select * from sale where sales >= d;
END
//
 
DELIMITER ;
 
CALL pr2(100);
cs
 


 





프로시저 내용 표시


1
SHOW CREATE PROCEDURE pr2;
cs
 


 




프로시저 삭제



1
2
DROP PROCEDURE pr1;
DROP PROCEDURE pr2;
cs
 






저장 함수 폼


 CREATE FUNCTION 함수명(인수 자료형) RETURNS 반환값자료형

 BEGIN

     SQL 문.. 

     RETURN 반환값.식

 

 END

 




저장 함수로 표준 체중 계산


 

1
2
3
4
5
6
7
8
9
DELIMITER //
 
CREATE FUNCTION fWeight(height INT) RETURNS DOUBLE
BEGIN
    RETURN height * height * 22 / 10000;
END
//
 
DELIMITER ;
cs



 

1
select fWeight(175);
cs




 




레코드의 평균값 반환 저장 함수


 

1
2
3
4
5
6
CREATE FUNCTION fAverage() RETURNS DOUBLE
BEGIN
    DECLARE r DOUBLE;
    SELECT AVG(sales) INTO r FROM sale;
    RETURN r;
END
cs



 

1
select fAverage();
cs



 




저장 함수 삭제


1
2
3
4
DROP FUNCTION function_name;
 
DROP FUNCTION fAverage;
DROP FUNCTION fWeight;
cs
 







트리거 폼


 CREATE TRIGGER ​트리거_이름 BEFORE(또는 AFTER) delete 등의 명령

 ON 테이블_이름 FOR EACH ROW

 BEGIN     

     변경 전(OLD.칼럼_이름) 또는 변경 후(NEW.칼럼_이름)을 이용한 처리

 

 

 END



1
2
3
4
5
6
7
8
9
DELIMITER //
 
CREATE TRIGGER tr1 BEFORE DELETE ON employ FOR EACH ROW
BEGIN
    INSERT INTO sale_copy VALUES(OLD.number, OLD.name, OLD.age);
END
//
 
DELIMITER ;
cs
 


1
delete from sale;
cs

 



 

1
select * from sale_copy
cs






 

트리거 확인


1
show triggers;
cs
 


 


트리거 삭제



1
2
 
drop trigger tr1;
cs
 







다른 카테고리의 글 목록

CSE/MySQL 카테고리의 포스트를 톺아봅니다