728x90

# 함수

- 학과의 이름을 주어서 그 학과의 교수의 수를 반환하는 함수

  create function dept_count (@dept_name varchar(20))     
  returns integer
  as
  begin   
        declare @d_count integer;      
        select @d_count = count (* )  
        from instructor       
        where instructor.dept_name = @dept_name      
        return (@d_count);
  end

 

# 함수 사용 in SQL

- 12명 이상의 교수를 가진 모든 학과의 이름과 예산을 구하라

select dept_name, budget		
from department	
where dbo.dept_count (dept_name ) > 12

 

 

# 함수 사용 in JDBC

CallableStatement cstmt = null; 
try {        
      cstmt = connection.prepareCall("{? = call dbo.dept_count (?)}");  
        cstmt.registerOutParameter(1,java.sql.Types.VARCHAR);       
      cstmt.setString(2, “Accounting");        
      cstmt.execute(); // Execute the callable statement       
      String outParam = cstmt.getString(1);       
      System.out.println("Output: " + outParam);  
} catch (Exception e) {       
     System.out.println("Exception message: " + e.getMessage());
  } 

 

 

# 테이블 함수

) 특정한 학과의 모든 교수를 포함하는 테이블 반환

create function instructors_of (@dept_name char(20))
returns table as
return table(select ID as r_id, name as r_name, dept_name as r_dept_name,
       salary as r_salary	
       from instructor	 
       where instructor.dept_name = @dept_name)

 

- 함수 사용

select *
from dbo.instructors_of (‘Accounting’))

 

 

반응형

'전공 공부 > 데이터베이스시스템' 카테고리의 다른 글

트리거  (0) 2021.01.04
함수와 프로시저  (0) 2021.01.03
프로시저  (0) 2021.01.03
내장 SQL  (0) 2021.01.03
JDBC 사용  (0) 2021.01.03
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기