기초/DBMS

[DBMS] 스토어드 프로시저 ( stored Procedure )

장동규 2017. 7. 27. 09:49

>> 혼자서 실행하는 SQL문은 [ 파일 ]로 저장해도 상관이 없지만, 여러 사용자가 사용하는 SQL묶음이라면 스토어드 프로시저를 사용한다.


여러 수백 수천개의 SQL들을 한대 묶음화 하는 기능.


그 묶은 SQL은 서버데이터베이스에 저장되어 여러사용자들이 사용할 수 있다.


use [ databases ]   #꼭 use SQL문을 통해 데이터 베이스를 선택한 후 진행한다.

>> use를 하지 않으려면 sql문에 절대경로로 모든 테이블이 표시되어있어야 하며

>> call [database].[procedure](); 로 호출가능하다


delimiter //

create procedure myProc()

begin

select * from memberTBL where memberName = '테스트';

select * from memberTBL where memberName = 'TEST';

end //

delimiter;

# delimiter (구분자)

ex) delimiter // << 이 줄부터 작성되는 SQL은 구분자를 //로 사용하겠다는 의미이다.


  >> 사용목적 : 원래 mySQL의 구분자는 ;이기에 프로시져를 시작과 동시에 한줄이 끝나면 끝나버린다.


# CREATE Procedure [ 프로시저 이름 ]

ex ) create procedure myProc()    : 프로시저 이름이다.


begin

             ~~~ 

end //

begin ~ end 사이에 SQL문을 프로시저의 호출로 한번에 실행한다.

[데이터베이스를 use하지 않았을 경우]

delimiter //

create procedure myProc()

begin

select * from [database].[테이블 명] where memberName = '테스트';

select * from [database].[테이블 명] where memberName = 'TEST';

end //

delimiter;


함수 호출

call myProc();


call shopDB.myProc();


함수 제거

Drop procedure myProc();

 

 

워크밴츠