본문 바로가기
Database/mysql

[MYSQL /Database] function 함수

by JINJINC 2023. 4. 14.
728x90
반응형

 

 함수 FUNCTION 이란?

- rand(), concat(), insert() 등 MySQL에서는 내장 함수를 지원한다.
- 이런 함수들 처럼 사용자가 직접 함수를 만들 수 있도록 한다.
- 프로시저와 달리 반환값이 있어야 한다.
- 프로시저와 달리 call을 쓰지 않고 쿼리문(select, update.. 등) 내에서 호출된다.

 

함수 생성/ 제거

set global log_bin_trust_function_creators = 1;

drop function if exists my_rand; -- 함수 제거
delimiter $$
create function my_rand()  -- 함수 생성
  returns decimal(3, 3)    -- 리턴 타입
begin
  return rand();           -- 결과 반환
end $$
delimiter ;

select my_rand();  -- 함수 실행


※ 참고

DECIMAL(M,[d]) =>  전체 자릿수(M)와 소수점 이하 자릿수(d)를 가진 숫자형  정확한 수치를 저장 
예) decimal(5,2)는 전체 자릿수를 5자리로 하되,그 중 소수점 이하를 2자리로 하겠다.

RAND() => 랜덤한 숫자

 

<연습1>

create table test_table(num real, num2 real default 0.0);
select my_rand();

insert into test_table values(my_rand(),0.0);  - 여러번 실행하기 
select * from test_table;
DECIMAL은 정확한 수치를 저장하지만 FLOAT, REAL은 근사치 값을 저장합니다.
대신에 FLOAT, REAL은 더 큰 숫자를 저장할 수 있습니다.
DOUBLE, REAL (8바이트) 은 소수점 아래 15자리까지 표현
FLOAT(4바이트) 소스점 아래 7자리 까지 표현

실행 결과
실행 결과

728x90
반응형

댓글