-
[DB] Mysql 함수 정의 및 사용데이터베이스 2020. 12. 6. 16:54728x90
Function(함수)
프로시져와 비슷하지만 함수의 경우 특별한 데이터 타입으로 특별한 연산을 할 때 더 용이함 예) 지도타입에서 지도 상의 두 영역이 겹치는지 판단하는 연산…!
Scalar Function
리턴 값이 scalar 인 함수
학과 내의 교수의 수를 알아내는 함수
CREATE FUNCTION profCount(deptName varchar(20)) RETURNS INTEGER BEGIN DECLARE pCount INTEGER; SELECT COUNT(*) INTO pCount FROM professor WHERE professor.deptName = profCount.deptName; return pCount; END;
위와 같이 파라미터에 접근할 때 {함수이름.파라미터} 의 형태로 사용하는 것만 주의하면 된다.
Table Function
리턴 타입이 테이블인 함수
CREATE FUNCTION myProfessorOf(deptName varchar(20)) RETURNS TABLE ( pID varchar(5), name varchar(20), deptName varchar(20), salary nueric(6, 2) ) RETURN TABLE ( SELECT pID, name, deptName, salary FROM professor WHERE professor.deptName = myProfessorOf.deptName );
RETURNS TABLE 은 리턴할 테이블이 어떻게 생겼는지 정의,
RETURN TABLE 은 리턴할 테이블을 조회할 쿼리문을 정의
SELECT * FROM table(myProfessorOf(‘CS’));
함수로 만들어진 테이블은 그 결과가 테이블임을 알리기 위해 table 키워드에 감싸서 사용해야함
'데이터베이스' 카테고리의 다른 글
[DB] Mysql C/C++ 함수 연동 (0) 2020.12.06 [DB] Mysql 프로시져 (0) 2020.12.06 [DB] Mysql Date 타입, 사용자정의 타입, 도메인, Large Object (0) 2020.12.06 [DB] DateType(날짜) 종류 (0) 2020.12.06 [DB] Rank and Partition (0) 2020.12.06