Stored Procedure
프로시저와 함수의 차이를 알고 가자!!!(이 부분이 이해 안 돼도 괜찮다. 아래 부분에서 자세히 다시 다룬다.)
CREATE PROCEDURE product (IN a int, IN b int, OUT result int)
IN : INput 매개변수라는 뜻. 즉 매개변수에 값을 받을 수 있을 뿐, BODY 부분에서 그 변수의 값을 변경하지는 못함.
OUT : OUTput 매개변수라는 뜻. 즉, 매개변수에 어떤 값을 받을 필요는 없고, BODY 내에서 그 변수에 값을 넣어서 반환시킬 때 사용!
(나중에 배울, INOUT이라는 키워드는 위 2가지 기능을 모두 가지고 있다.)
-> 만약, 매개 변수 앞에 IN, OUT 중 어느 것도 적혀져 있지 않으면, default로 IN이 적용이 된다.
그러나 OUT은 분명히 명시를 해 줘야 한다.
call product(5,7, @result)
-> FUNCTION의 실행과는 다르게 앞에 call을 붙여야 실행이 가능하다.
@result는 DECLARE int result를 대체한다.
select @result
-> 변수 result를 출력.
이 procedure은 반환값이 없는 것처럼 보인다.
하지만, 적어도 MySQL에서는 select문을 적어 주면, OUT 매개변수, RETURN 키워드가 없어도 자동으로 값이 반환(출력)
된다.
위 부분의 기능들은 따로 공부를 해야 함!!!!
transaction
트랜잭션은 "ALL or Nothing"이라고도 불린다.
왜냐하면, 트랜잭션이란 여러 SQL문을 1개로 묶어서, 그것들이 전부 정상적으로 실행이 되면 그 결과를 반영을 하고, 만약
1개라도 정상적인 실행이 되지 않는다면, 그 어떤 SQL문의 결과도 반영하지 않기 때문이다.
프로시저
프로시저는 트랜잭션에서도 사용이 가능하고, 값을 꼭 반환하지 않아도 되고, 파라미터로 1개 이상의 값들을 반환을 할 수
있기에 주로 서버의 비지니스 로직에서 사용된다.
'CS 과목(CS科目) > 데이터 베이스(データベース)' 카테고리의 다른 글
13. Trigger(부제 : 방아쇠를 함부로 땡기지는 말자 ㅋㅋ) (0) | 2022.12.09 |
---|---|
12. stored procedure PART 2 (0) | 2022.12.09 |
10. stored function (0) | 2022.12.08 |
9. SQL로 데이터 조회하기(SQLでデーター照会)PART 5 (2) | 2022.12.08 |
8.SQL로 데이터 조회하기(SQLでデーター照会)PART 4 (0) | 2022.12.08 |