ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DB] Mysql 함수 정의 및 사용
    데이터베이스 2020. 12. 6. 16:54
    728x90

    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 키워드에 감싸서 사용해야함

     

    댓글

Designed by Tistory.