저장 프로 시저, 함수 및 루틴의 차이점은 무엇입니까?
MySQL 데이터베이스 컨텍스트에서 다음 세 용어의 차이점은 무엇입니까?
- 저장 프로 시저
- 저장된 기능
- 저장된 루틴
또한 날짜 시간 기능 (예 : WEEKDAY()
등)과 같은 내장 기능 은 무엇으로 간주됩니까?
Google은 당신의 친구입니다. "mysql 루틴 함수 프로 시저"의 첫 번째 일치 항목은 다음과 같습니다. http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
요약 :
스토어드 루틴은 프로 시저 또는 함수입니다.
프로시 저는 CALL 문을 사용하여 호출되며 출력 변수를 사용하여 값만 전달할 수 있습니다.
함수는 다른 함수와 마찬가지로 명령문 내에서 호출 할 수 있으며 스칼라 값을 반환 할 수 있습니다.
여기에서 함수와 절차의 차이점을 요약하려고했습니다.
- FUNCTION은 항상 return 문을 사용하여 값을 반환합니다. PROCEDURE 는 매개 변수를 통해 하나 이상의 값을 반환하거나 전혀 반환하지 않을 수 있습니다.
- 함수 는 일반적으로 비즈니스 논리를 실행하는 데 프로 시저 가 일반적으로 사용되는 계산에 사용됩니다.
- 함수는 1 개의 값만 반환합니다. 프로시 저는 여러 값을 반환 할 수 있습니다 (최대 1024).
- 저장 프로시 저는 기본적으로 항상 정수 값 0을 반환합니다. 함수 반환 유형은 스칼라, 테이블 또는 테이블 값일 수 있습니다.
- 저장 프로 시저에는 함수가 아닌 미리 컴파일 된 실행 계획이 있습니다.
SELECT func_name FROM DUAL
프로 시저가 할 수없는 동안 SQL 문에 의해 함수를 직접 호출 할 수 있습니다 .- 저장 프로시 저는 보안이 있고 네트워크 트래픽을 줄이며 한 번에 여러 응용 프로그램에서 저장 프로 시저를 호출 할 수도 있습니다.
- SQL 쿼리에서는 함수를 사용할 수 있지만 SQL 쿼리에서는 프로 시저를 사용할 수 없습니다. 그것은 기능과 절차 사이에 큰 차이를 일으 킵니다.
MySQL 함수와 mysql 프로 시저의 차이점
MYSQL 함수
값을 반환해야합니다.
IN
,OUT
및INOUT
함수를 만들 때 선언을해야합니다 function.But 반환 데이터 형식에서 사용할 수 없습니다. 함수는 SQL 문에서 호출 할 수 있습니다. 함수는 하나의 값을 반환합니다.
MYSQL 절차
반환 값은 필수는 아니지만 반환을 프로 시저하기 위해 OUT 매개 변수를 사용할 수 있습니다. 사용할 수 있습니다
IN
|OUT
|INOUT
매개 변수. SQL 문에서 프로 시저를 호출 할 수 없습니다. 프로시 저는OUT
또는INOUT
매개 변수 를 사용하여 여러 값을 리턴합니다 .
절차 대 기능
1. PROCEDURES may or may not return a value but FUNCTION must return a value 2. PROCEDURES can have input/output parameter but FUNCTION only has input parameter. 3. We can call FUNCTION from PROCEDURES but cannot call PROCEDURES from a function. 4. We cannot use PROCEDURES in SQL statement like SELECT, INSERT, UPDATE, DELETE, MERGE etc. but we can use them with FUNCTION. 5. We can use try-catch exception handling in PROCEDURES but we cannot do that in FUNCTION. 6. We can use transaction in PROCEDURES but it is not possible in FUNCTION.
함수는 값을 반환해야하지만 저장 프로 시저에서는 선택 사항입니다 (프로시 저는 0 또는 n 값을 반환 할 수 있음). 함수는 입력 매개 변수 만 가질 수있는 반면 프로시 저는 입력 / 출력 매개 변수를 가질 수 있습니다. 함수는 프로 시저에서 호출 할 수 있지만 프로시 저는 함수에서 호출 할 수 없습니다.
'Programing' 카테고리의 다른 글
사용자가 이미 Firebase에 로그인했는지 어떻게 감지하나요? (0) | 2020.10.29 |
---|---|
Scala에서 매핑 할 케이스 클래스 (0) | 2020.10.29 |
Doctrine 쿼리에서 null 값을 필터로 지정하는 방법은 무엇입니까? (0) | 2020.10.29 |
Python 단위 테스트에서 메서드가 호출되었는지 확인 (0) | 2020.10.29 |
기본 PDO 가져 오기 모드를 설정할 수 있습니까? (0) | 2020.10.29 |